本文整理汇总了C#中HREngine.Bots.Playfield.attackWithMinion方法的典型用法代码示例。如果您正苦于以下问题:C# Playfield.attackWithMinion方法的具体用法?C# Playfield.attackWithMinion怎么用?C# Playfield.attackWithMinion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HREngine.Bots.Playfield
的用法示例。
在下文中一共展示了Playfield.attackWithMinion方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: simmulateWholeTurn
public void simmulateWholeTurn()
{
help.logg("simulate best board");
//this.bestboard.printActions();
Playfield tempbestboard = new Playfield();
if (bestmove != null) // save the guessed move, so we doesnt need to recalc!
{
bestmove.print();
if (bestmove.cardplay)
{
help.logg("card");
//pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0, bestplace, cardplayPenality);
Handmanager.Handcard hc = tempbestboard.owncards.Find(x => x.entity == bestmove.cardEntitiy);
if (bestmove.owntarget >= 0 && bestmove.enemytarget >= 0 && bestmove.enemytarget <= 9 && bestmove.owntarget < bestmove.enemytarget)
{
tempbestboard.playCard(bestmove.handcard, hc.position - 1, hc.entity, bestmove.enemytarget - 1, bestmove.enemyEntitiy, bestmove.druidchoice, bestmove.owntarget, 0);
}
else
{
tempbestboard.playCard(bestmove.handcard, hc.position - 1, hc.entity, bestmove.enemytarget, bestmove.enemyEntitiy, bestmove.druidchoice, bestmove.owntarget, 0);
}
}
if (bestmove.minionplay)
{
help.logg("min");
//.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
Minion mm = tempbestboard.ownMinions.Find(x => x.entitiyID == bestmove.ownEntitiy);
tempbestboard.attackWithMinion(mm, bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
if (bestmove.heroattack)
{
help.logg("hero");
tempbestboard.attackWithWeapon(bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
if (bestmove.useability)
{
help.logg("abi");
//.activateAbility(p.ownHeroAblility, trgt.target, trgt.targetEntity, abilityPenality);
tempbestboard.activateAbility(this.nextMoveGuess.ownHeroAblility, bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
}
else
{
tempbestboard.mana = -1;
}
help.logg("-------------");
tempbestboard.printBoard();
foreach (Action bestmovee in bestboard.playactions)
{
help.logg("stepp");
if (bestmovee != null) // save the guessed move, so we doesnt need to recalc!
{
bestmovee.print();
if (bestmovee.cardplay)
{
help.logg("card");
//pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0, bestplace, cardplayPenality);
Handmanager.Handcard hc = tempbestboard.owncards.Find(x => x.entity == bestmovee.cardEntitiy);
if (bestmovee.owntarget >= 0 && bestmovee.enemytarget >= 0 && bestmovee.enemytarget <= 9 && bestmovee.owntarget < bestmovee.enemytarget)
{
tempbestboard.playCard(bestmovee.handcard, hc.position - 1, hc.entity, bestmovee.enemytarget - 1, bestmovee.enemyEntitiy, bestmovee.druidchoice, bestmovee.owntarget, 0);
}
else
{
tempbestboard.playCard(bestmovee.handcard, hc.position - 1, hc.entity, bestmovee.enemytarget, bestmovee.enemyEntitiy, bestmovee.druidchoice, bestmovee.owntarget, 0);
}
}
if (bestmovee.minionplay)
{
help.logg("min");
//.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
Minion mm = tempbestboard.ownMinions.Find(x => x.entitiyID == bestmovee.ownEntitiy);
tempbestboard.attackWithMinion(mm, bestmovee.enemytarget, bestmovee.enemyEntitiy, 0);
}
if (bestmovee.heroattack)
{
help.logg("hero");
tempbestboard.attackWithWeapon(bestmovee.enemytarget, bestmovee.enemyEntitiy, 0);
}
if (bestmovee.useability)
{
help.logg("abi");
//.activateAbility(p.ownHeroAblility, trgt.target, trgt.targetEntity, abilityPenality);
tempbestboard.activateAbility(this.nextMoveGuess.ownHeroAblility, bestmovee.enemytarget, bestmovee.enemyEntitiy, 0);
}
}
//.........这里部分代码省略.........
示例2: simmulateWholeTurnandPrint
public void simmulateWholeTurnandPrint()
{
help.ErrorLog("");
help.ErrorLog("what would silverfish do?---------");
help.ErrorLog("");
//this.bestboard.printActions();
Playfield tempbestboard = new Playfield();
if (bestmove != null) // save the guessed move, so we doesnt need to recalc!
{
tempbestboard.printActionforDummies(bestmove);
if (bestmove.cardplay)
{
//pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0, bestplace, cardplayPenality);
Handmanager.Handcard hc = tempbestboard.owncards.Find(x => x.entity == bestmove.cardEntitiy);
if (bestmove.owntarget >= 0 && bestmove.enemytarget >= 0 && bestmove.enemytarget <= 9 && bestmove.owntarget < bestmove.enemytarget)
{
tempbestboard.playCard(bestmove.handcard, hc.position - 1, hc.entity, bestmove.enemytarget - 1, bestmove.enemyEntitiy, bestmove.druidchoice, bestmove.owntarget, 0);
}
else
{
tempbestboard.playCard(bestmove.handcard, hc.position - 1, hc.entity, bestmove.enemytarget, bestmove.enemyEntitiy, bestmove.druidchoice, bestmove.owntarget, 0);
}
}
if (bestmove.minionplay)
{
//.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
Minion mm = tempbestboard.ownMinions.Find(x => x.entitiyID == bestmove.ownEntitiy);
tempbestboard.attackWithMinion(mm, bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
if (bestmove.heroattack)
{
tempbestboard.attackWithWeapon(bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
if (bestmove.useability)
{
//.activateAbility(p.ownHeroAblility, trgt.target, trgt.targetEntity, abilityPenality);
tempbestboard.activateAbility(this.nextMoveGuess.ownHeroAblility, bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
}
else
{
tempbestboard.mana = -1;
help.ErrorLog("end turn");
}
foreach (Action bestmovee in bestboard.playactions)
{
tempbestboard.printActionforDummies(bestmovee);
if (bestmovee != null) // save the guessed move, so we doesnt need to recalc!
{
bestmovee.print();
if (bestmovee.cardplay)
{
//pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0, bestplace, cardplayPenality);
Handmanager.Handcard hc = tempbestboard.owncards.Find(x => x.entity == bestmovee.cardEntitiy);
if (bestmovee.owntarget >= 0 && bestmovee.enemytarget >= 0 && bestmovee.enemytarget <= 9 && bestmovee.owntarget < bestmovee.enemytarget)
{
tempbestboard.playCard(bestmovee.handcard, hc.position - 1, hc.entity, bestmovee.enemytarget - 1, bestmovee.enemyEntitiy, bestmovee.druidchoice, bestmovee.owntarget, 0);
}
else
{
tempbestboard.playCard(bestmovee.handcard, hc.position - 1, hc.entity, bestmovee.enemytarget, bestmovee.enemyEntitiy, bestmovee.druidchoice, bestmovee.owntarget, 0);
}
}
if (bestmovee.minionplay)
{
//.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
Minion mm = tempbestboard.ownMinions.Find(x => x.entitiyID == bestmovee.ownEntitiy);
tempbestboard.attackWithMinion(mm, bestmovee.enemytarget, bestmovee.enemyEntitiy, 0);
}
if (bestmovee.heroattack)
{
tempbestboard.attackWithWeapon(bestmovee.enemytarget, bestmovee.enemyEntitiy, 0);
}
if (bestmovee.useability)
{
//.activateAbility(p.ownHeroAblility, trgt.target, trgt.targetEntity, abilityPenality);
tempbestboard.activateAbility(this.nextMoveGuess.ownHeroAblility, bestmovee.enemytarget, bestmovee.enemyEntitiy, 0);
}
}
else
{
tempbestboard.mana = -1;
help.ErrorLog("end turn");
}
}
}
示例3: doallmoves
//.........这里部分代码省略.........
if (trg != null)
{
trgts.Clear();
trgts.Add(trg);
}
else
{
// no enemy hero -> enemy have taunts ->kill the taunts from left to right
if (trgts.Count >= 1)
{
trg = trgts[0];
trgts.Clear();
trgts.Add(trg);
}
}
}
else
{
if (this.useCutingTargets) trgts = this.cutAttackTargets(trgts, p);
}
foreach (targett trgt in trgts)
{
int attackPenality = 0;
if (usePenalityManager)
{
attackPenality = penman.getAttackWithMininonPenality(m, p, trgt.target, isLethalCheck);
if (attackPenality <= 499)
{
Playfield pf = new Playfield(p);
havedonesomething = true;
pf.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
this.posmoves.Add(pf);
}
}
else
{
Playfield pf = new Playfield(p);
havedonesomething = true;
pf.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
this.posmoves.Add(pf);
}
}
if (trgts.Count == 1 && trgts[0].target == 200)//only enemy hero is available als attack
{
break;
}
}
}
// attack with hero
if (p.ownHeroReady)
{
List<targett> trgts = p.getAttackTargets();
havedonesomething = true;
if (isLethalCheck)// only target enemy hero during Lethal check!
{
targett trg = trgts.Find(x => x.target == 200);
if (trg != null)
{
示例4: simmulateWholeTurn
public void simmulateWholeTurn()
{
help.logg("simulate best board");
//this.bestboard.printActions();
Playfield tempbestboard = new Playfield();
if (bestmove != null) // save the guessed move, so we doesnt need to recalc!
{
bestmove.print();
if (bestmove.cardplay)
{
help.logg("card");
//pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0, bestplace, cardplayPenality);
Handmanager.Handcard hc = tempbestboard.owncards.Find(x => x.entity == bestmove.cardEntitiy);
if (bestmove.owntarget >= 0 && bestmove.enemytarget >= 0 && bestmove.enemytarget <= 9 && bestmove.owntarget < bestmove.enemytarget)
{
tempbestboard.playCard(bestmove.handcard, hc.position - 1, hc.entity, bestmove.enemytarget - 1, bestmove.enemyEntitiy, bestmove.druidchoice, bestmove.owntarget, 0);
}
else
{
tempbestboard.playCard(bestmove.handcard, hc.position - 1, hc.entity, bestmove.enemytarget, bestmove.enemyEntitiy, bestmove.druidchoice, bestmove.owntarget, 0);
}
}
if (bestmove.minionplay)
{
help.logg("min");
//.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
Minion mm = tempbestboard.ownMinions.Find(x => x.entitiyID == bestmove.ownEntitiy);
help.logg("min");
tempbestboard.attackWithMinion(mm, bestmove.enemytarget, bestmove.enemyEntitiy, 0);
help.logg("min");
}
if (bestmove.heroattack)
{
help.logg("hero");
tempbestboard.attackWithWeapon(bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
if (bestmove.useability)
{
help.logg("abi");
//.activateAbility(p.ownHeroAblility, trgt.target, trgt.targetEntity, abilityPenality);
tempbestboard.activateAbility(this.nextMoveGuess.ownHeroAblility, bestmove.enemytarget, bestmove.enemyEntitiy, 0);
}
}
else
{
tempbestboard.mana = -1;
}
help.logg("-------------");
help.logg("OwnMinions:");
foreach (Minion m in tempbestboard.ownMinions)
{
help.logg(m.name + " id " + m.id + " zp " + m.zonepos + " " + " e:" + m.entitiyID + " " + " A:" + m.Angr + " H:" + m.Hp + " mH:" + m.maxHp + " rdy:" + m.Ready + " tnt:" + m.taunt + " frz:" + m.frozen + " silenced:" + m.silenced + " divshield:" + m.divineshild + " ptt:" + m.playedThisTurn + " wndfr:" + m.windfury + " natt:" + m.numAttacksThisTurn + " sil:" + m.silenced + " stl:" + m.stealth + " poi:" + m.poisonous + " imm:" + m.immune + " ex:" + m.exhausted + " chrg:" + m.charge);
foreach (Enchantment e in m.enchantments)
{
help.logg(e.CARDID + " " + e.creator + " " + e.controllerOfCreator);
}
}
help.logg("EnemyMinions:");
foreach (Minion m in tempbestboard.enemyMinions)
{
help.logg(m.name + " id " + m.id + " zp " + m.zonepos + " " + " e:" + m.entitiyID + " " + " A:" + m.Angr + " H:" + m.Hp + " mH:" + m.maxHp + " rdy:" + m.Ready + " tnt:" + m.taunt + " frz:" + m.frozen + " silenced:" + m.silenced + " divshield:" + m.divineshild + " wndfr:" + m.windfury + " sil:" + m.silenced + " stl:" + m.stealth + " poi:" + m.poisonous + " imm:" + m.immune + " ex:" + m.exhausted);
foreach (Enchantment e in m.enchantments)
{
help.logg(e.CARDID + " " + e.creator + " " + e.controllerOfCreator);
}
}
foreach (Action bestmovee in bestboard.playactions)
{
help.logg("stepp");
if (bestmovee != null) // save the guessed move, so we doesnt need to recalc!
{
bestmovee.print();
if (bestmovee.cardplay)
{
help.logg("card");
//pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0, bestplace, cardplayPenality);
Handmanager.Handcard hc = tempbestboard.owncards.Find(x => x.entity == bestmovee.cardEntitiy);
if (bestmovee.owntarget >= 0 && bestmovee.enemytarget >= 0 && bestmovee.enemytarget <= 9 && bestmovee.owntarget < bestmovee.enemytarget)
{
tempbestboard.playCard(bestmovee.handcard, hc.position - 1, hc.entity, bestmovee.enemytarget - 1, bestmovee.enemyEntitiy, bestmovee.druidchoice, bestmovee.owntarget, 0);
}
else
{
tempbestboard.playCard(bestmovee.handcard, hc.position - 1, hc.entity, bestmovee.enemytarget, bestmovee.enemyEntitiy, bestmovee.druidchoice, bestmovee.owntarget, 0);
}
}
if (bestmovee.minionplay)
{
help.logg("min");
//.........这里部分代码省略.........
示例5: doallmoves
//.........这里部分代码省略.........
{
trgts.Clear();
trgts.Add(trg);
}
else
{
// no enemy hero -> enemy have taunts ->kill the taunts from left to right
if (trgts.Count >= 1)
{
trg = trgts[0];
trgts.Clear();
trgts.Add(trg);
}
}
}
else
{
if (this.useCutingTargets) trgts = this.cutAttackTargets(trgts, p, true);
}
foreach (targett trgt in trgts)
{
int attackPenality = 0;
if (usePenalityManager)
{
attackPenality = pen.getAttackWithMininonPenality(m, p, trgt.target, isLethalCheck);
if (attackPenality <= 499)
{
Playfield pf = new Playfield(p);
havedonesomething = true;
pf.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
addToPosmoves(pf);
}
}
else
{
Playfield pf = new Playfield(p);
havedonesomething = true;
pf.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
addToPosmoves(pf);
}
}
if ((!m.stealth || isLethalCheck) && p.enemySecretCount == 0 && trgts.Count == 1 && trgts[0].target == 200)//only enemy hero is available als attack
{
break;
}
}
}
// attack with hero
if (p.ownHeroReady)
{
if (this.calculated > this.totalboards) continue;
List<targett> trgts = p.getAttackTargets(true);
havedonesomething = true;
if (isLethalCheck)// only target enemy hero during Lethal check!
{
targett trg = trgts.Find(x => x.target == 200);
示例6: Workthread
//.........这里部分代码省略.........
if (trg != null)
{
trgts.Clear();
trgts.Add(trg);
}
else
{
// no enemy hero -> enemy have taunts ->kill the taunts from left to right
if (trgts.Count >= 1)
{
trg = trgts[0];
trgts.Clear();
trgts.Add(trg);
}
}
}
else
{
if (this.useCutingTargets) trgts = this.cutAttackTargets(trgts, p);
}
foreach (targett trgt in trgts)
{
Playfield pf = new Playfield(p);
int attackPenality = 0;
if (usePenalityManager)
{
attackPenality = penman.getAttackWithMininonPenality(m, pf, trgt.target);
if (attackPenality <= 499)
{
havedonesomething = true;
pf.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
retval.newStuff.Add(pf);
}
}
else
{
havedonesomething = true;
pf.attackWithMinion(m, trgt.target, trgt.targetEntity, attackPenality);
retval.newStuff.Add(pf);
}
}
if (trgts.Count == 1 && trgts[0].target == 200)//only enemy hero is available als attack
{
break;
}
}
}
// attack with hero
if (p.ownHeroReady)
{
List<targett> trgts = p.getAttackTargets();
havedonesomething = true;
if (isLethalCheck)// only target enemy hero during Lethal check!
{
targett trg = trgts.Find(x => x.target == 200);
if (trg != null)
{
trgts.Clear();
示例7: doallmoves
private void doallmoves(bool test, Bot botBase)
{
bool havedonesomething = true;
List<Playfield> temp = new List<Playfield>();
int deep = 0;
while (havedonesomething)
{
help.logg("ailoop");
GC.Collect();
temp.Clear();
temp.AddRange(this.posmoves);
havedonesomething = false;
Playfield bestold = null;
int bestoldval = -20000000;
foreach (Playfield p in temp)
{
if (p.complete)
{
continue;
}
//take a card and play it
List<string> playedcards = new List<string>();
foreach (Handmanager.Handcard hc in p.owncards)
{
CardDB.Card c = hc.card;
//help.logg("try play crd" + c.name + " " + c.getManaCost(p) + " " + c.canplayCard(p));
if (playedcards.Contains(c.name)) continue; // dont play the same card in one loop
playedcards.Add(c.name);
if (c.choice)
{
if (doAllChoices(c, p, hc))
{
havedonesomething = true;
}
}
else
{
int bestplace = p.getBestPlace(c);
if (c.canplayCard(p))
{
havedonesomething = true;
List<targett> trgts = c.getTargetsForCard(p);
if (trgts.Count == 0)
{
Playfield pf = new Playfield(p);
pf.playCard(c, hc.position - 1, hc.entity, -1, -1, 0,bestplace);
this.posmoves.Add(pf);
}
else
{
foreach (targett trgt in trgts)
{
Playfield pf = new Playfield(p);
pf.playCard(c, hc.position - 1, hc.entity, trgt.target, trgt.targetEntity, 0,bestplace);
this.posmoves.Add(pf);
}
}
}
}
}
//attack with a minion
foreach (Minion m in p.ownMinions)
{
if (m.Ready && m.Angr >= 1 && !m.frozen)
{
List<targett> trgts = p.getAttackTargets();
havedonesomething = true;
foreach (targett trgt in trgts)
{
Playfield pf = new Playfield(p);
pf.attackWithMinion(m, trgt.target, trgt.targetEntity);
this.posmoves.Add(pf);
}
}
}
// attack with hero
if (p.ownHeroReady)
{
List<targett> trgts = p.getAttackTargets();
havedonesomething = true;
foreach (targett trgt in trgts)
{
Playfield pf = new Playfield(p);
pf.attackWithWeapon(trgt.target, trgt.targetEntity);
this.posmoves.Add(pf);
}
}
// use ability
/// TODO check if ready after manaup
//.........这里部分代码省略.........