diff --git a/src/DefaultRoutine.cs b/src/DefaultRoutine.cs index 3d00667a..11c5f35d 100644 --- a/src/DefaultRoutine.cs +++ b/src/DefaultRoutine.cs @@ -780,11 +780,27 @@ public async Task OurTurnLogic() case CardDB.cardName.cthun: lastChance = true; break; case CardDB.cardName.nzoththecorruptor: lastChance = true; break; case CardDB.cardName.yoggsaronhopesend: lastChance = true; break; + case CardDB.cardName.shudderwock: lastChance = true; break; + case CardDB.cardName.stargazerluna: lastChance = true; break;//观星者露娜 + case CardDB.cardName.sirfinleymrrgglton: lastChance = true; break; case CardDB.cardName.ragnarosthefirelord: if (lastChancePl.enemyHero.HealthPoints < 9) lastChance = true; break; case CardDB.cardName.barongeddon: if (lastChancePl.enemyHero.HealthPoints < 3) lastChance = true; break; } } + foreach (CardDB.cardIDEnum secretID in lastChancePl.ownSecretsIDList) + { + switch(secretID) + { + case CardDB.cardIDEnum.EX1_295: lastChance = true; break; + case CardDB.cardIDEnum.EX1_130: lastChance = true; break; + case CardDB.cardIDEnum.ULD_239: lastChance = true; break; + + + } + } + if (lastChancePl.ownHeroAblility.card.cardIDenum == CardDB.cardIDEnum.GIL_504h)lastChance = true; + } if (lastChance) doConcede = false; } @@ -1097,6 +1113,8 @@ private int makeChoice() case GAME_TAG.DISCOVER: switch (ai.bestmove.card.card.name) { + case CardDB.cardName.anewchallenger://新人登场 + case CardDB.cardName.eternalservitude: case CardDB.cardName.freefromamber: Minion m = tmpPlf.createNewMinion(discoverCards[i], tmpPlf.ownMinions.Count, true); diff --git a/src/ai/Playfield.cs b/src/ai/Playfield.cs index 613ca562..01a33e6d 100644 --- a/src/ai/Playfield.cs +++ b/src/ai/Playfield.cs @@ -3550,6 +3550,36 @@ public void attackWithWeapon(Minion hero, Minion target, int penality) hero.updateReadyness(); if (weapon.name == CardDB.cardName.foolsbane && !hero.frozen) hero.Ready = true; + foreach (Minion m in (own ? this.ownMinions : this.enemyMinions)) + { + + + if (m.silenced) continue; + switch(m.name) + { + + case CardDB.cardName.henchclanthug://荆棘帮暴徒 + + + this.minionGetBuffed(m, 1, 1); + break; + + + + + case CardDB.cardName.sharkfinfan://鲨鳍后援 + + //pos = this.ownMinions.Count; + + CardDB.Card kid = CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.TRL_507t);//小海盗 + CallKid(kid, (own ? this.ownMinions.Count : this.enemyMinions.Count), own, false); + break; + + + } + + } + //heal whether truesilverchampion equipped switch (weapon.name) { @@ -6301,7 +6331,7 @@ public void minionGetArmor(Minion m, int armor) this.triggerAHeroGotArmor(m.own); } - public void minionReturnToHand(Minion m, bool own, int manachange) + public void minionReturnToHand(Minion m, bool own, int manachange , int adatt=0, int adHp =0) { List temp = (m.own) ? this.ownMinions : this.enemyMinions; m.handcard.card.CardSimulation.onAuraEnds(this, m); @@ -6347,6 +6377,20 @@ public void minionTransform(Minion m, CardDB.Card c) this.evaluatePenality -= Ai.Instance.botBase.getEnemyMinionValue(m, this) - 1; } + else if(m.own) + { + int minionvalue = m.HealthPoints * 2 + m.Attack; + if (m.divineshild) minionvalue = minionvalue * 3 / 2; + minionvalue += prozis.penman.getValueOfUsefulNeedKeepPriority(m.handcard.card.name); + + int cvalue = c.Health * 2 + c.Attack; + if (c.Shield) cvalue = cvalue * 3 / 2; + cvalue += prozis.penman.getValueOfUsefulNeedKeepPriority(c.name); + + this.evaluatePenality+= (minionvalue-cvalue-2); + + + } if (m.taunt) { if (m.own) this.anzOwnTaunt--; @@ -6472,7 +6516,6 @@ public void minionGetControlled(Minion m, bool newOwner, bool canAttack, bool fo } - public void minionGetWindfurry(Minion m) { if (m.windfury) return; @@ -6491,6 +6534,46 @@ public void minionLostCharge(Minion m) m.charge--; m.updateReadyness(); } + public void minionGetTaunt(Minion m) + { + if (!m.taunt) + { + m.taunt = true; + if(m.own) + { + int tauntvalue = 0; + int mttauntvalue =0; + if(m.Attack > 1) tauntvalue = m.HealthPoints * 2 + m.Attack; + else tauntvalue = m.HealthPoints + m.Attack; + tauntvalue -=prozis.penman.getValueOfUsefulNeedKeepPriority(m.name); + if(m.divineshild) tauntvalue *= 3/2; + + foreach (Minion mt in this.ownMinions) + { + int mv =0; + if(mt.Attack > 1) mv = mt.HealthPoints * 2 + mt.Attack; + else mv = mt.HealthPoints + mt.Attack; + mv -= prozis.penman.getValueOfUsefulNeedKeepPriority(mt.name); + if(mt.divineshild) mv *= 3/2; + if(mttauntvalueBattlecry: Return a friendly minion to your hand and give it +2/+2." + + + public override void getBattlecryEffect(Playfield p, Minion m, Minion target, int choice) + { + if (target != null) p.minionReturnToHand(target, target.own, 0,2,2); + + } + } +} \ No newline at end of file