Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions src/DefaultRoutine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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);
Expand Down
87 changes: 85 additions & 2 deletions src/ai/Playfield.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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<Minion> temp = (m.own) ? this.ownMinions : this.enemyMinions;
m.handcard.card.CardSimulation.onAuraEnds(this, m);
Expand Down Expand Up @@ -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--;
Expand Down Expand Up @@ -6472,7 +6516,6 @@ public void minionGetControlled(Minion m, bool newOwner, bool canAttack, bool fo
}



public void minionGetWindfurry(Minion m)
{
if (m.windfury) return;
Expand All @@ -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(mttauntvalue<mv)mttauntvalue = mv;



}
this.evaluatePenality -= ( tauntvalue- mttauntvalue )/2;

}



if (m.own) this.anzOwnTaunt++;
else this.anzEnemyTaunt++;
}


m.updateReadyness();
//
}



Expand Down
19 changes: 19 additions & 0 deletions src/cards/04Expansion/010TRL/Sim_TRL_059.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace HREngine.Bots
{
class Sim_TRL_059 : SimTemplate //*Bog Slosher
//沼泽游荡者
{
//<b>Battlecry:</b> 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);

}
}
}