This commit is contained in:
SoulliesOfficial
2026-05-27 15:15:28 -04:00
parent 76f498ae2b
commit 72756712f7
669 changed files with 5361 additions and 12268 deletions

View File

@@ -12,18 +12,25 @@ namespace Cielonos.MainGame.Characters
{
public List<DodgeSource> dodgeSources;
public bool canDodge;
[ShowInInspector]
public bool isDodging => dodgeSources.Count > 0;
public Timer afterNormalDodgeTimer;
public CharacterBase normalDodgedTarget;
[ShowInInspector]
public bool isPerfectDodging => dodgeSources.Any(source => source.hasPerfectDodge && source.isDuringPerfectDodge);
public float afterPerfectDodgeTimer;
public float afterNormalDodgeTimer;
public Timer afterPerfectDodgeTimer;
public CharacterBase perfectDodgedTarget;
public DodgeSubmodule(ReactionSubcontroller owner) : base(owner)
{
dodgeSources = new List<DodgeSource>();
canDodge = true;
this.afterNormalDodgeTimer = new Timer(1f);
this.afterNormalDodgeTimer.onComplete.Add(new PrioritizedAction(() => normalDodgedTarget = null));
this.afterPerfectDodgeTimer = new Timer(1f);
this.afterPerfectDodgeTimer.onComplete.Add(new PrioritizedAction(() => perfectDodgedTarget = null));
}
public void ApplyDodge(DodgeSource source, bool refreshPerfect = false)
@@ -92,8 +99,8 @@ namespace Cielonos.MainGame.Characters
dodgeSources.RemoveAll(source => source.dodgeTime <= 0);
}
afterPerfectDodgeTimer -= owner.owner.selfTimeSm.DeltaTime;
afterNormalDodgeTimer -= owner.owner.selfTimeSm.DeltaTime;
afterPerfectDodgeTimer.Update(owner.owner.selfTimeSm.DeltaTime);
afterNormalDodgeTimer.Update(owner.owner.selfTimeSm.DeltaTime);
}
}
@@ -109,8 +116,10 @@ namespace Cielonos.MainGame.Characters
public bool isDuringPerfectDodge;
public float perfectTime;
public float dodgeTime;
public string perfectEffectName;
public Action onPerfectDodge;
public string normalEffectName;
public Action onNormalDodge;
@@ -144,6 +153,7 @@ namespace Cielonos.MainGame.Characters
this.perfectTime = perfectTime;
this.hasPerfectDodge = true;
this.isDuringPerfectDodge = true;
this._isTriggered = false;
}
@@ -164,7 +174,7 @@ namespace Cielonos.MainGame.Characters
return defaultDodge;
}
public void PerfectDodge()
public void PerfectDodge(AttackAreaBase attackArea)
{
if(_isTriggered) return;
_isTriggered = true;
@@ -176,10 +186,13 @@ namespace Cielonos.MainGame.Characters
sourceCharacter.feedbackSc.PlayFeedback("PerfectDodge");
}
sourceCharacter.reactionSc.dodgeSm.afterPerfectDodgeTimer = dodgeBufferTime + 0.25f;
DodgeSubmodule dodgeSm = sourceCharacter.reactionSc.dodgeSm;
dodgeSm.perfectDodgedTarget = attackArea?.creator;
dodgeSm.afterPerfectDodgeTimer.Reset(dodgeBufferTime + 0.5f);
Debug.Log($"Perfect Dodge triggered by {sourceCharacter.name} against {attackArea?.creator?.name}");
}
public void NormalDodge()
public void NormalDodge(AttackAreaBase attackArea)
{
if(_isTriggered) return;
_isTriggered = true;
@@ -191,7 +204,9 @@ namespace Cielonos.MainGame.Characters
sourceCharacter.feedbackSc.PlayFeedback("NormalDodge");
}
sourceCharacter.reactionSc.dodgeSm.afterNormalDodgeTimer = dodgeBufferTime + 0.25f;
DodgeSubmodule dodgeSm = sourceCharacter.reactionSc.dodgeSm;
dodgeSm.normalDodgedTarget = attackArea?.creator;
dodgeSm.afterNormalDodgeTimer.Reset(dodgeBufferTime + 0.5f);
}
}
}