Files
Cielonos/Assets/Scripts/MainGame/Base/BuffSystem/Inheritors/CharacterBuffs/GeneralIncapacitation.cs
SoulliesOfficial f7af60351b 阶段性完成
2025-12-08 05:27:53 -05:00

50 lines
1.7 KiB
C#

using Cielonos.UI;
using SLSUtilities.FunctionalAnimation;
using UnityEngine;
namespace Cielonos.MainGame.Characters.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();
}
}
}