Improve activity battle end calculation

This commit is contained in:
WatchAndyTW
2024-08-03 11:29:43 +08:00
parent 9f3ac98edc
commit 0cfbb3716d
6 changed files with 13 additions and 10 deletions

View File

@@ -36,6 +36,6 @@ public class FinishWayExcel : ExcelResource
public override void Loaded()
{
GameData.FinishWayData.Add(ID, this);
GameData.FinishWayData.TryAdd(ID, this);
}
}

View File

@@ -47,7 +47,6 @@ public class TrialActivityInstance : BaseActivityInstance
{
StageId = Data.CurTrialStageId
});
// player.SendPacket(new PacketTrialActivityDataChangeScNotify((uint)Data.CurTrialStageId));
await player.SendPacket(new PacketCurTrialActivityScNotify((uint)Data.CurTrialStageId, status));
}

View File

@@ -372,6 +372,9 @@ public class BattleManager(PlayerInstance player) : BasePlayerManager(player)
if (Player.ChallengeManager?.ChallengeInstance != null)
await Player.ChallengeManager!.ChallengeInstance.OnBattleEnd(battle, req);
if (player.ActivityManager!.TrialActivityInstance != null && req.EndStatus == BattleEndStatus.BattleEndWin)
await player.ActivityManager.TrialActivityInstance.EndActivity(TrialActivityStatus.Finish);
await Player.SendPacket(new PacketPVEBattleResultScRsp(req, Player, battle));
}
}

View File

@@ -16,6 +16,8 @@ public class HandlerLeaveTrialActivityCsReq : Handler
await manager.TrialActivityInstance.EndActivity();
}
connection.Player!.ActivityManager!.TrialActivityInstance = null;
await connection.SendPacket(CmdIds.LeaveTrialActivityScRsp);
}
}

View File

@@ -10,8 +10,6 @@ public class HandlerPVEBattleResultCsReq : Handler
{
var req = PVEBattleResultCsReq.Parser.ParseFrom(data);
var player = connection.Player!;
player.BattleManager?.EndBattle(req);
if (player.ActivityManager!.TrialActivityInstance != null && req.EndStatus == BattleEndStatus.BattleEndWin)
await player.ActivityManager.TrialActivityInstance.EndActivity(TrialActivityStatus.Finish);
await player.BattleManager!.EndBattle(req);
}
}

View File

@@ -16,18 +16,19 @@ public class PacketStartChallengeScRsp : BasePacket
SetData(proto);
}
public PacketStartChallengeScRsp(PlayerInstance player) : base(CmdIds.StartChallengeScRsp)
public PacketStartChallengeScRsp(PlayerInstance player, bool sendScene = true) : base(CmdIds.StartChallengeScRsp)
{
StartChallengeScRsp proto = new()
{
Scene = player.SceneInstance!.ToProto()
};
StartChallengeScRsp proto = new();
if (player.ChallengeManager!.ChallengeInstance != null)
{
proto.CurChallenge = player.ChallengeManager.ChallengeInstance.ToProto();
proto.LineupList.Add(player.LineupManager!.GetExtraLineup(ExtraLineupType.LineupChallenge)!.ToProto());
proto.LineupList.Add(player.LineupManager!.GetExtraLineup(ExtraLineupType.LineupChallenge2)!.ToProto());
if (sendScene)
{
proto.Scene = player.SceneInstance!.ToProto();
}
}
else
{