Files
DanhengServer-OpenSource/GameServer/Game/Task/SceneTaskTrigger.cs
Somebody 87d228eb79 Feature:Asynchronous Operation & Formatting Code
- Now the async operation is enabled!
- Code formatted by Resharper plugin <3
2024-07-22 17:12:03 +08:00

41 lines
1.5 KiB
C#

using EggLink.DanhengServer.Data;
using EggLink.DanhengServer.Data.Excel;
using EggLink.DanhengServer.Game.Player;
namespace EggLink.DanhengServer.GameServer.Game.Task;
public class SceneTaskTrigger(PlayerInstance player)
{
public PlayerInstance Player { get; } = player;
public void TriggerFloor(int planeId, int floorId)
{
GameData.GetFloorInfo(planeId, floorId, out var floor);
if (floor == null) return;
foreach (var group in floor.Groups.Values)
{
if (group.LevelGraphConfig == null) continue;
foreach (var task in group.LevelGraphConfig.OnInitSequece)
Player.TaskManager?.LevelTask.TriggerInitAct(task, new SubMissionExcel(), group);
foreach (var task in group.LevelGraphConfig.OnStartSequece)
Player.TaskManager?.LevelTask.TriggerStartAct(task, new SubMissionExcel(), group);
}
}
public void TriggerGroup(int planeId, int floorId, int groupId)
{
GameData.GetFloorInfo(planeId, floorId, out var floor);
if (floor == null) return;
if (floor.Groups.TryGetValue(groupId, out var group))
{
if (group.LevelGraphConfig == null) return;
foreach (var task in group.LevelGraphConfig.OnInitSequece)
Player.TaskManager?.LevelTask.TriggerInitAct(task, new SubMissionExcel(), group);
foreach (var task in group.LevelGraphConfig.OnStartSequece)
Player.TaskManager?.LevelTask.TriggerStartAct(task, new SubMissionExcel(), group);
}
}
}