mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-02 20:26:03 +08:00
Fix: Battle target list error
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user