mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-03 04:36:03 +08:00
129 lines
3.6 KiB
C#
129 lines
3.6 KiB
C#
using EggLink.DanhengServer.Data;
|
|
using EggLink.DanhengServer.Data.Custom;
|
|
using EggLink.DanhengServer.Data.Excel;
|
|
using EggLink.DanhengServer.Enums.Rogue;
|
|
using EggLink.DanhengServer.GameServer.Game.Battle;
|
|
using EggLink.DanhengServer.Proto;
|
|
|
|
namespace EggLink.DanhengServer.GameServer.Game.Rogue.Buff;
|
|
|
|
public class RogueBuffInstance(int buffId, int buffLevel)
|
|
{
|
|
public int BuffId { get; set; } = buffId;
|
|
public int BuffLevel { get; set; } = buffLevel;
|
|
public BaseRogueBuffExcel BuffExcel { get; set; } = GameData.RogueBuffData[buffId * 100 + buffLevel];
|
|
|
|
public int CurSp { get; set; } = 10000;
|
|
public int MaxSp { get; set; } = 10000;
|
|
|
|
public int EnhanceCost => 100 + ((int)BuffExcel.RogueBuffCategory - 1) * 30;
|
|
|
|
public void OnStartBattle(BattleInstance battle)
|
|
{
|
|
if (BuffExcel is RogueBuffExcel { BattleEventBuffType: RogueBuffAeonTypeEnum.BattleEventBuff })
|
|
{
|
|
GameData.RogueBattleEventData.TryGetValue(BuffExcel.RogueBuffType, out var battleEvent);
|
|
if (battleEvent == null) return;
|
|
battle.BattleEvents.Add(BuffId, new BattleEventInstance(battleEvent.BattleEventID, CurSp, MaxSp));
|
|
}
|
|
|
|
battle.Buffs.Add(new MazeBuff(BuffId, BuffLevel, -1)
|
|
{
|
|
WaveFlag = -1
|
|
});
|
|
}
|
|
|
|
public RogueBuff ToProto()
|
|
{
|
|
return new RogueBuff
|
|
{
|
|
BuffId = (uint)BuffId,
|
|
Level = (uint)BuffLevel
|
|
};
|
|
}
|
|
|
|
public RogueCommonBuff ToCommonProto()
|
|
{
|
|
return new RogueCommonBuff
|
|
{
|
|
BuffId = (uint)BuffId,
|
|
BuffLevel = (uint)BuffLevel
|
|
};
|
|
}
|
|
|
|
public RogueCommonActionResult ToResultProto(RogueCommonActionResultSourceType source)
|
|
{
|
|
return new RogueCommonActionResult
|
|
{
|
|
RogueAction = new RogueCommonActionResultData
|
|
{
|
|
GetBuffList = new RogueCommonBuff
|
|
{
|
|
BuffId = (uint)BuffId,
|
|
BuffLevel = (uint)BuffLevel
|
|
}
|
|
},
|
|
Source = source
|
|
};
|
|
}
|
|
|
|
public RogueCommonActionResult ToRemoveResultProto(RogueCommonActionResultSourceType source)
|
|
{
|
|
return new RogueCommonActionResult
|
|
{
|
|
RogueAction = new RogueCommonActionResultData
|
|
{
|
|
RemoveBuffList = new RogueCommonBuff
|
|
{
|
|
BuffId = (uint)BuffId,
|
|
BuffLevel = (uint)BuffLevel
|
|
}
|
|
},
|
|
Source = source
|
|
};
|
|
}
|
|
|
|
public RogueBuffEnhanceInfo ToEnhanceProto()
|
|
{
|
|
return new RogueBuffEnhanceInfo
|
|
{
|
|
BuffId = (uint)BuffId,
|
|
CostData = new ItemCostData
|
|
{
|
|
ItemList =
|
|
{
|
|
new ItemCost
|
|
{
|
|
PileItem = new PileItem
|
|
{
|
|
ItemId = 31,
|
|
ItemNum = (uint)EnhanceCost
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
public ChessRogueBuffEnhanceInfo ToChessEnhanceProto()
|
|
{
|
|
return new ChessRogueBuffEnhanceInfo
|
|
{
|
|
BuffId = (uint)BuffId,
|
|
CostData = new ItemCostData
|
|
{
|
|
ItemList =
|
|
{
|
|
new ItemCost
|
|
{
|
|
PileItem = new PileItem
|
|
{
|
|
ItemId = 31,
|
|
ItemNum = (uint)EnhanceCost
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
}
|
|
} |