public static int getCardTarget(int entityid) { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ENTITY_ID) == entityid) { return(ent.GetTag(HRGameTag.CARD_TARGET)); } } return(0); }
public static int getLastAffected(int entityid) { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.LAST_AFFECTED_BY) == entityid) { return(ent.GetTag(HRGameTag.ENTITY_ID)); } } return(0); }
private void getHandcards() { handCards.Clear(); this.anzcards = 0; this.enemyAnzCards = 0; List <HRCard> list = HRCard.GetCards(HRPlayer.GetLocalPlayer(), HRCardZone.HAND); foreach (HRCard item in list) { HREntity entitiy = item.GetEntity(); if (entitiy.GetControllerId() == this.ownPlayerController && entitiy.GetZonePosition() >= 1) // own handcard { CardDB.Card c = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.GetCardId())); //c.cost = entitiy.GetCost(); //c.entityID = entitiy.GetEntityId(); Handmanager.Handcard hc = new Handmanager.Handcard(); hc.card = c; hc.position = entitiy.GetZonePosition(); hc.entity = entitiy.GetEntityId(); hc.manacost = entitiy.GetCost(); hc.addattack = 0; if (c.name == CardDB.cardName.bolvarfordragon) { hc.addattack = entitiy.GetATK() - 1; // -1 because it starts with 1, we count only the additional attackvalue } handCards.Add(hc); this.anzcards++; } //maybe check if it has BRM_028e on it? } Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetControllerId() != this.ownPlayerController && ent.GetZonePosition() >= 1 && ent.GetZone() == HRCardZone.HAND) // enemy handcard { this.enemyAnzCards++; } } }
private void getDecks() { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); int owncontroler = HRPlayer.GetLocalPlayer().GetControllerId(); int enemycontroler = HRPlayer.GetEnemyPlayer().GetControllerId(); List <CardDB.cardIDEnum> ownCards = new List <CardDB.cardIDEnum>(); List <CardDB.cardIDEnum> enemyCards = new List <CardDB.cardIDEnum>(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetZone() == HRCardZone.SECRET && ent.GetControllerId() == enemycontroler) { continue; // cant know enemy secrets :D } if (ent.GetCardType() == HRCardType.MINION || ent.GetCardType() == HRCardType.WEAPON || ent.GetCardType() == HRCardType.ABILITY) { CardDB.cardIDEnum cardid = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); //string owner = "own"; //if (ent.GetControllerId() == enemycontroler) owner = "enemy"; //if (ent.GetControllerId() == enemycontroler && ent.GetZone() == HRCardZone.HAND) Helpfunctions.Instance.logg("enemy card in hand: " + "cardindeck: " + cardid + " " + ent.GetName()); //if (cardid != CardDB.cardIDEnum.None) Helpfunctions.Instance.logg("cardindeck: " + cardid + " " + ent.GetName() + " " + ent.GetZone() + " " + owner + " " + ent.GetCardType()); if (cardid != CardDB.cardIDEnum.None) { if (ent.GetControllerId() == owncontroler) { ownCards.Add(cardid); } else { enemyCards.Add(cardid); } } } } Probabilitymaker.Instance.setOwnCards(ownCards); Probabilitymaker.Instance.setEnemyCards(enemyCards); }
private void getHandcards() { handCards.Clear(); this.anzcards = 0; this.enemyAnzCards = 0; List <HRCard> list = HRCard.GetCards(HRPlayer.GetLocalPlayer(), HRCardZone.HAND); foreach (HRCard item in list) { HREntity entitiy = item.GetEntity(); if (entitiy.GetControllerId() == this.ownPlayerController && entitiy.GetZonePosition() >= 1) // own handcard { CardDB.Card c = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.GetCardId())); //c.cost = entitiy.GetCost(); //c.entityID = entitiy.GetEntityId(); Handmanager.Handcard hc = new Handmanager.Handcard(); hc.card = c; hc.position = entitiy.GetZonePosition(); hc.entity = entitiy.GetEntityId(); hc.manacost = entitiy.GetCost(); handCards.Add(hc); this.anzcards++; } } Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetControllerId() != this.ownPlayerController && ent.GetZonePosition() >= 1 && ent.GetZone() == HRCardZone.HAND) // enemy handcard { this.enemyAnzCards++; } } }
private void getDecks() { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); int owncontroler = HRPlayer.GetLocalPlayer().GetControllerId(); int enemycontroler = HRPlayer.GetEnemyPlayer().GetControllerId(); List <CardDB.cardIDEnum> ownCards = new List <CardDB.cardIDEnum>(); List <CardDB.cardIDEnum> enemyCards = new List <CardDB.cardIDEnum>(); List <GraveYardItem> graveYard = new List <GraveYardItem>(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetZone() == HRCardZone.SECRET && ent.GetControllerId() == enemycontroler) { continue; // cant know enemy secrets :D } if (ent.GetZone() == HRCardZone.DECK) { continue; } if (ent.GetCardType() == HRCardType.MINION || ent.GetCardType() == HRCardType.WEAPON || ent.GetCardType() == HRCardType.ABILITY) { CardDB.cardIDEnum cardid = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); //string owner = "own"; //if (ent.GetControllerId() == enemycontroler) owner = "enemy"; //if (ent.GetControllerId() == enemycontroler && ent.GetZone() == HRCardZone.HAND) Helpfunctions.Instance.logg("enemy card in hand: " + "cardindeck: " + cardid + " " + ent.GetName()); //if (cardid != CardDB.cardIDEnum.None) Helpfunctions.Instance.logg("cardindeck: " + cardid + " " + ent.GetName() + " " + ent.GetZone() + " " + owner + " " + ent.GetCardType()); if (cardid != CardDB.cardIDEnum.None) { if (ent.GetZone() == HRCardZone.GRAVEYARD) { GraveYardItem gyi = new GraveYardItem(cardid, ent.GetEntityId(), ent.GetControllerId() == owncontroler); graveYard.Add(gyi); } int creator = ent.GetTag(HRGameTag.CREATOR); if (creator != 0 && creator != owncontroler && creator != enemycontroler) { continue; //if creator is someone else, it was not played } if (ent.GetControllerId() == owncontroler) //or controler? { if (ent.GetZone() == HRCardZone.GRAVEYARD) { ownCards.Add(cardid); } } else { if (ent.GetZone() == HRCardZone.GRAVEYARD) { enemyCards.Add(cardid); } } } } } Probabilitymaker.Instance.setOwnCards(ownCards); Probabilitymaker.Instance.setEnemyCards(enemyCards); bool isTurnStart = false; if (Ai.Instance.nextMoveGuess.mana == -100) { isTurnStart = true; Ai.Instance.updateTwoTurnSim(); } Probabilitymaker.Instance.setGraveYard(graveYard, isTurnStart); }
private void getMinions() { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); ownMinions.Clear(); enemyMinions.Clear(); HRPlayer ownPlayer = HRPlayer.GetLocalPlayer(); HRPlayer enemyPlayer = HRPlayer.GetEnemyPlayer(); // ALL minions on Playfield: List <HRCard> list = HRCard.GetCards(ownPlayer, HRCardZone.PLAY); list.AddRange(HRCard.GetCards(enemyPlayer, HRCardZone.PLAY)); List <HREntity> enchantments = new List <HREntity>(); foreach (HRCard item in list) { HREntity entitiy = item.GetEntity(); int zp = entitiy.GetZonePosition(); if (entitiy.GetCardType() == HRCardType.MINION && zp >= 1) { //Helpfunctions.Instance.ErrorLog("zonepos " + zp); CardDB.Card c = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.GetCardId())); Minion m = new Minion(); m.name = c.name; m.handcard.card = c; m.Angr = entitiy.GetATK(); m.maxHp = entitiy.GetHealth(); m.Hp = m.maxHp - entitiy.GetDamage(); if (m.Hp <= 0) { continue; } m.wounded = false; if (m.maxHp > m.Hp) { m.wounded = true; } m.exhausted = entitiy.IsExhausted(); m.taunt = (entitiy.HasTaunt()) ? true : false; m.numAttacksThisTurn = entitiy.GetNumAttacksThisTurn(); int temp = entitiy.GetNumTurnsInPlay(); m.playedThisTurn = (temp == 0) ? true : false; m.windfury = (entitiy.HasWindfury()) ? true : false; m.frozen = (entitiy.IsFrozen()) ? true : false; m.divineshild = (entitiy.HasDivineShield()) ? true : false; m.stealth = (entitiy.IsStealthed()) ? true : false; m.poisonous = (entitiy.IsPoisonous()) ? true : false; m.immune = (entitiy.IsImmune()) ? true : false; m.silenced = (entitiy.GetTag(HRGameTag.SILENCED) >= 1) ? true : false; m.charge = 0; if (!m.silenced && m.name == CardDB.cardName.southseadeckhand && entitiy.GetTag(HRGameTag.CHARGE) == 1) { m.charge = 1; } if (!m.silenced && m.handcard.card.Charge) { m.charge = 1; } m.zonepos = zp; m.entitiyID = entitiy.GetEntityId(); //Helpfunctions.Instance.ErrorLog( m.name + " ready params ex: " + m.exhausted + " charge: " +m.charge + " attcksthisturn: " + m.numAttacksThisTurn + " playedthisturn " + m.playedThisTurn ); List <miniEnch> enchs = new List <miniEnch>(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ATTACHED) == m.entitiyID && ent.GetZone() == HRCardZone.PLAY) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); int creator = ent.GetTag(HRGameTag.CREATOR); int controler = ent.GetTag(HRGameTag.CONTROLLER); enchs.Add(new miniEnch(id, creator, controler)); } } m.loadEnchantments(enchs, entitiy.GetControllerId()); m.Ready = false; // if exhausted, he is NOT ready m.updateReadyness(); if (entitiy.GetControllerId() == this.ownPlayerController) // OWN minion { m.own = true; this.ownMinions.Add(m); } else { m.own = false; this.enemyMinions.Add(m); } } // minions added /* * if (entitiy.GetCardType() == HRCardType.WEAPON) * { * //Helpfunctions.Instance.ErrorLog("found weapon!"); * if (entitiy.GetControllerId() == this.ownPlayerController) // OWN weapon * { * this.ownHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.GetCardId())).name.ToString(); * this.heroWeaponAttack = entitiy.GetATK(); * this.heroWeaponDurability = entitiy.GetDurability(); * //this.heroImmuneToDamageWhileAttacking = false; * * * } * else * { * this.enemyHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.GetCardId())).name.ToString(); * this.enemyWeaponAttack = entitiy.GetATK(); * this.enemyWeaponDurability = entitiy.GetDurability(); * } * } * * if (entitiy.GetCardType() == HRCardType.ENCHANTMENT) * { * * enchantments.Add(entitiy); * } */ } /*foreach (HRCard item in list) * { * foreach (HREntity e in item.GetEntity().GetEnchantments()) * { * enchantments.Add(e); * } * } * * * // add enchantments to minions * setEnchantments(enchantments);*/ }
private void getHerostuff() { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); HRPlayer ownPlayer = HRPlayer.GetLocalPlayer(); HRPlayer enemyPlayer = HRPlayer.GetEnemyPlayer(); HREntity ownhero = ownPlayer.GetHero(); HREntity enemyhero = enemyPlayer.GetHero(); HREntity ownHeroAbility = ownPlayer.GetHeroPower(); //player stuff######################### //this.currentMana =ownPlayer.GetTag(HRGameTag.RESOURCES) - ownPlayer.GetTag(HRGameTag.RESOURCES_USED) + ownPlayer.GetTag(HRGameTag.TEMP_RESOURCES); this.currentMana = ownPlayer.GetNumAvailableResources(); this.ownMaxMana = ownPlayer.GetTag(HRGameTag.RESOURCES); this.enemyMaxMana = enemyPlayer.GetTag(HRGameTag.RESOURCES); enemySecretCount = HRCard.GetCards(enemyPlayer, HRCardZone.SECRET).Count; enemySecretCount = 0; //count enemy secrets enemySecretList.Clear(); foreach (HREntity ent in allEntitys.Values) { if (ent.IsSecret() && ent.GetControllerId() == enemyPlayer.GetControllerId() && ent.GetZone() == HRCardZone.SECRET) { enemySecretCount++; enemySecretList.Add(ent.GetTag(HRGameTag.ENTITY_ID)); } } this.ownSecretList = ownPlayer.GetSecretDefinitions(); this.numMinionsPlayedThisTurn = ownPlayer.GetTag(HRGameTag.NUM_MINIONS_PLAYED_THIS_TURN); this.cardsPlayedThisTurn = ownPlayer.GetTag(HRGameTag.NUM_CARDS_PLAYED_THIS_TURN); //if (ownPlayer.HasCombo()) this.cardsPlayedThisTurn = 1; this.ueberladung = ownPlayer.GetTag(HRGameTag.RECALL_OWED); //get weapon stuff this.ownHeroWeapon = ""; this.heroWeaponAttack = 0; this.heroWeaponDurability = 0; this.ownHeroFatigue = ownhero.GetFatigue(); this.enemyHeroFatigue = enemyhero.GetFatigue(); this.ownDecksize = 0; this.enemyDecksize = 0; //count decksize foreach (HREntity ent in allEntitys.Values) { if (ent.GetControllerId() == ownPlayer.GetControllerId() && ent.GetZone() == HRCardZone.DECK) { ownDecksize++; } if (ent.GetControllerId() == enemyPlayer.GetControllerId() && ent.GetZone() == HRCardZone.DECK) { enemyDecksize++; } } //own hero stuff########################### int heroAtk = ownhero.GetATK(); int heroHp = ownhero.GetHealth() - ownhero.GetDamage(); int heroDefence = ownhero.GetArmor(); this.heroname = Hrtprozis.Instance.heroIDtoName(ownhero.GetCardId()); bool heroImmuneToDamageWhileAttacking = false; bool herofrozen = ownhero.IsFrozen(); int heroNumAttacksThisTurn = ownhero.GetNumAttacksThisTurn(); bool heroHasWindfury = ownhero.HasWindfury(); bool heroImmune = (ownhero.GetTag(HRGameTag.CANT_BE_DAMAGED) == 1) ? true : false; //Helpfunctions.Instance.ErrorLog(ownhero.GetName() + " ready params ex: " + exausted + " " + heroAtk + " " + numberofattacks + " " + herofrozen); if (ownPlayer.HasWeapon()) { HREntity weapon = ownPlayer.GetWeaponCard().GetEntity(); this.ownHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(weapon.GetCardId())).name.ToString(); this.heroWeaponAttack = weapon.GetATK(); this.heroWeaponDurability = weapon.GetTag(HRGameTag.DURABILITY) - weapon.GetTag(HRGameTag.DAMAGE);//weapon.GetDurability(); heroImmuneToDamageWhileAttacking = false; if (this.ownHeroWeapon == "gladiatorslongbow") { heroImmuneToDamageWhileAttacking = true; } if (this.ownHeroWeapon == "doomhammer") { heroHasWindfury = true; } //Helpfunctions.Instance.ErrorLog("weapon: " + ownHeroWeapon + " " + heroWeaponAttack + " " + heroWeaponDurability); } //enemy hero stuff############################################################### this.enemyHeroname = Hrtprozis.Instance.heroIDtoName(enemyhero.GetCardId()); int enemyAtk = enemyhero.GetATK(); int enemyHp = enemyhero.GetHealth() - enemyhero.GetDamage(); int enemyDefence = enemyhero.GetArmor(); bool enemyfrozen = enemyhero.IsFrozen(); bool enemyHeroImmune = (enemyhero.GetTag(HRGameTag.CANT_BE_DAMAGED) == 1) ? true : false; this.enemyHeroWeapon = ""; this.enemyWeaponAttack = 0; this.enemyWeaponDurability = 0; if (enemyPlayer.HasWeapon()) { HREntity weapon = enemyPlayer.GetWeaponCard().GetEntity(); this.enemyHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(weapon.GetCardId())).name.ToString(); this.enemyWeaponAttack = weapon.GetATK(); this.enemyWeaponDurability = weapon.GetDurability(); } //own hero ablity stuff########################################################### this.heroAbility = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(ownHeroAbility.GetCardId())); this.ownAbilityisReady = (ownHeroAbility.IsExhausted()) ? false : true; // if exhausted, ability is NOT ready this.enemyAbility = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(enemyhero.GetHeroPower().GetCardId())); //generate Heros this.ownHero = new Minion(); this.enemyHero = new Minion(); this.ownHero.isHero = true; this.enemyHero.isHero = true; this.ownHero.own = true; this.enemyHero.own = false; this.ownHero.maxHp = ownhero.GetHealth(); this.enemyHero.maxHp = enemyhero.GetHealth(); this.ownHero.entitiyID = ownhero.GetEntityId(); this.enemyHero.entitiyID = enemyhero.GetEntityId(); this.ownHero.Angr = heroAtk; this.ownHero.Hp = heroHp; this.ownHero.armor = heroDefence; this.ownHero.frozen = herofrozen; this.ownHero.immuneWhileAttacking = heroImmuneToDamageWhileAttacking; this.ownHero.immune = heroImmune; this.ownHero.numAttacksThisTurn = heroNumAttacksThisTurn; this.ownHero.windfury = heroHasWindfury; this.enemyHero.Angr = enemyAtk; this.enemyHero.Hp = enemyHp; this.enemyHero.frozen = enemyfrozen; this.enemyHero.armor = enemyDefence; this.enemyHero.immune = enemyHeroImmune; this.enemyHero.Ready = false; this.ownHero.updateReadyness(); //load enchantments of the heros List <miniEnch> miniEnchlist = new List <miniEnch>(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ATTACHED) == this.ownHero.entitiyID && ent.GetZone() == HRCardZone.PLAY) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); int controler = ent.GetTag(HRGameTag.CONTROLLER); int creator = ent.GetTag(HRGameTag.CREATOR); miniEnchlist.Add(new miniEnch(id, creator, controler)); } } this.ownHero.loadEnchantments(miniEnchlist, ownhero.GetTag(HRGameTag.CONTROLLER)); miniEnchlist.Clear(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ATTACHED) == this.enemyHero.entitiyID && ent.GetZone() == HRCardZone.PLAY) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); int controler = ent.GetTag(HRGameTag.CONTROLLER); int creator = ent.GetTag(HRGameTag.CREATOR); miniEnchlist.Add(new miniEnch(id, creator, controler)); } } this.enemyHero.loadEnchantments(miniEnchlist, enemyhero.GetTag(HRGameTag.CONTROLLER)); //fastmode weapon correction: if (ownHero.Angr < this.heroWeaponAttack) { ownHero.Angr = this.heroWeaponAttack; } if (enemyHero.Angr < this.enemyWeaponAttack) { enemyHero.Angr = this.enemyWeaponAttack; } }
private void getHerostuff() { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); HRPlayer ownPlayer = HRPlayer.GetLocalPlayer(); HRPlayer enemyPlayer = HRPlayer.GetEnemyPlayer(); HREntity ownhero = ownPlayer.GetHero(); HREntity enemyhero = enemyPlayer.GetHero(); HREntity ownHeroAbility = ownPlayer.GetHeroPower(); //player stuff######################### //this.currentMana =ownPlayer.GetTag(HRGameTag.RESOURCES) - ownPlayer.GetTag(HRGameTag.RESOURCES_USED) + ownPlayer.GetTag(HRGameTag.TEMP_RESOURCES); this.currentMana = ownPlayer.GetNumAvailableResources(); this.ownMaxMana = ownPlayer.GetTag(HRGameTag.RESOURCES); this.enemyMaxMana = enemyPlayer.GetTag(HRGameTag.RESOURCES); enemySecretCount = HRCard.GetCards(enemyPlayer, HRCardZone.SECRET).Count; enemySecretCount = 0; //count enemy secrets enemySecretList.Clear(); foreach (HREntity ent in allEntitys.Values) { if (ent.IsSecret() && ent.GetControllerId() == enemyPlayer.GetControllerId() && ent.GetZone() == HRCardZone.SECRET) { enemySecretCount++; enemySecretList.Add(ent.GetTag(HRGameTag.ENTITY_ID)); } } this.ownSecretList = ownPlayer.GetSecretDefinitions(); this.numMinionsPlayedThisTurn = ownPlayer.GetTag(HRGameTag.NUM_MINIONS_PLAYED_THIS_TURN); this.cardsPlayedThisTurn = ownPlayer.GetTag(HRGameTag.NUM_CARDS_PLAYED_THIS_TURN); //if (ownPlayer.HasCombo()) this.cardsPlayedThisTurn = 1; //get weapon stuff this.ownHeroWeapon = ""; this.heroWeaponAttack = 0; this.heroWeaponDurability = 0; this.ownHeroFatigue = ownhero.GetFatigue(); this.enemyHeroFatigue = enemyhero.GetFatigue(); this.ownDecksize = 0; this.enemyDecksize = 0; //count decksize foreach (HREntity ent in allEntitys.Values) { if (ent.GetControllerId() == ownPlayer.GetControllerId() && ent.GetZone() == HRCardZone.DECK) { ownDecksize++; } if (ent.GetControllerId() == enemyPlayer.GetControllerId() && ent.GetZone() == HRCardZone.DECK) { enemyDecksize++; } } //own hero stuff########################### int heroAtk = ownhero.GetATK(); int heroHp = ownhero.GetHealth() - ownhero.GetDamage(); int heroDefence = ownhero.GetArmor(); this.heroname = Hrtprozis.Instance.heroIDtoName(ownhero.GetCardId()); bool heroImmuneToDamageWhileAttacking = false; bool herofrozen = ownhero.IsFrozen(); int heroNumAttacksThisTurn = ownhero.GetNumAttacksThisTurn(); bool heroHasWindfury = ownhero.HasWindfury(); bool heroImmune = (ownhero.GetTag(HRGameTag.CANT_BE_DAMAGED) == 1) ? true : false; //Helpfunctions.Instance.ErrorLog(ownhero.GetName() + " ready params ex: " + exausted + " " + heroAtk + " " + numberofattacks + " " + herofrozen); if (ownPlayer.HasWeapon()) { HREntity weapon = ownPlayer.GetWeaponCard().GetEntity(); this.ownHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(weapon.GetCardId())).name.ToString(); this.heroWeaponAttack = weapon.GetATK(); this.heroWeaponDurability = weapon.GetTag(HRGameTag.DURABILITY) - weapon.GetTag(HRGameTag.DAMAGE);//weapon.GetDurability(); heroImmuneToDamageWhileAttacking = false; if (this.ownHeroWeapon == "gladiatorslongbow") { heroImmuneToDamageWhileAttacking = true; } if (this.ownHeroWeapon == "doomhammer") { heroHasWindfury = true; } //Helpfunctions.Instance.ErrorLog("weapon: " + ownHeroWeapon + " " + heroWeaponAttack + " " + heroWeaponDurability); } //enemy hero stuff############################################################### this.enemyHeroname = Hrtprozis.Instance.heroIDtoName(enemyhero.GetCardId()); int enemyAtk = enemyhero.GetATK(); int enemyHp = enemyhero.GetHealth() - enemyhero.GetDamage(); int enemyDefence = enemyhero.GetArmor(); bool enemyfrozen = enemyhero.IsFrozen(); bool enemyHeroImmune = (enemyhero.GetTag(HRGameTag.CANT_BE_DAMAGED) == 1) ? true : false; this.enemyHeroWeapon = ""; this.enemyWeaponAttack = 0; this.enemyWeaponDurability = 0; if (enemyPlayer.HasWeapon()) { HREntity weapon = enemyPlayer.GetWeaponCard().GetEntity(); this.enemyHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(weapon.GetCardId())).name.ToString(); this.enemyWeaponAttack = weapon.GetATK(); this.enemyWeaponDurability = weapon.GetDurability(); } //own hero ablity stuff########################################################### this.heroAbility = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(ownHeroAbility.GetCardId())); this.ownAbilityisReady = (ownHeroAbility.IsExhausted()) ? false : true; // if exhausted, ability is NOT ready this.enemyAbility = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(enemyhero.GetHeroPower().GetCardId())); //generate Heros this.ownHero = new Minion(); this.enemyHero = new Minion(); this.ownHero.isHero = true; this.enemyHero.isHero = true; this.ownHero.own = true; this.enemyHero.own = false; this.ownHero.maxHp = ownhero.GetHealth(); this.enemyHero.maxHp = enemyhero.GetHealth(); this.ownHero.entitiyID = ownhero.GetEntityId(); this.enemyHero.entitiyID = enemyhero.GetEntityId(); this.ownHero.Angr = heroAtk; this.ownHero.Hp = heroHp; this.ownHero.armor = heroDefence; this.ownHero.frozen = herofrozen; this.ownHero.immuneWhileAttacking = heroImmuneToDamageWhileAttacking; this.ownHero.immune = heroImmune; this.ownHero.numAttacksThisTurn = heroNumAttacksThisTurn; this.ownHero.windfury = heroHasWindfury; this.enemyHero.Angr = enemyAtk; this.enemyHero.Hp = enemyHp; this.enemyHero.frozen = enemyfrozen; this.enemyHero.armor = enemyDefence; this.enemyHero.immune = enemyHeroImmune; this.enemyHero.Ready = false; this.ownHero.updateReadyness(); //load enchantments of the heros List <miniEnch> miniEnchlist = new List <miniEnch>(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ATTACHED) == this.ownHero.entitiyID && ent.GetZone() == HRCardZone.PLAY) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); int controler = ent.GetTag(HRGameTag.CONTROLLER); int creator = ent.GetTag(HRGameTag.CREATOR); miniEnchlist.Add(new miniEnch(id, creator, controler)); } } this.ownHero.loadEnchantments(miniEnchlist, ownhero.GetTag(HRGameTag.CONTROLLER)); ueberladung = ownhero.GetTag(HRGameTag.RECALL_OWED);//was at the start, but copied it over here :D , its german for overload :D //Reading new values:################################################################################################### //ToDo: this.numberMinionsDiedThisTurn = 0;// HRGameTag.NUM_MINIONS_KILLED_THIS_TURN; //this should work (hope i didnt oversee a value :D) this.ownCurrentOverload = ownhero.GetTag(HRGameTag.RECALL); this.enemyOverload = enemyhero.GetTag(HRGameTag.RECALL_OWED); //count buffs off !!players!! (players and not heros) (like preparation, kirintor-buff and stuff) // hope this works, dont own these cards to test where its attached int owncontrollerblubb = ownhero.GetTag(HRGameTag.CONTROLLER) + 1; // controller = 1 or 2, but entity with 1 is the board -> +1 int enemycontrollerblubb = enemyhero.GetTag(HRGameTag.CONTROLLER) + 1; // controller = 1 or 2, but entity with 1 is the board -> +1 foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ATTACHED) == owncontrollerblubb && ent.GetTag(HRGameTag.ZONE) == 1) //1==play { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); if (id == CardDB.cardIDEnum.NEW1_029t) { this.ownMillhouse++; } if (id == CardDB.cardIDEnum.FP1_030e) { this.ownLoathebs++; } if (id == CardDB.cardIDEnum.BRM_018e) { this.ownDragonConsort++; } if (id == CardDB.cardIDEnum.EX1_612o) { this.ownKirintor++; } if (id == CardDB.cardIDEnum.EX1_145o) { this.ownPrepa++; } } if (ent.GetTag(HRGameTag.ATTACHED) == enemycontrollerblubb && ent.GetTag(HRGameTag.ZONE) == 1) //1==play { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); if (id == CardDB.cardIDEnum.NEW1_029t) { this.enemyMillhouse++; } if (id == CardDB.cardIDEnum.FP1_030e) { this.enemyLoathebs++; } if (id == CardDB.cardIDEnum.BRM_018e) { this.enemyDragonConsort++; } // not needef for enemy, because its lasting only for his turn //if (id == CardDB.cardIDEnum.EX1_612o) this.enemyKirintor++; //if (id == CardDB.cardIDEnum.EX1_145o) this.enemyPrepa++; } } //TODO test Bolvar Fordragon but it will be on his card :D //Reading new values end################################ miniEnchlist.Clear(); foreach (HREntity ent in allEntitys.Values) { if (ent.GetTag(HRGameTag.ATTACHED) == this.enemyHero.entitiyID && ent.GetZone() == HRCardZone.PLAY) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.GetCardId()); int controler = ent.GetTag(HRGameTag.CONTROLLER); int creator = ent.GetTag(HRGameTag.CREATOR); miniEnchlist.Add(new miniEnch(id, creator, controler)); } } this.enemyHero.loadEnchantments(miniEnchlist, enemyhero.GetTag(HRGameTag.CONTROLLER)); //fastmode weapon correction: if (ownHero.Angr < this.heroWeaponAttack) { ownHero.Angr = this.heroWeaponAttack; } if (enemyHero.Angr < this.enemyWeaponAttack) { enemyHero.Angr = this.enemyWeaponAttack; } }
private void getHerostuff() { Dictionary <int, HREntity> allEntitys = HRGame.GetEntityMap(); HRPlayer ownPlayer = HRPlayer.GetLocalPlayer(); HRPlayer enemyPlayer = HRPlayer.GetEnemyPlayer(); HREntity ownhero = ownPlayer.GetHero(); HREntity enemyhero = enemyPlayer.GetHero(); HREntity ownHeroAbility = ownPlayer.GetHeroPower(); //player stuff######################### //this.currentMana =ownPlayer.GetTag(HRGameTag.RESOURCES) - ownPlayer.GetTag(HRGameTag.RESOURCES_USED) + ownPlayer.GetTag(HRGameTag.TEMP_RESOURCES); this.currentMana = ownPlayer.GetNumAvailableResources(); this.ownMaxMana = ownPlayer.GetTag(HRGameTag.RESOURCES); this.enemyMaxMana = enemyPlayer.GetTag(HRGameTag.RESOURCES); enemySecretCount = HRCard.GetCards(enemyPlayer, HRCardZone.SECRET).Count; enemySecretCount = 0; //count enemy secrets foreach (HREntity ent in allEntitys.Values) { if (ent.IsSecret() && ent.GetControllerId() == enemyPlayer.GetControllerId() && ent.GetZone() == HRCardZone.SECRET) { enemySecretCount++; } } this.ownSecretList = ownPlayer.GetSecretDefinitions(); this.numMinionsPlayedThisTurn = ownPlayer.GetTag(HRGameTag.NUM_MINIONS_PLAYED_THIS_TURN); this.cardsPlayedThisTurn = ownPlayer.GetTag(HRGameTag.NUM_CARDS_PLAYED_THIS_TURN); //if (ownPlayer.HasCombo()) this.cardsPlayedThisTurn = 1; this.ueberladung = ownPlayer.GetTag(HRGameTag.RECALL_OWED); //get weapon stuff this.ownHeroWeapon = ""; this.heroWeaponAttack = 0; this.heroWeaponDurability = 0; this.ownHeroFatigue = ownhero.GetFatigue(); this.enemyHeroFatigue = enemyhero.GetFatigue(); this.ownDecksize = 0; this.enemyDecksize = 0; //count decksize foreach (HREntity ent in allEntitys.Values) { if (ent.GetControllerId() == ownPlayer.GetControllerId() && ent.GetZone() == HRCardZone.DECK) { ownDecksize++; } if (ent.GetControllerId() == enemyPlayer.GetControllerId() && ent.GetZone() == HRCardZone.DECK) { enemyDecksize++; } } this.heroImmune = (ownhero.GetTag(HRGameTag.CANT_BE_DAMAGED) == 1) ? true : false; this.enemyHeroImmune = (enemyhero.GetTag(HRGameTag.CANT_BE_DAMAGED) == 1) ? true : false; this.enemyHeroWeapon = ""; this.enemyWeaponAttack = 0; this.enemyWeaponDurability = 0; if (enemyPlayer.HasWeapon()) { HREntity weapon = enemyPlayer.GetWeaponCard().GetEntity(); this.enemyHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(weapon.GetCardId())).name.ToString(); this.enemyWeaponAttack = weapon.GetATK(); this.enemyWeaponDurability = weapon.GetDurability(); } //own hero stuff########################### this.heroAtk = ownhero.GetATK(); this.heroHp = ownhero.GetHealth() - ownhero.GetDamage(); this.heroDefence = ownhero.GetArmor(); this.heroname = Hrtprozis.Instance.heroIDtoName(ownhero.GetCardId()); bool exausted = false; exausted = ownhero.IsExhausted(); this.ownheroisread = true; this.heroImmuneToDamageWhileAttacking = false; this.herofrozen = ownhero.IsFrozen(); this.heroNumAttacksThisTurn = ownhero.GetNumAttacksThisTurn(); this.heroHasWindfury = ownhero.HasWindfury(); //int numberofattacks = ownhero.GetNumAttacksThisTurn(); //Helpfunctions.Instance.ErrorLog(ownhero.GetName() + " ready params ex: " + exausted + " " + heroAtk + " " + numberofattacks + " " + herofrozen); if (ownPlayer.HasWeapon()) { HREntity weapon = ownPlayer.GetWeaponCard().GetEntity(); this.ownHeroWeapon = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(weapon.GetCardId())).name.ToString(); this.heroWeaponAttack = weapon.GetATK(); this.heroWeaponDurability = weapon.GetTag(HRGameTag.DURABILITY) - weapon.GetTag(HRGameTag.DAMAGE);//weapon.GetDurability(); this.heroImmuneToDamageWhileAttacking = false; if (this.ownHeroWeapon == "gladiatorslongbow") { this.heroImmuneToDamageWhileAttacking = true; } if (this.ownHeroWeapon == "doomhammer") { this.heroHasWindfury = true; } //Helpfunctions.Instance.ErrorLog("weapon: " + ownHeroWeapon + " " + heroWeaponAttack + " " + heroWeaponDurability); } if (exausted) { this.ownheroisread = false; } if (this.heroNumAttacksThisTurn == 1 && this.heroHasWindfury) { this.ownheroisread = true; } if (exausted == false && this.heroAtk == 0) { this.ownheroisread = false; } if (herofrozen) { ownheroisread = false; } //enemy hero stuff############################################################### this.enemyAtk = enemyhero.GetATK(); this.enemyHp = enemyhero.GetHealth() - enemyhero.GetDamage(); this.enemyHeroname = Hrtprozis.Instance.heroIDtoName(enemyhero.GetCardId()); this.enemyDefence = enemyhero.GetArmor(); this.enemyfrozen = enemyhero.IsFrozen(); //own hero ablity stuff########################################################### this.heroAbility = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(ownHeroAbility.GetCardId())); this.ownAbilityisReady = (ownHeroAbility.IsExhausted()) ? false : true; // if exhausted, ability is NOT ready this.enemyAbility = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(enemyhero.GetHeroPower().GetCardId())); }