51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using Cielonos.MainGame.Characters;
|
|
using Cielonos.UI;
|
|
using SLSUtilities.FunctionalAnimation;
|
|
using UnityEngine;
|
|
|
|
namespace Cielonos.MainGame.Buffs
|
|
{
|
|
public class GeneralIncapacitation : CharacterBuffBase
|
|
{
|
|
public GeneralIncapacitation(float duration)
|
|
{
|
|
Initialize(BuffType.Negative, BuffDispelLevel.Strong);
|
|
this.contentSubmodule = new ContentSubmodule(this);
|
|
this.statusSubmodule = new StatusSubmodule(this, StatusType.Incapacitation);
|
|
this.independentStackSubmodule = new IndependentStackSubmodule(this, 1, duration);
|
|
}
|
|
|
|
public override bool OnBuffApply(out CharacterBuffBase existingBuff)
|
|
{
|
|
//GeneralUtilities.InstantiateInfo(attachedEntity.flexibleCenterPoint.position, "失能", Color.white, 2);
|
|
|
|
if (FindExistingSameBuff(out existingBuff))
|
|
{
|
|
existingBuff.independentStackSubmodule.Merge(this.independentStackSubmodule);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public override void OnAfterFirstApply()
|
|
{
|
|
base.OnAfterFirstApply();
|
|
attachedCharacter.animationSc.fullBodyFuncAnimSm.Stop(DisruptionType.ForcedExternal);
|
|
attachedCharacter.animationSc.fullBodyFuncAnimSm.Play("KnockOut");
|
|
}
|
|
|
|
public override void OnBuffUpdate()
|
|
{
|
|
base.OnBuffUpdate();
|
|
PlayerCanvas.Instance.bossInfoUIArea[attachedCharacter]?.UpdateArmor();
|
|
}
|
|
|
|
public override void OnBuffRemove()
|
|
{
|
|
statusSubmodule.RemoveStatus();
|
|
attachedCharacter.animationSc.fullBodyFuncAnimSm.Play("Rise");
|
|
//(attachedCharacter as Automata)?.behaviorTree.RestartBehavior();
|
|
}
|
|
}
|
|
} |