58 lines
2.6 KiB
C#
58 lines
2.6 KiB
C#
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<NormalArea>();
|
|
slash.Initialize<NormalArea>(this, null, Fraction.Player)
|
|
.SetAttackSubmodule<NormalArea>(attackData["LightAttack"])
|
|
.SetTimeSubmodule<NormalArea>(1.5f)
|
|
.SetHitSubmodule<NormalArea>()
|
|
.SetForceSubmodule<NormalArea>(8f, true);
|
|
}
|
|
|
|
private void GenerateBlast(string vfxName, float force)
|
|
{
|
|
NormalArea slash = vfxData.SpawnVFX(vfxName).GetComponentInChildren<NormalArea>();
|
|
slash.Initialize<NormalArea>(this, null, Fraction.Player)
|
|
.SetAttackSubmodule<NormalArea>(attackData["LightAttack"])
|
|
.SetTimeSubmodule<NormalArea>(1.2f)
|
|
.SetHitSubmodule<NormalArea>()
|
|
.SetForceSubmodule<NormalArea>(force, true)
|
|
.SetReactionSubmodule<NormalArea>(false, false, false, true, true, false);
|
|
}
|
|
|
|
private void GenerateWave(string vfxName)
|
|
{
|
|
NormalArea slash = vfxData.SpawnVFX(vfxName).GetComponentInChildren<NormalArea>();
|
|
slash.Initialize<NormalArea>(this, null, Fraction.Player)
|
|
.SetAttackSubmodule<NormalArea>(attackData["LightAttack"])
|
|
.SetTimeSubmodule<NormalArea>(1.5f)
|
|
.SetHitSubmodule<NormalArea>()
|
|
.SetForceSubmodule<NormalArea>(16f, true)
|
|
.SetReactionSubmodule<NormalArea>(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();
|
|
}
|
|
}
|
|
} |