Files
DanhengServer-OpenSource/GameServer/Game/Task/SceneTaskTrigger.cs
Somebody 72ddae8940 [BREAK CHANGE] Feature: Implement the basic task system
- Support for the 2.0&2.1 mission
- The story line is still not working
2024-07-16 14:15:07 +08:00

55 lines
1.8 KiB
C#

using EggLink.DanhengServer.Data;
using EggLink.DanhengServer.Game.Player;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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(), group);
}
foreach (var task in group.LevelGraphConfig.OnStartSequece)
{
Player.TaskManager?.LevelTask.TriggerStartAct(task, new(), 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(), group);
}
foreach (var task in group.LevelGraphConfig.OnStartSequece)
{
Player.TaskManager?.LevelTask.TriggerStartAct(task, new(), group);
}
}
}
}
}