Files
DanhengServer-OpenSource/GameServer/Game/ChessRogue/Modifier/ModifierEffect/Effects/ModifierEffectAddMazeBuff.cs
2024-10-13 13:47:31 +08:00

58 lines
2.0 KiB
C#

using EggLink.DanhengServer.Data;
using EggLink.DanhengServer.Data.Excel;
using EggLink.DanhengServer.Enums.Rogue;
using EggLink.DanhengServer.GameServer.Game.Battle;
namespace EggLink.DanhengServer.GameServer.Game.ChessRogue.Modifier.ModifierEffect.Effects;
[ModifierEffect(ModifierEffectTypeEnum.AddMazeBuff)]
public class ModifierEffectAddMazeBuff : ModifierEffectHandler
{
public override async ValueTask OnConfirmed(ChessRogueDiceModifierInstance modifierInstance, ChessRogueInstance chessRogueInstance)
{
modifierInstance.IsConfirmed = true;
await ValueTask.CompletedTask;
}
public override async ValueTask SelectModifierCell(ChessRogueDiceModifierInstance modifierInstance, ChessRogueInstance chessRogueInstance,
int selectCellId)
{
await ValueTask.CompletedTask;
}
public override async ValueTask SelectCell(ChessRogueDiceModifierInstance modifierInstance, ChessRogueInstance chessRogueInstance,
int selectCellId)
{
await ValueTask.CompletedTask;
}
public override void BeforeBattle(ChessRogueDiceModifierInstance modifierInstance, BattleInstance battle,
ChessRogueInstance instance)
{
modifierInstance.EffectConfig.Params.TryGetValue("BuffId", out var buffId);
if (buffId == null) return;
var buff = new MazeBuff(int.Parse(buffId), 1, -1)
{
WaveFlag = -1
};
GameData.MazeBuffData.TryGetValue(int.Parse(buffId) * 10 + 1, out var buffExcel);
if (buffExcel != null)
{
var modifier = GameData.AdventureModifierData.GetValueOrDefault(buffExcel.ModifierName);
if (modifier != null)
{
// handle modifier
instance.HandleMazeBuffModifier(modifier, buff);
}
}
battle.Buffs.Add(buff);
}
public override async ValueTask AfterBattle(ChessRogueDiceModifierInstance modifierInstance, BattleInstance battle)
{
await ValueTask.CompletedTask;
}
}