mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
Improve activity battle end calculation
This commit is contained in:
@@ -36,6 +36,6 @@ public class FinishWayExcel : ExcelResource
|
||||
|
||||
public override void Loaded()
|
||||
{
|
||||
GameData.FinishWayData.Add(ID, this);
|
||||
GameData.FinishWayData.TryAdd(ID, this);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,8 @@ public class HandlerLeaveTrialActivityCsReq : Handler
|
||||
await manager.TrialActivityInstance.EndActivity();
|
||||
}
|
||||
|
||||
connection.Player!.ActivityManager!.TrialActivityInstance = null;
|
||||
|
||||
await connection.SendPacket(CmdIds.LeaveTrialActivityScRsp);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user