Commit 52f561fc authored by wind2009's avatar wind2009 Committed by GitHub

Fix null pointer (#183)

parent 4769ca26
......@@ -1713,39 +1713,42 @@ namespace WindBot.Game.AI.Decks
enemySetThisTurn.Add(card);
}
}
if (previousControler == 0)
{
if (previousLocation == (int)CardLocation.MonsterZone && currentLocation != (int)CardLocation.MonsterZone)
{
if (summonThisTurn.Contains(card)) summonThisTurn.Remove(card);
if (summonInChainList.Contains(card)) summonInChainList.Remove(card);
}
if (previousLocation == (int)CardLocation.SpellZone && currentLocation != (int)CardLocation.SpellZone)
{
if (setTrapThisTurn.Contains(card)) setTrapThisTurn.Remove(card);
}
}
if (currentControler == 0)
if (card != null)
{
ClientCard currentSolvingChain = Duel.GetCurrentSolvingChainCard();
if (currentLocation == (int)CardLocation.SpellZone && (currentSolvingChain == null || !currentSolvingChain.IsCode(CardId.AriasTheLabrynthButler))
&& card != null && (card.HasType(CardType.Trap) || card.IsCode(CardId.WelcomeLabrynth, CardId.BigWelcomeLabrynth))
)
if (previousControler == 0)
{
Logger.DebugWriteLine("[setTrapThisTurn]set " + card.Name ?? "UnknowCard");
setTrapThisTurn.Add(card);
}
if (currentLocation == (int)CardLocation.MonsterZone)
{
summonThisTurn.Add(card);
if (currentSolvingChain != null) summonInChainList.Add(card);
if (previousLocation == (int)CardLocation.MonsterZone && currentLocation != (int)CardLocation.MonsterZone)
{
if (summonThisTurn.Contains(card)) summonThisTurn.Remove(card);
if (summonInChainList.Contains(card)) summonInChainList.Remove(card);
}
if (previousLocation == (int)CardLocation.SpellZone && currentLocation != (int)CardLocation.SpellZone)
{
if (setTrapThisTurn.Contains(card)) setTrapThisTurn.Remove(card);
}
}
if (previousLocation == (int)CardLocation.Grave && currentLocation == (int)CardLocation.Removed)
if (currentControler == 0)
{
if (currentSolvingChain != null && currentSolvingChain.Controller == 1 && currentSolvingChain.IsCode(_CardId.CalledByTheGrave))
ClientCard currentSolvingChain = Duel.GetCurrentSolvingChainCard();
if (currentLocation == (int)CardLocation.SpellZone && (currentSolvingChain == null || !currentSolvingChain.IsCode(CardId.AriasTheLabrynthButler))
&& (card.HasType(CardType.Trap) || card.IsCode(CardId.WelcomeLabrynth, CardId.BigWelcomeLabrynth))
)
{
Logger.DebugWriteLine("[setTrapThisTurn]set " + card.Name ?? "UnknowCard");
setTrapThisTurn.Add(card);
}
if (currentLocation == (int)CardLocation.MonsterZone)
{
Logger.DebugWriteLine("*** " + (card.Name ?? "UnknowCard") + " is banished by CallByTheGrave");
calledbytheGraveCount[card.Id] = 2;
summonThisTurn.Add(card);
if (currentSolvingChain != null) summonInChainList.Add(card);
}
if (previousLocation == (int)CardLocation.Grave && currentLocation == (int)CardLocation.Removed)
{
if (currentSolvingChain != null && currentSolvingChain.Controller == 1 && currentSolvingChain.IsCode(_CardId.CalledByTheGrave))
{
Logger.DebugWriteLine("*** " + (card.Name ?? "UnknowCard") + " is banished by CallByTheGrave");
calledbytheGraveCount[card.Id] = 2;
}
}
}
}
......
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