Files
DanhengServer-OpenSource/GameServer/Game/Task/PerformanceTrigger.cs
2024-07-23 13:39:10 +08:00

40 lines
1.5 KiB
C#

using EggLink.DanhengServer.Data;
using EggLink.DanhengServer.Data.Excel;
using EggLink.DanhengServer.GameServer.Game.Player;
namespace EggLink.DanhengServer.GameServer.Game.Task;
public class PerformanceTrigger(PlayerInstance player)
{
public PlayerInstance Player { get; } = player;
public void TriggerPerformanceE(int performanceEId, SubMissionExcel subMission)
{
GameData.PerformanceEData.TryGetValue(performanceEId, out var excel);
if (excel != null) TriggerPerformanceE(excel, subMission);
}
public void TriggerPerformanceE(PerformanceEExcel excel, SubMissionExcel subMission)
{
if (excel.ActInfo == null) return;
foreach (var act in excel.ActInfo.OnInitSequece) Player.TaskManager?.LevelTask.TriggerInitAct(act, subMission);
foreach (var act in excel.ActInfo.OnStartSequece)
Player.TaskManager?.LevelTask.TriggerStartAct(act, subMission);
}
public void TriggerPerformanceD(int performanceDId, SubMissionExcel subMission)
{
GameData.PerformanceDData.TryGetValue(performanceDId, out var excel);
if (excel != null) TriggerPerformanceD(excel, subMission);
}
public void TriggerPerformanceD(PerformanceDExcel excel, SubMissionExcel subMission)
{
if (excel.ActInfo == null) return;
foreach (var act in excel.ActInfo.OnInitSequece) Player.TaskManager?.LevelTask.TriggerInitAct(act, subMission);
foreach (var act in excel.ActInfo.OnStartSequece)
Player.TaskManager?.LevelTask.TriggerStartAct(act, subMission);
}
}