public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(1, ownplay); if (p.playerFirst.cardsPlayedThisTurn >= 1) dmg = p.getSpellDamageDamage(2, ownplay); p.minionGetDamageOrHeal(target, dmg); p.equipWeapon(w, ownplay); }
// fügt einem feind $4 schaden und allen anderen feinden $1 schaden zu. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(1, ownplay); int dmg1 = p.getSpellDamageDamage(4, ownplay); List<Minion> temp = (ownplay) ? p.playerSecond.ownMinions : p.playerFirst.ownMinions; p.minionGetDamageOrHeal(target, dmg1); foreach (Minion m in temp) { if (m.entitiyID != target.entitiyID) { p.minionGetDamageOrHeal(m, dmg); } } if (ownplay) { if (p.playerSecond.ownHero.entitiyID != target.entitiyID) { p.minionGetDamageOrHeal(p.playerSecond.ownHero, dmg); } } else { if (p.playerFirst.ownHero.entitiyID != target.entitiyID) { p.minionGetDamageOrHeal(p.playerFirst.ownHero, dmg); } } }
// fügt einem diener $5 schaden und benachbarten dienern $2 schaden zu. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg1 = p.getSpellDamageDamage(5, ownplay); int dmg2 = p.getSpellDamageDamage(2, ownplay); List<Minion> temp = (target.own) ? p.playerFirst.ownMinions : p.playerSecond.ownMinions; p.minionGetDamageOrHeal(target, dmg1); foreach (Minion m in temp) { if (m.zonepos + 1 == target.zonepos || m.zonepos - 1 == target.zonepos) p.minionGetDamageOrHeal(m, dmg2); } }
// verursacht $4 schaden. verursacht stattdessen $6 schaden, wenn euer held max. 12 leben hat. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = 0; if (ownplay) { dmg = (p.playerFirst.ownHero.Hp <= 12) ? p.getSpellDamageDamage(6, ownplay) : p.getSpellDamageDamage(4, ownplay); } else { dmg = (p.playerSecond.ownHero.Hp <= 12) ? p.getSpellDamageDamage(6, ownplay) : p.getSpellDamageDamage(4, ownplay); } p.minionGetDamageOrHeal(target, dmg); }
// wählt aus:/ fügt einem diener $5 schaden zu; oder fügt allen feindlichen dienern $2 schaden zu. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { if (choice == 1) { int dmg = p.getSpellDamageDamage(5, ownplay); p.minionGetDamageOrHeal(target, dmg); } if (choice == 2) { int damage = p.getSpellDamageDamage(2, ownplay); p.allMinionOfASideGetDamage(!ownplay, damage); } }
//todo make it better :D //Fügt allen Feinden $2 Schaden zu. Stellt bei allen befreundeten Charakteren #2 Leben wieder her. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(2, ownplay); int heal = p.getSpellHeal(2, ownplay); if (ownplay) { p.minionGetDamageOrHeal(p.playerFirst.ownHero, -heal); p.minionGetDamageOrHeal(p.playerSecond.ownHero, dmg); foreach (Minion m in p.playerFirst.ownMinions) { p.minionGetDamageOrHeal(m, -heal); } foreach (Minion m in p.playerSecond.ownMinions) { p.minionGetDamageOrHeal(m, dmg); } } else { p.minionGetDamageOrHeal(p.playerSecond.ownHero, -heal); p.minionGetDamageOrHeal(p.playerFirst.ownHero, dmg); foreach (Minion m in p.playerSecond.ownMinions) { p.minionGetDamageOrHeal(m, -heal); } foreach (Minion m in p.playerFirst.ownMinions) { p.minionGetDamageOrHeal(m, dmg); } } }
// fügt dem feindlichen helden $3 schaden zu. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(3, ownplay); p.minionGetDamageOrHeal(ownplay ? p.playerSecond.ownHero : p.playerFirst.ownHero, dmg); }
// todo ask the posibility manager! // zieht eine karte und verursacht schaden, der ihren kosten entspricht. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { p.drawACard(p.getArandomCardFromDeck(ownplay), ownplay); int dmg = p.getSpellDamageDamage(3, ownplay); p.minionGetDamageOrHeal(target, dmg); }
// fügt einem feindlichen charakter $1 schaden zu und friert/ ihn ein. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(1, ownplay); target.frozen = true; p.minionGetDamageOrHeal(target, dmg); }
public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int damage = p.getSpellDamageDamage(p.playerFirst.ownWeaponAttack, ownplay); p.allCharsOfASideGetDamage(!ownplay, damage); //destroy own weapon p.lowerWeaponDurability(1000, true); }
// Deal 3 damage. If your hand is empty, draw a card. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(3, ownplay); p.minionGetDamageOrHeal(target, dmg); int cardsCount = (ownplay) ? p.playerFirst.owncards.Count : p.playerSecond.owncards.Count; if (cardsCount <= 0) p.drawACard(p.getArandomCardFromDeck(ownplay), ownplay); }
// fügt dem feindlichen helden $2 schaden zu. combo:/ lasst die karte in eurem nächsten zug wieder auf eure hand zurückkehren. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(2, ownplay); p.minionGetDamageOrHeal(ownplay ? p.playerSecond.ownHero : p.playerFirst.ownHero, dmg); //if (p.playerFirst.cardsPlayedThisTurn >= 1) //p.evaluatePenality -= 5; }
// fügt einem diener $1 schaden zu. zieht eine karte. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int damage = p.getSpellDamageDamage(1, ownplay); //this.owncarddraw++; p.minionGetDamageOrHeal(target, damage); p.drawACard(p.getArandomCardFromDeck(ownplay), ownplay); }
// Deal 1 damage to all minions. If you have 12 or less Health, deal 3 damage instead. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = 1; int heroHealth = (ownplay) ? p.playerFirst.ownHero.Hp : p.playerSecond.ownHero.Hp; if(heroHealth <= 12) dmg = 3; dmg = p.getSpellDamageDamage(dmg, ownplay); p.allMinionsGetDamage(dmg); }
//Deal 2 damage to all enemy minions and Freeze them. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(2, ownplay); p.allMinionOfASideGetDamage(!ownplay, dmg, true); List<Minion> temp = (ownplay) ? p.playerSecond.ownMinions : p.playerFirst.ownMinions; foreach (Minion t in temp) { t.frozen = true; } }
public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(2, ownplay); p.minionGetDamageOrHeal(target, dmg); int posi = (ownplay) ? p.playerFirst.ownMinions.Count : p.playerSecond.ownMinions.Count; p.callKid(kid, posi, ownplay); posi++; p.callKid(kid, posi, ownplay); }
// verursacht $3 schaden. verursacht stattdessen $5 schaden, wenn ihr ein wildtier besitzt. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { if (ownplay) { bool haspet = false; foreach (Minion m in p.playerFirst.ownMinions) { if ((TAG_RACE)m.handcard.card.race == TAG_RACE.PET) { haspet = true; break; } } int dmg = p.getSpellDamageDamage(3, ownplay); if (haspet) dmg = p.getSpellDamageDamage(5, ownplay); p.minionGetDamageOrHeal(target, dmg); } }
// fügt einem diener $1 schaden zu. zieht eine karte, wenn er dadurch vernichtet wird. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(1, ownplay); if (dmg >= target.Hp && !target.divineshild && !target.immune) { //this.owncarddraw++; p.drawACard(p.getArandomCardFromDeck(ownplay), ownplay); } p.minionGetDamageOrHeal(target, dmg); }
// wählt aus:/ fügt einem diener $3 schaden zu; oder fügt einem diener $1 schaden zu und zieht eine karte. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int damage = 0; if (choice == 1) { damage = p.getSpellDamageDamage(3, ownplay); if (choice == 2) { damage = p.getSpellDamageDamage(1, ownplay); } p.minionGetDamageOrHeal(target, damage); if (choice == 2) { p.drawACard(p.getArandomCardFromDeck(ownplay), ownplay); } } }
// verursacht $8 schaden, der zufällig auf feindliche charaktere verteilt wird. //todo for enemy public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { // optimistic int i = 0; List<Minion> temp = (ownplay) ? p.playerSecond.ownMinions : p.playerFirst.ownMinions; int times = p.getSpellDamageDamage(8, ownplay); if ((ownplay && p.playerSecond.ownHero.Hp <= times) || (!ownplay && p.playerFirst.ownHero.Hp <= times)) { if (ownplay) p.minionGetDamageOrHeal(p.playerSecond.ownHero, p.playerSecond.ownHero.Hp - 1); else p.minionGetDamageOrHeal(p.playerFirst.ownHero, p.playerFirst.ownHero.Hp - 1); } else { while (i < times) { if (temp.Count >= 1) { //search Minion with lowest hp Minion enemy = temp[0]; int minhp = 10000; bool found = false; foreach (Minion m in temp) { if (m.name == CardDB.cardName.nerubianegg && enemy.Hp >= 2) continue; //dont attack nerubianegg! if (m.Hp >= 2 && minhp > m.Hp) { enemy = m; minhp = m.Hp; found = true; } } if (found) { p.minionGetDamageOrHeal(enemy, 1); } else { p.minionGetDamageOrHeal(ownplay ? p.playerSecond.ownHero : p.playerFirst.ownHero, 1); } } else { p.minionGetDamageOrHeal(ownplay ? p.playerSecond.ownHero : p.playerFirst.ownHero, 1); } i++; } } }
// fügt einem diener $2 schaden zu. wenn das ziel ein verbündeter dämon ist, erhält er stattdessen +2/+2. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { if (target.handcard.card.race == 15 && ownplay == target.own) { p.minionGetBuffed(target, 2, 2); } else { int dmg = p.getSpellDamageDamage(2, ownplay); p.minionGetDamageOrHeal(target, dmg); } }
// fügt zwei zufälligen feindlichen dienern $3 schaden zu. //todo new list public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int damage = p.getSpellDamageDamage(3, ownplay); List<Minion> temp2 = (ownplay) ? new List<Minion>(p.playerSecond.ownMinions) : new List<Minion>(p.playerFirst.ownMinions) ; temp2.Sort((a, b) => a.Hp.CompareTo(b.Hp)); int i = 0; foreach (Minion enemy in temp2) { p.minionGetDamageOrHeal(enemy, damage); i++; if (i == 2) break; } }
// Deal 2 damage to all non-Demon minions. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(2, ownplay); foreach (Minion m in p.playerFirst.ownMinions) { if ((TAG_RACE)m.handcard.card.race != TAG_RACE.DEMON) p.minionGetDamageOrHeal(m, dmg); } foreach (Minion m in p.playerSecond.ownMinions) { if ((TAG_RACE)m.handcard.card.race != TAG_RACE.DEMON) p.minionGetDamageOrHeal(m, dmg); } }
// fügt allen charakteren mit ausnahme von ysera $5 schaden zu. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(5, ownplay); foreach (Minion m in p.playerFirst.ownMinions) { if (m.name != CardDB.cardName.ysera) p.minionGetDamageOrHeal(m, dmg); } foreach (Minion m in p.playerSecond.ownMinions) { if (m.name != CardDB.cardName.ysera) p.minionGetDamageOrHeal(m, dmg); } p.minionGetDamageOrHeal(p.playerFirst.ownHero, dmg); p.minionGetDamageOrHeal(p.playerSecond.ownHero, dmg); }
// friert/ einen diener sowie seine benachbarten diener ein und fügt ihnen $1 schaden zu. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(1, ownplay); p.minionGetDamageOrHeal(target, dmg); target.frozen = true; List<Minion> temp = (target.own) ? p.playerFirst.ownMinions : p.playerSecond.ownMinions; foreach (Minion m in temp) { if (target.zonepos == m.zonepos + 1 || target.zonepos + 1 == m.zonepos) { p.minionGetDamageOrHeal(m, dmg); m.frozen = true; } } }
// verursacht $4 schaden. werft eine zufällige karte ab. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(4, ownplay); p.minionGetDamageOrHeal(target, dmg); if (ownplay) { p.playerFirst.owncarddraw -= Math.Min(1, p.playerFirst.owncards.Count); p.playerFirst.owncards.RemoveRange(0, Math.Min(1, p.playerFirst.owncards.Count)); p.triggerCardsChanged(true); } else { p.playerSecond.owncarddraw -= Math.Min(1, p.playerSecond.owncards.Count); p.playerSecond.owncards.RemoveRange(0, Math.Min(1, p.playerSecond.owncards.Count)); p.triggerCardsChanged(true); } }
// Deal $1 damage to a random minion. Repeat until a minion dies. public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(1, ownplay); int minHp = 100000; foreach (Minion m in p.playerFirst.ownMinions) { if (m.Hp < minHp) minHp = m.Hp; } foreach (Minion m in p.playerSecond.ownMinions) { if (m.Hp < minHp) minHp = m.Hp; } int dmgdone = (int)Math.Ceiling((double)minHp / (double)dmg) * dmg; p.allMinionsGetDamage(dmgdone); }
//public void setCombos() //{ // this.cb = sf.Combobreaker; //} public float getOffenseReward(Action a, Playfield p) { int reward = 0; if (CardDB.Instance.DamageTargetDatabase.ContainsKey(a.card.card.name)) { int damage = CardDB.Instance.DamageTargetDatabase[a.card.card.name]; int damagedone = p.getSpellDamageDamage(damage, p.isOwnTurn); if (a.target.Hp < damagedone) { reward = a.target.Hp + a.target.Angr; } else { reward = damagedone; } } return (float)reward / a.card.getManaCost(p, p.isOwnTurn); }
// Battlecry: Deal 4 damage to a random enemy minion. public override void getBattlecryEffect(Playfield p, Minion own, Minion target, int choice) { List<Minion> temp = (own.own) ? p.playerSecond.ownMinions : p.playerFirst.ownMinions; int times = p.getSpellDamageDamage(4, own.own); if (temp.Count >= 1) { //search Minion with lowest hp Minion enemy = temp[0]; int minhp = 10000; foreach (Minion m in temp) { if (m.Hp >= times + 1 && minhp > m.Hp) { enemy = m; minhp = m.Hp; } } p.minionGetDamageOrHeal(enemy, times); } }
CardDB.Card kid = CardDB.Instance.getCardDataFromID(CardDB.cardIDEnum.CS2_059);//bloodimp public override void onCardPlay(Playfield p, bool ownplay, Minion target, int choice) { int dmg = p.getSpellDamageDamage(2, ownplay); bool summondemon = false; if (!target.isHero && dmg >= target.Hp && !target.divineshild && !target.immune) { summondemon = true; } p.minionGetDamageOrHeal(target, dmg); if (summondemon) { int posi = (ownplay) ? p.playerFirst.ownMinions.Count : p.playerSecond.ownMinions.Count; p.callKid(kid, posi, ownplay); } }