mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
77 lines
1.9 KiB
C#
77 lines
1.9 KiB
C#
using EggLink.DanhengServer.Data;
|
|
using EggLink.DanhengServer.Data.Config;
|
|
using EggLink.DanhengServer.Data.Excel;
|
|
using EggLink.DanhengServer.Game.Player;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace EggLink.DanhengServer.Game.Task
|
|
{
|
|
public class PerformanceTrigger(PlayerInstance player) : BasePlayerManager(player)
|
|
{
|
|
public void TriggerPerformance(int performanceId)
|
|
{
|
|
GameData.PerformanceEData.TryGetValue(performanceId, out var excel);
|
|
if (excel != null)
|
|
{
|
|
TriggerPerformance(excel);
|
|
}
|
|
}
|
|
|
|
public void TriggerPerformance(PerformanceEExcel excel)
|
|
{
|
|
if (excel.ActInfo == null) return;
|
|
foreach (var act in excel.ActInfo.OnInitSequece)
|
|
{
|
|
TriggerAct(act);
|
|
}
|
|
|
|
foreach (var act in excel.ActInfo.OnStartSequece)
|
|
{
|
|
TriggerAct(act);
|
|
}
|
|
}
|
|
|
|
private void TriggerAct(MissionActTaskInfo act)
|
|
{
|
|
foreach (var task in act.TaskList)
|
|
{
|
|
TriggerTask(task);
|
|
}
|
|
|
|
foreach (var task in act.TaskList)
|
|
{
|
|
TriggerTask(task);
|
|
}
|
|
}
|
|
|
|
private void TriggerTask(MissionActTaskInfo act)
|
|
{
|
|
try
|
|
{
|
|
var methodName = act.Type.Replace("RPG.GameCore.", "");
|
|
|
|
var method = GetType().GetMethod(methodName);
|
|
if (method != null)
|
|
{
|
|
_ = method.Invoke(this, [act]);
|
|
}
|
|
} catch
|
|
{
|
|
}
|
|
}
|
|
|
|
#region Task
|
|
|
|
public void PlayMessage(MissionActTaskInfo act)
|
|
{
|
|
Player.MessageManager!.AddMessageSection(act.MessageSectionID);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|