mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
refactor: use event instead of multiple call back
This commit is contained in:
@@ -314,6 +314,7 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
GridFightOptions = new BattleGridFightOptions(curSection, inst, Player)
|
||||
};
|
||||
|
||||
battleInstance.OnBattleEnd += inst.EndBattle;
|
||||
Player.BattleInstance = battleInstance;
|
||||
|
||||
Player.QuestManager!.OnBattleStart(battleInstance);
|
||||
@@ -404,22 +405,12 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
|
||||
Player.BattleInstance = null;
|
||||
|
||||
await Player.MissionManager!.OnBattleFinish(req, battle);
|
||||
if (Player.RogueManager?.GetRogueInstance() != null)
|
||||
await Player.RogueManager!.GetRogueInstance()!.OnBattleEnd(battle, req);
|
||||
|
||||
if (Player.ChallengeManager?.ChallengeInstance != null)
|
||||
await Player.ChallengeManager!.ChallengeInstance.OnBattleEnd(battle, req);
|
||||
battle.OnBattleEnd += Player.MissionManager!.OnBattleFinish;
|
||||
await battle.TriggerOnBattleEnd();
|
||||
|
||||
if (Player.ActivityManager!.TrialActivityInstance != null && req.EndStatus == BattleEndStatus.BattleEndWin)
|
||||
await Player.ActivityManager.TrialActivityInstance.EndActivity(TrialActivityStatus.Finish);
|
||||
|
||||
if (Player.GridFightManager?.GridFightInstance != null &&
|
||||
battle.GridFightOptions != null)
|
||||
{
|
||||
await Player.GridFightManager!.GridFightInstance!.EndBattle(battle);
|
||||
}
|
||||
|
||||
await Player.SendPacket(new PacketPVEBattleResultScRsp(req, Player, battle));
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ public abstract class BaseChallengeInstance(PlayerInstance player, ChallengeData
|
||||
|
||||
public virtual void OnBattleStart(BattleInstance battle)
|
||||
{
|
||||
battle.OnBattleEnd += OnBattleEnd;
|
||||
}
|
||||
|
||||
public virtual async ValueTask OnBattleEnd(BattleInstance battle, PVEBattleResultCsReq req)
|
||||
|
||||
@@ -178,6 +178,8 @@ public class ChallengeBossInstance(PlayerInstance player, ChallengeDataPb data)
|
||||
|
||||
public override void OnBattleStart(BattleInstance battle)
|
||||
{
|
||||
base.OnBattleStart(battle);
|
||||
|
||||
battle.RoundLimit = Config.ChallengeCountDown;
|
||||
|
||||
battle.Buffs.Add(new MazeBuff(Config.MazeBuffID, 1, -1)
|
||||
|
||||
@@ -84,6 +84,8 @@ public class ChallengeMemoryInstance(PlayerInstance player, ChallengeDataPb data
|
||||
|
||||
public override void OnBattleStart(BattleInstance battle)
|
||||
{
|
||||
base.OnBattleStart(battle);
|
||||
|
||||
battle.RoundLimit = (int)Data.Memory.RoundsLeft;
|
||||
|
||||
battle.Buffs.Add(new MazeBuff(Config.MazeBuffID, 1, -1)
|
||||
|
||||
@@ -68,6 +68,8 @@ public class ChallengePeakInstance(PlayerInstance player, ChallengeDataPb data)
|
||||
|
||||
public override void OnBattleStart(BattleInstance battle)
|
||||
{
|
||||
base.OnBattleStart(battle);
|
||||
|
||||
foreach (var peakBuff in Data.Peak.Buffs)
|
||||
battle.Buffs.Add(new MazeBuff((int)peakBuff, 1, -1)
|
||||
{
|
||||
|
||||
@@ -108,6 +108,8 @@ public class ChallengeStoryInstance(PlayerInstance player, ChallengeDataPb data)
|
||||
|
||||
public override void OnBattleStart(BattleInstance battle)
|
||||
{
|
||||
base.OnBattleStart(battle);
|
||||
|
||||
battle.RoundLimit = Config.ChallengeCountDown;
|
||||
|
||||
battle.Buffs.Add(new MazeBuff(Config.MazeBuffID, 1, -1)
|
||||
|
||||
@@ -596,7 +596,7 @@ public class MissionManager(PlayerInstance player) : BasePlayerManager(player)
|
||||
|
||||
#region Handlers
|
||||
|
||||
public async ValueTask OnBattleFinish(PVEBattleResultCsReq req, BattleInstance instance)
|
||||
public async ValueTask OnBattleFinish(BattleInstance instance, PVEBattleResultCsReq req)
|
||||
{
|
||||
foreach (var mission in GetRunningSubMissionIdList())
|
||||
{
|
||||
|
||||
@@ -495,6 +495,8 @@ public abstract class BaseRogueInstance(PlayerInstance player, RogueSubModeEnum
|
||||
foreach (var miracle in RogueMiracles.Values) miracle.OnStartBattle(battle);
|
||||
|
||||
foreach (var buff in RogueBuffs) buff.OnStartBattle(battle);
|
||||
|
||||
battle.OnBattleEnd += OnBattleEnd;
|
||||
}
|
||||
|
||||
public abstract ValueTask OnBattleEnd(BattleInstance battle, PVEBattleResultCsReq req);
|
||||
|
||||
Reference in New Issue
Block a user