Commit 20aedee9 authored by mercury233's avatar mercury233

fix GameMessage.SelectChain

parent 18430657
Pipeline #38163 failed with stage
in 49 minutes and 28 seconds
...@@ -30,6 +30,7 @@ public class Effect ...@@ -30,6 +30,7 @@ public class Effect
public string desc; public string desc;
public int flag; public int flag;
public int ptr; public int ptr;
public bool forced = false;
} }
public class gameCard : OCGobject public class gameCard : OCGobject
...@@ -1431,14 +1432,14 @@ public class gameCard : OCGobject ...@@ -1431,14 +1432,14 @@ public class gameCard : OCGobject
{ {
gameObject_face.GetComponent<Renderer>().material.mainTexture = await GameTextureManager.GetCardPicture(data.Id, gameObject_face.GetComponent<Renderer>().material.mainTexture = await GameTextureManager.GetCardPicture(data.Id,
p.controller == 0 ? GameTextureManager.myBack : GameTextureManager.opBack); p.controller == 0 ? GameTextureManager.myBack : GameTextureManager.opBack);
if (game_object_verticle_drawing) if (game_object_verticle_drawing)
{ {
if (Program.getVerticalTransparency() > 0.5f) if (Program.getVerticalTransparency() > 0.5f)
game_object_verticle_drawing.GetComponent<Renderer>().material.mainTexture =
await GameTextureManager.GetCardCloseUp(data.Id);
else
game_object_verticle_drawing.GetComponent<Renderer>().material.mainTexture = game_object_verticle_drawing.GetComponent<Renderer>().material.mainTexture =
await GameTextureManager.GetCardCloseUp(data.Id); GameTextureManager.N;
else
game_object_verticle_drawing.GetComponent<Renderer>().material.mainTexture =
GameTextureManager.N;
} }
} }
......
...@@ -59,6 +59,7 @@ public class Ocgcore : ServantWithCardDescription ...@@ -59,6 +59,7 @@ public class Ocgcore : ServantWithCardDescription
private arrow Arrow; private arrow Arrow;
private autoForceChainHandlerType autoForceChainHandler = autoForceChainHandlerType.manDoAll; private autoForceChainHandlerType autoForceChainHandler = autoForceChainHandlerType.manDoAll;
private List<gameCard> chainCards = new List<gameCard>();
private float camera_max = -17.5f; private float camera_max = -17.5f;
...@@ -3118,12 +3119,13 @@ public class Ocgcore : ServantWithCardDescription ...@@ -3118,12 +3119,13 @@ public class Ocgcore : ServantWithCardDescription
int spcount = r.ReadByte(); int spcount = r.ReadByte();
var hint0 = r.ReadInt32(); var hint0 = r.ReadInt32();
var hint1 = r.ReadInt32(); var hint1 = r.ReadInt32();
var chainCards = new List<gameCard>(); chainCards = new List<gameCard>();
var forced = 0; var forceCount = 0;
for (var i = 0; i < count; i++) for (var i = 0; i < count; i++)
{ {
var flag = r.ReadChar(); var flag = r.ReadChar();
forced += r.ReadByte(); var forced = r.ReadByte();
forceCount += forced;
code = r.ReadInt32() % 1000000000; code = r.ReadInt32() % 1000000000;
gps = r.ReadGPS(); gps = r.ReadGPS();
desc = GameStringManager.get(r.ReadInt32()); desc = GameStringManager.get(r.ReadInt32());
...@@ -3137,13 +3139,14 @@ public class Ocgcore : ServantWithCardDescription ...@@ -3137,13 +3139,14 @@ public class Ocgcore : ServantWithCardDescription
eff.flag = flag; eff.flag = flag;
eff.ptr = i; eff.ptr = i;
eff.desc = desc; eff.desc = desc;
eff.forced = forced > 0;
card.effects.Add(eff); card.effects.Add(eff);
} }
} }
var chain_condition = gameInfo.get_condition(); var chain_condition = gameInfo.get_condition();
var handle_flag = 0; var handle_flag = 0;
if (forced == 0) // TODO: 按每张卡的forced处理 if (forceCount == 0)
{ {
//无强制发动的卡 //无强制发动的卡
if (spcount == 0) if (spcount == 0)
...@@ -3312,8 +3315,21 @@ public class Ocgcore : ServantWithCardDescription ...@@ -3312,8 +3315,21 @@ public class Ocgcore : ServantWithCardDescription
if (handle_flag == 4) if (handle_flag == 4)
{ {
//有一张强制发动的卡 回应-- //有一张强制发动的卡 回应--
var answer = -1;
foreach (var ccard in chainCards)
{
foreach (var effect in ccard.effects)
{
if (effect.forced)
{
answer = effect.ptr;
break;
}
}
if (answer >= 0) break;
}
binaryMaster = new BinaryMaster(); binaryMaster = new BinaryMaster();
binaryMaster.writer.Write(chainCards[0].effects[0].ptr); binaryMaster.writer.Write(answer >= 0 ? answer : 0);
sendReturn(binaryMaster.get()); sendReturn(binaryMaster.get());
} }
...@@ -7460,8 +7476,21 @@ public class Ocgcore : ServantWithCardDescription ...@@ -7460,8 +7476,21 @@ public class Ocgcore : ServantWithCardDescription
autoForceChainHandler = autoForceChainHandlerType.autoHandleAll; autoForceChainHandler = autoForceChainHandlerType.autoHandleAll;
try try
{ {
var answer = -1;
foreach (var card in chainCards)
{
foreach (var effect in card.effects)
{
if (effect.forced)
{
answer = effect.ptr;
break;
}
}
if (answer >= 0) break;
}
binaryMaster = new BinaryMaster(); binaryMaster = new BinaryMaster();
binaryMaster.writer.Write(0); binaryMaster.writer.Write(answer >= 0 ? answer : 0);
sendReturn(binaryMaster.get()); sendReturn(binaryMaster.get());
} }
catch (Exception e) catch (Exception e)
......
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