Fix: Battle target list error

This commit is contained in:
WatchAndyTW
2024-05-22 18:34:17 +08:00
parent 498e9db4b3
commit 7c93eca33f
3 changed files with 28 additions and 20 deletions

View File

@@ -7,6 +7,7 @@ using EggLink.DanhengServer.Game.Player;
using EggLink.DanhengServer.Game.Scene;
using EggLink.DanhengServer.Game.Scene.Entity;
using EggLink.DanhengServer.Proto;
using Google.Protobuf;
namespace EggLink.DanhengServer.Game.Battle
{
@@ -31,7 +32,7 @@ namespace EggLink.DanhengServer.Game.Battle
public List<AvatarSceneInfo> AvatarInfo { get; set; } = [];
public List<MazeBuff> Buffs { get; set; } = [];
public Dictionary<int, BattleEventInstance> BattleEvents { get; set; } = [];
public List<BattleTarget> BattleTargets { get; set; } = [];
public Dictionary<int, BattleTargetList> BattleTargets { get; set; } = [];
public BattleInstance(PlayerInstance player, Database.Lineup.LineupInfo lineup, List<EntityMonster> monsters) : this(player, lineup, new List<StageConfigExcel>())
{
@@ -66,6 +67,23 @@ namespace EggLink.DanhengServer.Game.Battle
return list;
}
public void AddBattleTarget(int key, int targetId, int progress, int totalProgress)
{
if (!BattleTargets.ContainsKey(key))
{
BattleTargets.Add(key, new BattleTargetList());
}
var battleTarget = new BattleTarget()
{
Id = (uint)targetId,
Progress = (uint)progress,
TotalProgress = (uint)totalProgress
};
BattleTargets[key].BGNPEBHGELB.Add(battleTarget);
}
public SceneBattleInfo ToProto()
{
var proto = new SceneBattleInfo()
@@ -138,13 +156,12 @@ namespace EggLink.DanhengServer.Game.Battle
{
for (int i = 1; i <= 5; i++)
{
var battleTargetList = BattleTargets[i];
var battleTargetEntry = new BattleTargetList { };
var battleTargetEntry = new BattleTargetList();
// Maybe?
if (BattleTargets.Count >= i)
if (BattleTargets.ContainsKey(i))
{
battleTargetEntry.BGNPEBHGELB.Add(battleTargetList);
var battleTargetList = BattleTargets[i];
battleTargetEntry.BGNPEBHGELB.AddRange(battleTargetList.BGNPEBHGELB);
}
proto.BattleTargetInfo.Add((uint)i, battleTargetEntry);

View File

@@ -34,7 +34,7 @@ namespace EggLink.DanhengServer.Game.Challenge
[JsonIgnore]
PlayerInstance Player { get; set; }
[JsonIgnore]
ChallengeConfigExcel Excel { get; set; }
public ChallengeConfigExcel Excel { get; set; }
public List<int> StoryBuffs { get; set; } = [];
public List<int> BossBuffs { get; set; } = [];
@@ -136,20 +136,11 @@ namespace EggLink.DanhengServer.Game.Challenge
if (Excel.StoryExcel != null)
{
battle.BattleTargets.Add(new BattleTarget() {
Id = 1,
Progress = 10001,
TotalProgress = (uint)GetTotalScore(),
});
battle.AddBattleTarget(1, 10001, GetTotalScore(), 0);
foreach (var id in Excel.StoryExcel.BattleTargetID!)
{
battle.BattleTargets.Add(new BattleTarget()
{
Id = 5,
Progress = (uint)id,
TotalProgress = (uint)GetTotalScore(),
});
battle.AddBattleTarget(1, id, GetTotalScore(), 0);
}
}
}
@@ -179,7 +170,7 @@ namespace EggLink.DanhengServer.Game.Challenge
ExtraLineupType = (ExtraLineupType)CurrentExtraLineup
};
if (StoryBuffs != null && StoryBuffs.Count >= (CurrentStage - 1))
if (StoryBuffs != null && StoryBuffs.Count >= CurrentStage)
{
proto.PlayerInfo = new ChallengeStoryInfo() { CurStoryBuff = new ChallengeStoryBuffInfo() { } };
proto.PlayerInfo.CurStoryBuff.BuffList.Add((uint)StoryBuffs[CurrentStage - 1]);

View File

@@ -293,7 +293,7 @@ namespace EggLink.DanhengServer.Game.Lineup
public void ReplaceLineup(Proto.ReplaceLineupCsReq req)
{
if (req.ExtraLineupType == Proto.ExtraLineupType.LineupChallenge || req.ExtraLineupType == Proto.ExtraLineupType.LineupChallenge2)
if (req.ExtraLineupType != Proto.ExtraLineupType.LineupNone)
{
LineupData.CurExtraLineup = (int)req.ExtraLineupType + 10;
if (!LineupData.Lineups.ContainsKey(LineupData.CurExtraLineup))