Commit f379e16a authored by handsomekiwi's avatar handsomekiwi Committed by mercury233

update LightswornShaddoldinosour and ChainBurn deck (#43)

parent 3f231833
...@@ -353,8 +353,13 @@ namespace WindBot.Game.AI.Decks ...@@ -353,8 +353,13 @@ namespace WindBot.Game.AI.Decks
if (HasAccuulatedFortune>0) OjamaTrioused_draw = true; if (HasAccuulatedFortune>0) OjamaTrioused_draw = true;
} }
expected_blood = (Enemy.GetMonsterCount() * 500 * just_count + Enemy.GetFieldHandCount() * 200 * barrel_count + Enemy.GetFieldCount() * 300 * blast_count); expected_blood = (Enemy.GetMonsterCount() * 500 * just_count + Enemy.GetFieldHandCount() * 200 * barrel_count + Enemy.GetFieldCount() * 300 * blast_count);
//if (Enemy.LifePoints <= expected_blood && Duel.Player == 1) one_turn_kill = true; if (Enemy.LifePoints <= expected_blood && Duel.Player == 1)
{
Logger.DebugWriteLine(" one_turn_kill");
one_turn_kill = true;
}
expected_blood = 0;
if (greed_count >= 2) greed_count = 1; if (greed_count >= 2) greed_count = 1;
if (blast_count >= 2) blast_count = 1; if (blast_count >= 2) blast_count = 1;
if (just_count >= 2) just_count = 1; if (just_count >= 2) just_count = 1;
...@@ -370,8 +375,12 @@ namespace WindBot.Game.AI.Decks ...@@ -370,8 +375,12 @@ namespace WindBot.Game.AI.Decks
//if (currentchain >= 3 && Duel.Player == 1) drawfirst = true; //if (currentchain >= 3 && Duel.Player == 1) drawfirst = true;
currentchain = Duel.CurrentChain.Count+ blast_count + just_count+barrel_count; currentchain = Duel.CurrentChain.Count+ blast_count + just_count+barrel_count;
expected_blood = (Enemy.GetMonsterCount() * 500 * just_count + Enemy.GetFieldHandCount() * 200 * barrel_count + Enemy.GetFieldCount() * 300 * blast_count+(currentchain+1)*400); expected_blood = (Enemy.GetMonsterCount() * 500 * just_count + Enemy.GetFieldHandCount() * 200 * barrel_count + Enemy.GetFieldCount() * 300 * blast_count+(currentchain+1)*400);
//if (Enemy.LifePoints <= expected_blood && Duel.Player==1) one_turn_kill_1 = true;
/*if (!one_turn_kill && Enemy.LifePoints <= expected_blood && Duel.Player == 1)
{
Logger.DebugWriteLine(" one_turn_kill_1");
one_turn_kill_1 = true;
}*/
} }
...@@ -410,8 +419,7 @@ namespace WindBot.Game.AI.Decks ...@@ -410,8 +419,7 @@ namespace WindBot.Game.AI.Decks
private bool AbouluteKingBackJackeff() private bool AbouluteKingBackJackeff()
{ {
if (ActivateDescription == -1) if (ActivateDescription == -1)
{ {
AI.SelectCard(AbouluteKingBackJack_List_1()); AI.SelectCard(AbouluteKingBackJack_List_1());
AI.SelectNextCard(AbouluteKingBackJack_List_2()); AI.SelectNextCard(AbouluteKingBackJack_List_2());
} }
...@@ -441,7 +449,7 @@ namespace WindBot.Game.AI.Decks ...@@ -441,7 +449,7 @@ namespace WindBot.Game.AI.Decks
private bool ThreateningRoareff() private bool ThreateningRoareff()
{ {
if (drawfirst) return true; if (drawfirst) return true;
if (must_chain()) return DefaultUniqueTrap(); if (DefaultOnBecomeTarget()) return DefaultUniqueTrap();
if (prevent_used || Duel.Phase != DuelPhase.BattleStart) return false; if (prevent_used || Duel.Phase != DuelPhase.BattleStart) return false;
prevent_used = true; prevent_used = true;
return DefaultUniqueTrap(); return DefaultUniqueTrap();
...@@ -459,7 +467,7 @@ namespace WindBot.Game.AI.Decks ...@@ -459,7 +467,7 @@ namespace WindBot.Game.AI.Decks
Linkuribohused = false; Linkuribohused = false;
return true; return true;
} }
if (must_chain()) if (DefaultOnBecomeTarget())
{ {
Linkuribohused = false; Linkuribohused = false;
return DefaultUniqueTrap(); return DefaultUniqueTrap();
...@@ -510,7 +518,7 @@ namespace WindBot.Game.AI.Decks ...@@ -510,7 +518,7 @@ namespace WindBot.Game.AI.Decks
} }
bool Demiseused = AI.Utils.ChainContainsCard(CardId.CardOfDemise); bool Demiseused = AI.Utils.ChainContainsCard(CardId.CardOfDemise);
if (drawfirst) return DefaultUniqueTrap(); if (drawfirst) return DefaultUniqueTrap();
if (must_chain() && count > 1) return true; if (DefaultOnBecomeTarget() && count > 1) return true;
if (Demiseused) return false; if (Demiseused) return false;
if (count > 1) return true; if (count > 1) return true;
if (Bot.LifePoints <= 2000) return true; if (Bot.LifePoints <= 2000) return true;
...@@ -522,7 +530,7 @@ namespace WindBot.Game.AI.Decks ...@@ -522,7 +530,7 @@ namespace WindBot.Game.AI.Decks
if (drawfirst) return DefaultUniqueTrap(); if (drawfirst) return DefaultUniqueTrap();
if (one_turn_kill_1) return DefaultUniqueTrap(); if (one_turn_kill_1) return DefaultUniqueTrap();
if (one_turn_kill) return DefaultUniqueTrap(); if (one_turn_kill) return DefaultUniqueTrap();
if (must_chain()) return true; if (DefaultOnBecomeTarget()) return true;
int count = Enemy.GetFieldHandCount(); int count = Enemy.GetFieldHandCount();
if (Enemy.LifePoints < count * 200) return true; if (Enemy.LifePoints < count * 200) return true;
if (count >= 8) return true; if (count >= 8) return true;
...@@ -533,7 +541,7 @@ namespace WindBot.Game.AI.Decks ...@@ -533,7 +541,7 @@ namespace WindBot.Game.AI.Decks
if (drawfirst) return DefaultUniqueTrap(); if (drawfirst) return DefaultUniqueTrap();
if (one_turn_kill_1) return DefaultUniqueTrap(); if (one_turn_kill_1) return DefaultUniqueTrap();
if (one_turn_kill) return DefaultUniqueTrap(); if (one_turn_kill) return DefaultUniqueTrap();
if (must_chain()) return true; if (DefaultOnBecomeTarget()) return true;
int count = Enemy.GetFieldCount(); int count = Enemy.GetFieldCount();
if (Enemy.LifePoints < count * 300) return true; if (Enemy.LifePoints < count * 300) return true;
if (count >= 5) return true; if (count >= 5) return true;
...@@ -551,7 +559,7 @@ namespace WindBot.Game.AI.Decks ...@@ -551,7 +559,7 @@ namespace WindBot.Game.AI.Decks
if (drawfirst) return DefaultUniqueTrap(); if (drawfirst) return DefaultUniqueTrap();
if (one_turn_kill_1) return DefaultUniqueTrap(); if (one_turn_kill_1) return DefaultUniqueTrap();
if (one_turn_kill) return DefaultUniqueTrap(); if (one_turn_kill) return DefaultUniqueTrap();
if (must_chain()) return true; if (DefaultOnBecomeTarget()) return true;
int count = Enemy.GetMonsterCount(); int count = Enemy.GetMonsterCount();
if (Enemy.LifePoints <= count * 500) return true; if (Enemy.LifePoints <= count * 500) return true;
if (Bot.HasInSpellZone(CardId.OjamaTrio) && count <= 2 && count >= 1) if (Bot.HasInSpellZone(CardId.OjamaTrio) && count <= 2 && count >= 1)
...@@ -566,7 +574,7 @@ namespace WindBot.Game.AI.Decks ...@@ -566,7 +574,7 @@ namespace WindBot.Game.AI.Decks
{ {
if (drawfirst) return true; if (drawfirst) return true;
if (must_chain()) return true; if (DefaultOnBecomeTarget()) return true;
int chain = Duel.CurrentChain.Count; int chain = Duel.CurrentChain.Count;
if (strike_count >= 2 && chain >= 2) return true; if (strike_count >= 2 && chain >= 2) return true;
if (Enemy.LifePoints <= (chain + 1) * 400) return true; if (Enemy.LifePoints <= (chain + 1) * 400) return true;
...@@ -576,7 +584,7 @@ namespace WindBot.Game.AI.Decks ...@@ -576,7 +584,7 @@ namespace WindBot.Game.AI.Decks
private bool BalanceOfJudgmenteff() private bool BalanceOfJudgmenteff()
{ {
if (must_chain()) return true; if (DefaultOnBecomeTarget()) return true;
int count = (Enemy.GetFieldCount() - Bot.GetFieldHandCount()); int count = (Enemy.GetFieldCount() - Bot.GetFieldHandCount());
if ( count>= 2)return true; if ( count>= 2)return true;
return false; return false;
...@@ -628,7 +636,10 @@ namespace WindBot.Game.AI.Decks ...@@ -628,7 +636,10 @@ namespace WindBot.Game.AI.Decks
newlist.Add(newmonster); newlist.Add(newmonster);
} }
if (!Linkuribohused) return false; if (!Linkuribohused) return false;
if (Enemy.BattlingMonster.Attack > 1800 && Bot.HasInSpellZone(CardId.MagicCylinder)) return false; if(Enemy.BattlingMonster!=null)
{
if (Enemy.BattlingMonster.Attack > 1800 && Bot.HasInSpellZone(CardId.MagicCylinder)) return false;
}
if (GetTotalATK(newlist) >= 3000 && Bot.HasInSpellZone(CardId.BlazingMirrorForce)) return false; if (GetTotalATK(newlist) >= 3000 && Bot.HasInSpellZone(CardId.BlazingMirrorForce)) return false;
if (AI.Utils.GetLastChainCard() == null) return true; if (AI.Utils.GetLastChainCard() == null) return true;
if (AI.Utils.GetLastChainCard().Id == CardId.Linkuriboh)return false; if (AI.Utils.GetLastChainCard().Id == CardId.Linkuriboh)return false;
......
...@@ -24,6 +24,7 @@ namespace WindBot.Game.AI ...@@ -24,6 +24,7 @@ namespace WindBot.Game.AI
public const int DupeFrog = 46239604; public const int DupeFrog = 46239604;
public const int MaraudingCaptain = 2460565; public const int MaraudingCaptain = 2460565;
public const int HarpiesFeatherDuster = 18144506;
public const int MysticalSpaceTyphoon = 5318639; public const int MysticalSpaceTyphoon = 5318639;
public const int CosmicCyclone = 8267140; public const int CosmicCyclone = 8267140;
public const int ChickenGame = 67616300; public const int ChickenGame = 67616300;
...@@ -452,6 +453,15 @@ namespace WindBot.Game.AI ...@@ -452,6 +453,15 @@ namespace WindBot.Game.AI
return false; return false;
} }
/// <summary>
/// if spell/trap is the target or enermy activate HarpiesFeatherDuster
/// </summary>
protected bool DefaultOnBecomeTarget()
{
if (AI.Utils.IsChainTarget(Card)) return true;
if (Enemy.HasInSpellZone(_CardId.HarpiesFeatherDuster, true)) return true;
return false;
}
/// <summary> /// <summary>
/// Chain enemy activation or summon. /// Chain enemy activation or summon.
/// </summary> /// </summary>
......
...@@ -59,13 +59,19 @@ ...@@ -59,13 +59,19 @@
NaturiaExterio = 99916754, NaturiaExterio = 99916754,
TheLastWarriorfromAnotherPlanet = 86099788, TheLastWarriorfromAnotherPlanet = 86099788,
ThousandEyesRestrict = 63519819, ThousandEyesRestrict = 63519819,
ElShaddollWinda = 94977269,
MaskedHERODarkLaw = 58481572, MaskedHERODarkLaw = 58481572,
NaturiaBeast = 33198837, NaturiaBeast = 33198837,
NaturiaBarkion = 2956282, NaturiaBarkion = 2956282,
EvilswarmOphion = 91279700, EvilswarmOphion = 91279700,
MermailAbyssgaios = 74371660, MermailAbyssgaios = 74371660,
AbyssDweller = 21044178, AbyssDweller = 21044178,
ZoodiacDrident = 48905153 ZoodiacDrident = 48905153,
InvokedMechaba = 75286621,
ElShaddollShekhinaga = 74822425,
ElShaddollConstruct = 20366274,
ElShaddollGrysra = 48424886,
ElShaddollWinda = 94977269,
UltimateConductorTytanno = 18940556,
OvertexCoatls = 41782653
} }
} }
...@@ -270,8 +270,8 @@ namespace WindBot.Game ...@@ -270,8 +270,8 @@ namespace WindBot.Game
{ {
int player = packet.ReadInt16(); int player = packet.ReadInt16();
string message = packet.ReadUnicode(256); string message = packet.ReadUnicode(256);
string myName = _room.Position == 0 ? _room.Names[0] : _room.Names[1]; string myName = (player != 0) ? _room.Names[1] : _room.Names[0];
string otherName = _room.Position == 0 ? _room.Names[1] : _room.Names[0]; string otherName = (player == 0) ? _room.Names[1] : _room.Names[0];
if (player < 4) if (player < 4)
Logger.DebugWriteLine(otherName + " say to " + myName + ": " + message); Logger.DebugWriteLine(otherName + " say to " + myName + ": " + message);
} }
......
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