public void readTurnGraveYard(string own, string enemy) { this.turngraveyard.Clear(); string temp = ""; temp = own.Replace("ownDiedMinions: ", ""); foreach (string s in temp.Split(';')) { if (s == "" || s == " ") { continue; } string id = s.Split(',')[0]; string ent = s.Split(',')[1]; GraveYardItem gyi = new GraveYardItem(CardDB.Instance.cardIdstringToEnum(id), Convert.ToInt32(ent), true); } temp = enemy.Replace("enemyDiedMinions: ", ""); foreach (string s in temp.Split(';')) { if (s == "" || s == " ") { continue; } string id = s.Split(',')[0]; string ent = s.Split(',')[1]; GraveYardItem gyi = new GraveYardItem(CardDB.Instance.cardIdstringToEnum(id), Convert.ToInt32(ent), false); } }
// Deathrattle: Put a Secret: from your deck into the battlefield. public override void onDeathrattle(Playfield p, Minion m) { if (m.own) { CardDB.cardIDEnum secToDraw = p.getArandomSecretFromDeck(m.own); if (secToDraw != CardDB.cardIDEnum.None) { p.playerFirst.ownSecretsIDList.Add(secToDraw); GraveYardItem gyi = new GraveYardItem(secToDraw, p.getNextEntity(), m.own); p.graveYard.Add(gyi); } } else { CardDB.cardIDEnum secToDraw = p.getArandomSecretFromDeck(m.own); if (secToDraw != CardDB.cardIDEnum.None) { p.playerSecond.ownSecretsIDList.Add(secToDraw); GraveYardItem gyi = new GraveYardItem(secToDraw, p.getNextEntity(), m.own); p.graveYard.Add(gyi); } } }
public void readTurnGraveYard(string own, string enemy) { this.turngraveyard.Clear(); string temp = ""; temp = own.Replace("ownDiedMinions: ", ""); foreach (string s in temp.Split(';')) { if (s == "" || s == " ") continue; string id = s.Split(',')[0]; string ent = s.Split(',')[1]; GraveYardItem gyi = new GraveYardItem(CardDB.Instance.cardIdstringToEnum(id), Convert.ToInt32(ent), true); } temp = enemy.Replace("enemyDiedMinions: ", ""); foreach (string s in temp.Split(';')) { if (s == "" || s == " ") continue; string id = s.Split(',')[0]; string ent = s.Split(',')[1]; GraveYardItem gyi = new GraveYardItem(CardDB.Instance.cardIdstringToEnum(id), Convert.ToInt32(ent), false); } }
public void minionDied(Playfield p) { if (this.name == CardDB.cardName.stalagg) { p.stalaggDead = true; } else { if (this.name == CardDB.cardName.feugen) p.feugenDead = true; } if (own) { p.tempTrigger.ownMinionsDied++; if (this.handcard.card.race == 20) { p.tempTrigger.ownBeastDied++; } if (this.handcard.card.race == 17) { p.tempTrigger.ownMechanicDied++; } if (this.handcard.card.race == 14) { p.tempTrigger.ownMurlocDied++; } } else { p.tempTrigger.enemyMinionsDied++; //if (this.taunt) p.anzEnemyTaunt--; if (this.handcard.card.race == 20) { p.tempTrigger.enemyBeastDied++; } if (this.handcard.card.race == 17) { p.tempTrigger.enemyMechanicDied++; } if (this.handcard.card.race == 14) { p.tempTrigger.enemyMurlocDied++; } } if (p.diedMinions != null) { GraveYardItem gyi = new GraveYardItem(this.handcard.card.cardIDenum, this.entitiyID, this.own); p.diedMinions.Add(gyi); p.graveYard.Add(gyi); } //move trigger if (p.isOwnTurn != this.own) { if (this.taunt) p.moveTrigger.tauntChanged = true; } if (this.handcard.card.name == CardDB.cardName.mechwarper && p.isOwnTurn == this.own) { p.moveTrigger.manaChanged = true; } p.moveTrigger.minionDied = true; p.moveTrigger.minionDiedList.Add(this.entitiyID); }
public void minionDied(Playfield p) { if (this.name == CardDB.cardName.stalagg) { p.stalaggDead = true; } else { if (this.name == CardDB.cardName.feugen) { p.feugenDead = true; } } if (own) { p.tempTrigger.ownMinionsDied++; if (this.handcard.card.race == 20) { p.tempTrigger.ownBeastDied++; } if (this.handcard.card.race == 17) { p.tempTrigger.ownMechanicDied++; } if (this.handcard.card.race == 14) { p.tempTrigger.ownMurlocDied++; } } else { p.tempTrigger.enemyMinionsDied++; //if (this.taunt) p.anzEnemyTaunt--; if (this.handcard.card.race == 20) { p.tempTrigger.enemyBeastDied++; } if (this.handcard.card.race == 17) { p.tempTrigger.enemyMechanicDied++; } if (this.handcard.card.race == 14) { p.tempTrigger.enemyMurlocDied++; } } if (p.diedMinions != null) { GraveYardItem gyi = new GraveYardItem(this.handcard.card.cardIDenum, this.entitiyID, this.own); p.diedMinions.Add(gyi); p.graveYard.Add(gyi); } //move trigger int maxMana = Math.Max(p.getCurrentPlayer(true).ownMaxMana, p.getCurrentPlayer(false).ownMaxMana); if (p.isOwnTurn == this.own) { p.moveTrigger.ownMinionDied += 1; float minionTurnVal = this.getTurnValue(maxMana); p.moveTrigger.moveReward -= minionTurnVal; } else { p.moveTrigger.enemyMinionDied += 1; float minionTurnVal = this.getTurnValue(maxMana); p.moveTrigger.moveReward += minionTurnVal; if (this.taunt) { p.moveTrigger.tauntChanged = true; } } if (this.handcard.card.name == CardDB.cardName.mechwarper && p.isOwnTurn == this.own) { p.moveTrigger.manaChanged = true; } p.moveTrigger.minionDied = true; p.moveTrigger.minionDiedList.Add(this.entitiyID); }
public void minionGetDestroyed(Minion m) { if (m.Hp > 0) { m.Hp = 0; m.minionDied(this); GraveYardItem gyi = new GraveYardItem(m.handcard.card.cardIDenum, m.entitiyID, m.own); diedMinions.Add(gyi); graveYard.Add(gyi); } }
public void enemyplaysACard(Handmanager.Handcard hc, Minion target, int position, int choice, int penality) { //Handmanager.Handcard hc = new Handmanager.Handcard(c); //hc.entity = this.getNextEntity(); //Helpfunctions.Instance.logg("play crd " + c.name + " entitiy# " + cardEntity + " mana " + hc.getManaCost(this) + " trgt " + target); CardDB.Card c = hc.card; if (logging) Helpfunctions.Instance.logg("enemy play crd " + c.name + " trgt " + target); this.playerSecond.evaluatePenality += penality; int manaCost = hc.getManaCost(this, false); if (manaCost == 0 && hc.card.cost == 4 && this.playerSecond.enemyMillhouse == 0) { int debug = 1; debugMinions(); hc.getManaCost(this, false); } this.playerSecond.mana = this.playerSecond.mana - manaCost; removeCard(hc, false);// remove card from hand this.triggerACardWillBePlayed(hc, false); this.triggerCardsChanged(false); this.doDmgTriggers(); int newTarget = secretTrigger_SpellIsPlayed(target, c.type == CardDB.cardtype.SPELL, false); if (newTarget >= 1) { //search new target! foreach (Minion m in this.playerFirst.ownMinions) { if (m.entitiyID == newTarget) { target = m; break; } } foreach (Minion m in this.playerSecond.ownMinions) { if (m.entitiyID == newTarget) { target = m; break; } } if (this.playerFirst.ownHero.entitiyID == newTarget) target = this.playerFirst.ownHero; if (this.playerSecond.ownHero.entitiyID == newTarget) target = this.playerSecond.ownHero; } if (newTarget != -2) // trigger spell-secrets! { if (c.type == CardDB.cardtype.MOB) { //todo mob playing this.placeAmobSomewhere(hc, false, target, choice, position); this.playerSecond.mobsplayedThisTurn++; } else { c.sim_card.onCardPlay(this, false, target, choice); this.doDmgTriggers(); //secret trigger? do here } } GraveYardItem gyi = new GraveYardItem(c.cardIDenum, hc.entity, false); graveYard.Add(gyi); this.playerSecond.cardsPlayedThisTurn++; }
//public void updateMoveList(Action action) //{ // Helpfunctions.Instance.logg("Action:------------------------------------"); // action.print(); // printMoveList(); // if (this.moveTrigger.tauntChanged || this.moveTrigger.manaChanged) // { // this.moveList = Movegenerator.Instance.getMoveList(this, false, true, true); // } // else // { // Movegenerator.Instance.getMoveListForPlayfield(this, false); // } // if (this.isOwnTurn) // { // Helpfunctions.Instance.logg("player 1 Mana: " + this.playerFirst.mana + "/" + this.playerFirst.ownMaxMana); // } // else // { // Helpfunctions.Instance.logg("player 2 Mana: " + this.playerSecond.mana + "/" + this.playerSecond.ownMaxMana); // } // printMoveList(); //} //play a minion trigger stuff: // 1 whenever you play a card whatever triggers // 2 Auras // 5 whenever you summon a minion triggers (like starving buzzard) // 3 battlecry // 3.5 place minion // 3.75 dmg/died/dthrttl triggers // 4 secret: minion is played // 4.5 dmg/died/dthrttl triggers // 5 after you summon a minion triggers // 5.5 dmg/died/dthrttl triggers public void playACard(Handmanager.Handcard hc, Minion target, int position, int choice, int penality) { CardDB.Card c = hc.card; this.playerFirst.evaluatePenality += penality; int manaCost = hc.getManaCost(this, true); if (manaCost == 0 && hc.card.cost == 4 && this.playerFirst.enemyMillhouse == 0) { int debug = 1; debugMinions(); } this.playerFirst.mana = this.playerFirst.mana - manaCost; if (this.playerFirst.mana < 0) { int debug = 1; } removeCard(hc, true);// remove card from hand this.triggerCardsChanged(true); if (c.type == CardDB.cardtype.SPELL) { this.playerFirst.playedPreparation = false; if (target != null && target.name == CardDB.cardName.dragonkinsorcerer && target.own) this.minionGetBuffed(target, 1, 1); } if (c.Secret) { this.playerFirst.ownSecretsIDList.Add(c.cardIDenum); this.playerFirst.playedmagierinderkirintor = false; } //Helpfunctions.Instance.logg("play crd " + c.name + " entitiy# " + cardEntity + " mana " + hc.getManaCost(this) + " trgt " + target); if (logging) Helpfunctions.Instance.logg("play crd " + c.name + " entitiy# " + hc.entity + " mana " + hc.getManaCost(this, true) + " trgt " + target); this.triggerACardWillBePlayed(hc, true); this.triggerCardsChanged(true); this.doDmgTriggers(); int newTarget = secretTrigger_SpellIsPlayed(target, c.type == CardDB.cardtype.SPELL, true); if (newTarget >= 1) { //search new target! foreach (Minion m in this.playerFirst.ownMinions) { if (m.entitiyID == newTarget) { target = m; break; } } foreach (Minion m in this.playerSecond.ownMinions) { if (m.entitiyID == newTarget) { target = m; break; } } if (this.playerFirst.ownHero.entitiyID == newTarget) target = this.playerFirst.ownHero; if (this.playerSecond.ownHero.entitiyID == newTarget) target = this.playerSecond.ownHero; } if (newTarget != -2) // trigger spell-secrets! { if (c.type == CardDB.cardtype.MOB) { this.placeAmobSomewhere(hc, true, target, choice, position); this.playerFirst.mobsplayedThisTurn++; } else { c.sim_card.onCardPlay(this, true, target, choice); this.doDmgTriggers(); //secret trigger? do here } } GraveYardItem gyi = new GraveYardItem(c.cardIDenum, hc.entity, true); graveYard.Add(gyi); //this.ueberladung += c.recallValue; this.playerFirst.cardsPlayedThisTurn++; }