using DG.Tweening; using UnityEngine; namespace Cielonos.MainGame.Characters { public class NexusCrab : Automata { protected override void Start() { base.Start(); RegisterFunctionsToAnimSc(SingleSwing, ThreeSwings_0, ThreeSwings_1, ThreeSwings_2, ImpaleWave_Blast, ImpaleWave_Wave, JumpAttack_Blast); } private void SingleSwing() => GenerateSlash("SingleSwing"); private void ThreeSwings_0() => GenerateSlash("ThreeSwings_0"); private void ThreeSwings_1() => GenerateSlash("ThreeSwings_1"); private void ThreeSwings_2() => GenerateSlash("ThreeSwings_2"); private void ImpaleWave_Blast() => GenerateBlast("ImpaleWave_Blast", 4); private void ImpaleWave_Wave() => GenerateWave("ImpaleWave_Wave"); private void JumpAttack_Blast() => GenerateBlast("JumpAttack_Blast", 24); private void GenerateSlash(string vfxName) { NormalArea slash = vfxData.SpawnVFX(vfxName).GetComponentInChildren(); slash.Initialize(this, null, Fraction.Player) .SetAttackSubmodule(attackData["LightAttack"]) .SetTimeSubmodule(1.5f) .SetHitSubmodule() .SetForceSubmodule(8f, true); } private void GenerateBlast(string vfxName, float force) { NormalArea slash = vfxData.SpawnVFX(vfxName).GetComponentInChildren(); slash.Initialize(this, null, Fraction.Player) .SetAttackSubmodule(attackData["LightAttack"]) .SetTimeSubmodule(1.2f) .SetHitSubmodule() .SetForceSubmodule(force, true) .SetReactionSubmodule(false, false, false, true, true, false); } private void GenerateWave(string vfxName) { NormalArea slash = vfxData.SpawnVFX(vfxName).GetComponentInChildren(); slash.Initialize(this, null, Fraction.Player) .SetAttackSubmodule(attackData["LightAttack"]) .SetTimeSubmodule(1.5f) .SetHitSubmodule() .SetForceSubmodule(16f, true) .SetReactionSubmodule(false, false, false, true, true, false); slash.transform.DOLocalMoveZ(8f, 0.8f).From(0f).Play(); slash.transform.DOScale(1.5f, 0.8f).From(1f).Play(); } } }