private void ResolveRapidAttackAnim(IAction p1a, IAction p2a, int momentIndex) { if (p1a.HasRapidAttack()) { P1MoveFailAnimation = true; P1MoveTo = Player1.Gradiator.RelativePosToAbsolute(Direction.Front.ToRelativePos()); DamageParams.Add(new DamageEffectParam { Pos = Player2.Gradiator.Position, Value = p1a.ResolveRapidAttack(momentIndex, Player1) }); if (p1a.ResolveRapidAttack(momentIndex, Player1) > 0) { Slashes.Add(Player2.Gradiator.Position); } } if (p2a.HasRapidAttack()) { P2MoveFailAnimation = true; P2MoveTo = Player2.Gradiator.RelativePosToAbsolute(Direction.Front.ToRelativePos()); DamageParams.Add(new DamageEffectParam { Pos = Player1.Gradiator.Position, Value = p2a.ResolveRapidAttack(momentIndex, Player2) }); if (p2a.ResolveRapidAttack(momentIndex, Player2) > 0) { Slashes.Add(Player1.Gradiator.Position); } } }
private void ResolveActionAttackAnim(IAction p1a, IAction p2a, int momentIndex) { if (p1a.HasActionAttack()) { P1MoveFailAnimation = true; P1MoveTo = Player1.Gradiator.RelativePosToAbsolute(Direction.Front.ToRelativePos()); if (p1a.ResolveDamage(momentIndex, Player1) == 0) { DamageParams.Add(new DamageEffectParam { Pos = Player2.Gradiator.Position, Value = 0 }); // miss } else { if (Player2.BigCounter) { Slashes.Add(Player1.Gradiator.Position); DamageParams.Add(new DamageEffectParam { Pos = Player1.Gradiator.Position, Value = p1a.ResolveDamage(momentIndex, Player1) * 2 }); } else { // damage Slashes.Add(Player2.Gradiator.Position); DamageParams.Add(new DamageEffectParam { Pos = Player2.Gradiator.Position, Value = p1a.ResolveDamage(momentIndex, Player1) }); } if (Player2.Cotton) { Heal.Add(Player2.Gradiator.Position); } if (Player2.Counter) { Slashes.Add(Player1.Gradiator.Position); DamageParams.Add(new DamageEffectParam { Pos = Player1.Gradiator.Position, Value = p1a.ResolveDamage(momentIndex, Player1) }); } } } if (p2a.HasActionAttack()) { P2MoveFailAnimation = true; P2MoveTo = Player2.Gradiator.RelativePosToAbsolute(Direction.Front.ToRelativePos()); if (p2a.ResolveDamage(momentIndex, Player2) == 0) { DamageParams.Add(new DamageEffectParam { Pos = Player1.Gradiator.Position, Value = 0 }); // miss } else { if (Player1.BigCounter) { Slashes.Add(Player2.Gradiator.Position); DamageParams.Add(new DamageEffectParam { Pos = Player2.Gradiator.Position, Value = p2a.ResolveDamage(momentIndex, Player2) * 2 }); } else { // damage Slashes.Add(Player1.Gradiator.Position); DamageParams.Add(new DamageEffectParam { Pos = Player1.Gradiator.Position, Value = p2a.ResolveDamage(momentIndex, Player2) }); } if (Player1.Cotton) { Heal.Add(Player1.Gradiator.Position); } if (Player1.Counter) { Slashes.Add(Player2.Gradiator.Position); DamageParams.Add(new DamageEffectParam { Pos = Player2.Gradiator.Position, Value = p2a.ResolveDamage(momentIndex, Player2) }); } } } }