Commit 7f414eef authored by SherryChaos's avatar SherryChaos

fix replay bug

parent a5161237
...@@ -63,3 +63,4 @@ Data/ur.ydk ...@@ -63,3 +63,4 @@ Data/ur.ydk
Data/lflist_genesys.conf Data/lflist_genesys.conf
Data/mycard_apps.json Data/mycard_apps.json
Data/Rarity.json Data/Rarity.json
Data/Rarity.json
...@@ -1421,6 +1421,11 @@ namespace Percy ...@@ -1421,6 +1421,11 @@ namespace Percy
result[unicode.Length + 1] = 0; result[unicode.Length + 1] = 0;
writer.Write(result); writer.Write(result);
} }
public bool IsNew()
{
return ID == 0x32707279;
}
} }
internal class MonoPInvokeCallbackAttribute : Attribute internal class MonoPInvokeCallbackAttribute : Attribute
......
...@@ -164,11 +164,6 @@ namespace MDPro3.Duel ...@@ -164,11 +164,6 @@ namespace MDPro3.Duel
#region Message Process #region Message Process
public override async UniTask Process(Package p)
{
await base.Process(p);
}
protected override async UniTask GameMessage_Start(BinaryReader reader) protected override async UniTask GameMessage_Start(BinaryReader reader)
{ {
ResetState(); ResetState();
...@@ -2038,11 +2033,13 @@ namespace MDPro3.Duel ...@@ -2038,11 +2033,13 @@ namespace MDPro3.Duel
var player = LocalPlayer(reader.ReadByte()); var player = LocalPlayer(reader.ReadByte());
if (condition != Condition.Replay || CurrentReplayUseYRP2) if (condition != Condition.Replay || CurrentReplayUseYRP2)
reader.ReadByte(); reader.ReadByte();
var count = reader.ReadByte(); var count = reader.ReadByte();
var listShow = false; var listShow = false;
if (count > 3 && condition == Condition.Duel) if (count > 3 && condition == Condition.Duel)
listShow = true; listShow = true;
var confirmCards = new List<GameCard>(); var confirmCards = new List<GameCard>();
Sequence sequence = null; Sequence sequence = null;
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
...@@ -2060,6 +2057,7 @@ namespace MDPro3.Duel ...@@ -2060,6 +2057,7 @@ namespace MDPro3.Duel
else else
sequence = card.AnimationConfirm(i); sequence = card.AnimationConfirm(i);
} }
if (listShow) if (listShow)
{ {
Core.GetUI<OcgCoreUI>().ShowPopupSelectCard Core.GetUI<OcgCoreUI>().ShowPopupSelectCard
...@@ -2067,7 +2065,9 @@ namespace MDPro3.Duel ...@@ -2067,7 +2065,9 @@ namespace MDPro3.Duel
await UniTask.WaitUntil(() => dispatcher.playerResponed); await UniTask.WaitUntil(() => dispatcher.playerResponed);
} }
else else
{
await UniTask.WaitForSeconds(sequence.Duration() + 0.1f); await UniTask.WaitForSeconds(sequence.Duration() + 0.1f);
}
} }
protected override async UniTask GameMessage_DeckTop(BinaryReader reader) protected override async UniTask GameMessage_DeckTop(BinaryReader reader)
......
...@@ -2,6 +2,7 @@ using Cysharp.Threading.Tasks; ...@@ -2,6 +2,7 @@ using Cysharp.Threading.Tasks;
using MDPro3.Duel.YGOSharp; using MDPro3.Duel.YGOSharp;
using MDPro3.Servant; using MDPro3.Servant;
using MDPro3.UI.ServantUI; using MDPro3.UI.ServantUI;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
...@@ -574,6 +575,21 @@ namespace MDPro3.Duel ...@@ -574,6 +575,21 @@ namespace MDPro3.Duel
protected override UniTask GameMessage_ConfirmCards(BinaryReader reader) protected override UniTask GameMessage_ConfirmCards(BinaryReader reader)
{ {
try
{
return GameMessage_ConfirmCardsForTry(reader);
}
catch
{
OcgCore.CurrentReplayUseYRP2 = !OcgCore.CurrentReplayUseYRP2;
return GameMessage_ConfirmCardsForTry(reader);
}
}
private UniTask GameMessage_ConfirmCardsForTry(BinaryReader reader)
{
reader.BaseStream.Position = 0;
//var player = LocalPlayer(reader.ReadByte()); //var player = LocalPlayer(reader.ReadByte());
reader.ReadByte(); reader.ReadByte();
...@@ -592,7 +608,6 @@ namespace MDPro3.Duel ...@@ -592,7 +608,6 @@ namespace MDPro3.Duel
textReason = InterString.Get("公开盖卡"); textReason = InterString.Get("公开盖卡");
DuelLog.AddSingleCardMessageToLog(code, null, gps, textReason); DuelLog.AddSingleCardMessageToLog(code, null, gps, textReason);
} }
return UniTask.CompletedTask; return UniTask.CompletedTask;
} }
......
...@@ -105,11 +105,16 @@ namespace MDPro3.UI.ServantUI ...@@ -105,11 +105,16 @@ namespace MDPro3.UI.ServantUI
percy?.Dispose(); percy?.Dispose();
percy = new PercyOCG(); percy = new PercyOCG();
var replays = GetYRPBuffer(fileName); var replays = GetYRPBuffer(fileName);
var collections = TcpHelper.GetPackages(percy.ygopro.GetYRP3dBuffer(GetYRP(replays[replays.Count - 1]))); var collections = TcpHelper.GetPackages(percy.ygopro.GetYRP3dBuffer(GetYRP(replays[^1])));
PushCollection(collections); PushCollection(collections);
} }
else else
{ {
var replays = GetYRPBuffer(fileName);
if (replays.Count == 0)
OcgCore.CurrentReplayUseYRP2 = true;
OcgCore.CurrentReplayUseYRP2 = GetYRP(replays[^1]).IsNew();
var collection = TcpHelper.ReadPackagesInRecord(fileName); var collection = TcpHelper.ReadPackagesInRecord(fileName);
PushCollection(collection); PushCollection(collection);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment