This commit is contained in:
SoulliesOfficial
2026-04-17 12:01:50 -04:00
parent dd2657573a
commit ac98ec3aef
438 changed files with 4505 additions and 428 deletions

View File

@@ -0,0 +1,53 @@
using Continentis.MainGame;
using Continentis.MainGame.Character;
using SLSUtilities.General;
namespace Continentis.Mods.Basic.Buffs
{
/// <summary>
/// 风蚀Wind 元素):行动开始时移除目标 [层数×2] 点格挡,然后层数 -1。
/// 定位:反格挡,与 Firm格挡积累形成元素克制。
/// </summary>
public sealed class Erosion : CharacterCombatBuffBase
{
public Erosion(int stack)
{
Initialize(BuffType.Negative, BuffDispelLevel.Basic);
this.contentSubmodule = new ContentSubmodule(this)
.AddParameterGetter("Stack", () => unitedStackSubmodule.stackAmount.ToString())
.AddParameterGetter("BlockRemoval", () => (unitedStackSubmodule.stackAmount * 2).ToString());
this.iconSubmodule = new IconSubmodule(this);
this.unitedStackSubmodule = new UnitedStackSubmodule(this, stack);
this.eventSubmodule = new EventSubmodule(this);
this.eventSubmodule.onActionStart.Add("Erosion", new PrioritizedAction(OnActionStart));
}
private void OnActionStart()
{
int blockRemoval = unitedStackSubmodule.stackAmount * 2;
// 负值减少格挡Clamp 至 0
attachedCharacter.ModifyAndClampAttribute(CharacterAttributes.Block, -blockRemoval);
unitedStackSubmodule.ReduceStack(1);
iconSubmodule.Update();
}
public override bool OnBuffApply(out CharacterCombatBuffBase existingBuff)
{
MainGameManager.Instance.basePrefabs.GenerateInfoText(
contentSubmodule.displayName, attachedCharacter.characterView);
if (FindExistingSameBuff(out existingBuff))
{
existingBuff.unitedStackSubmodule.AddStack(this.unitedStackSubmodule.stackAmount);
return false;
}
return true;
}
}
}