Commit 7f414eef authored by SherryChaos's avatar SherryChaos

fix replay bug

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