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 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 getMinions() { // ALL minions on Playfield: List <HSCard> list = TritonHs.GetCards(CardZone.Battlefield, true); list.AddRange(TritonHs.GetCards(CardZone.Battlefield, false)); var enchantments = new List <HSCard>(); ownMinions.Clear(); enemyMinions.Clear(); List <HSCard> allcards = TritonHs.GetAllCards(); foreach (HSCard entiti in list) { int zp = entiti.GetTag(GAME_TAG.ZONE_POSITION); if (entiti.IsMinion && zp >= 1) { HSCard entitiy = entiti; foreach (HSCard ent in allcards) { if (ent.EntityId == entiti.EntityId) { entitiy = ent; break; } } //Helpfunctions.Instance.ErrorLog("zonepos " + zp); CardDB.Card c = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.Id)); Minion m = new Minion(); m.name = c.name; m.handcard.card = c; m.Angr = entitiy.GetTag(GAME_TAG.ATK); m.maxHp = entitiy.GetTag(GAME_TAG.HEALTH); m.Hp = entitiy.GetTag(GAME_TAG.HEALTH) - entitiy.GetTag(GAME_TAG.DAMAGE); if (m.Hp <= 0) { continue; } m.wounded = false; if (m.maxHp > m.Hp) { m.wounded = true; } m.exhausted = (entitiy.GetTag(GAME_TAG.EXHAUSTED) == 0) ? false : true; m.taunt = (entitiy.GetTag(GAME_TAG.TAUNT) == 0) ? false : true; m.numAttacksThisTurn = entitiy.GetTag(GAME_TAG.NUM_ATTACKS_THIS_TURN); int temp = entitiy.GetTag(GAME_TAG.NUM_TURNS_IN_PLAY); m.playedThisTurn = (temp == 0) ? true : false; m.windfury = (entitiy.GetTag(GAME_TAG.WINDFURY) == 0) ? false : true; m.frozen = (entitiy.GetTag(GAME_TAG.FROZEN) == 0) ? false : true; m.divineshild = (entitiy.GetTag(GAME_TAG.DIVINE_SHIELD) == 0) ? false : true; m.stealth = (entitiy.GetTag(GAME_TAG.STEALTH) == 0) ? false : true; m.poisonous = (entitiy.GetTag(GAME_TAG.POISONOUS) == 0) ? false : true; m.immune = (entitiy.GetTag(GAME_TAG.IMMUNE_WHILE_ATTACKING) == 0) ? false : true; m.silenced = (entitiy.GetTag(GAME_TAG.SILENCED) == 0) ? false : true; // Drew: fixed | is the tag removed when silenced, via Mass Dispel? m.cantBeTargetedBySpellsOrHeroPowers = (entitiy.GetTag(GAME_TAG.CANT_BE_TARGETED_BY_HERO_POWERS) == 0) ? false : true; m.charge = 0; if (!m.silenced && m.name == CardDB.cardName.southseadeckhand && entitiy.GetTag(GAME_TAG.CHARGE) == 1) { m.charge = 1; } if (!m.silenced && m.handcard.card.Charge) { m.charge++; } m.zonepos = zp; m.entitiyID = entitiy.EntityId; //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 (HSCard ent in allcards) { if (ent.GetTag(GAME_TAG.ATTACHED) == m.entitiyID && ent.GetTag(GAME_TAG.ZONE) == 1) //1==play { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.Id); int controler = ent.GetTag(GAME_TAG.CONTROLLER); int creator = ent.GetTag(GAME_TAG.CREATOR); enchs.Add(new miniEnch(id, creator, controler)); } } m.loadEnchantments(enchs, entitiy.GetTag(GAME_TAG.CONTROLLER)); m.Ready = false; // if exhausted, he is NOT ready m.updateReadyness(); if (entitiy.GetTag(GAME_TAG.CONTROLLER) == this.ownPlayerController) // OWN minion { m.own = true; this.ownMinions.Add(m); } else { m.own = false; this.enemyMinions.Add(m); } } } }
private void getMinions() { // ALL minions on Playfield: List<HSCard> list = TritonHs.GetCards(CardZone.Battlefield, true); list.AddRange(TritonHs.GetCards(CardZone.Battlefield, false)); var enchantments = new List<HSCard>(); ownMinions.Clear(); enemyMinions.Clear(); List<HSCard> allcards = TritonHs.GetAllCards(); foreach (HSCard entiti in list) { int zp = entiti.GetTag(GAME_TAG.ZONE_POSITION); if (entiti.IsMinion && zp >= 1) { HSCard entitiy = entiti; foreach (HSCard ent in allcards) { if (ent.EntityId == entiti.EntityId) { entitiy = ent; break; } } //Helpfunctions.Instance.ErrorLog("zonepos " + zp); CardDB.Card c = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.Id)); Minion m = new Minion(); m.name = c.name; m.handcard.card = c; m.Angr = entitiy.GetTag(GAME_TAG.ATK); m.maxHp = entitiy.GetTag(GAME_TAG.HEALTH); m.Hp = entitiy.GetTag(GAME_TAG.HEALTH) - entitiy.GetTag(GAME_TAG.DAMAGE); if (m.Hp <= 0) continue; m.wounded = false; if (m.maxHp > m.Hp) m.wounded = true; m.exhausted = (entitiy.GetTag(GAME_TAG.EXHAUSTED) == 0) ? false : true; m.taunt = (entitiy.GetTag(GAME_TAG.TAUNT) == 0) ? false : true; m.numAttacksThisTurn = entitiy.GetTag(GAME_TAG.NUM_ATTACKS_THIS_TURN); int temp = entitiy.GetTag(GAME_TAG.NUM_TURNS_IN_PLAY); m.playedThisTurn = (temp == 0) ? true : false; m.windfury = (entitiy.GetTag(GAME_TAG.WINDFURY) == 0) ? false : true; m.frozen = (entitiy.GetTag(GAME_TAG.FROZEN) == 0) ? false : true; m.divineshild = (entitiy.GetTag(GAME_TAG.DIVINE_SHIELD) == 0) ? false : true; m.stealth = (entitiy.GetTag(GAME_TAG.STEALTH) == 0) ? false : true; m.poisonous = (entitiy.GetTag(GAME_TAG.POISONOUS) == 0) ? false : true; m.immune = (entitiy.GetTag(GAME_TAG.IMMUNE_WHILE_ATTACKING) == 0) ? false : true; m.silenced = (entitiy.GetTag(GAME_TAG.SILENCED) == 0) ? false : true; // Drew: fixed | is the tag removed when silenced, via Mass Dispel? m.cantBeTargetedBySpellsOrHeroPowers = (entitiy.GetTag(GAME_TAG.CANT_BE_TARGETED_BY_HERO_POWERS) == 0) ? false : true; m.charge = 0; m.spellpower = entitiy.GetTag(GAME_TAG.SPELLPOWER); if (!m.silenced && m.name == CardDB.cardName.southseadeckhand && entitiy.GetTag(GAME_TAG.CHARGE) == 1) m.charge = 1; if (!m.silenced && m.handcard.card.Charge) m.charge++; m.zonepos = zp; m.entitiyID = entitiy.EntityId; //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 (HSCard ent in allcards) { if (ent.GetTag(GAME_TAG.ATTACHED) == m.entitiyID && ent.GetTag(GAME_TAG.ZONE) == 1) //1==play { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.Id); int controler = ent.GetTag(GAME_TAG.CONTROLLER); int creator = ent.GetTag(GAME_TAG.CREATOR); enchs.Add(new miniEnch(id, creator, controler)); } } m.loadEnchantments(enchs, entitiy.GetTag(GAME_TAG.CONTROLLER)); m.Ready = false; // if exhausted, he is NOT ready m.updateReadyness(); if (entitiy.GetTag(GAME_TAG.CONTROLLER) == this.ownPlayerController) // OWN minion { m.own = true; this.ownMinions.Add(m); } else { m.own = false; this.enemyMinions.Add(m); } } } }
private void getMinions() { List<HSCard> allEntitys = TritonHs.GetAllCards(); HSCard ownPlayer = TritonHs.CurrentPlayer; HSCard enemyPlayer = TritonHs.RemotePlayer; allEntitys.Add(ownPlayer); allEntitys.Add(enemyPlayer); //TEST.................... /* Helpfunctions.Instance.ErrorLog("# all"); foreach (var item in rangerbot.gameState.GameEntityList) { allEntitys.Add(item.EntityId, item); Helpfunctions.Instance.ErrorLog(item.CardId + " e " + item.EntityId + " a " + item.Attached + " controler " + item.ControllerId + " creator " + item.CreatorId + " zone " + item.Zone + " zp " + item.ZonePosition); List<Entity> ents = item.Attachments; foreach (var item1 in ents) { Helpfunctions.Instance.ErrorLog("#" + item1.CardId + " e " + item1.EntityId + " a " + item1.Attached + " controler " + item1.ControllerId + " creator " + item1.CreatorId + " zone " + item1.Zone); } }*/ ownMinions.Clear(); enemyMinions.Clear(); // ALL minions on Playfield: List<HSCard> list = new List<HSCard>(); foreach (var item in allEntitys) { if (item.GetZone() == Triton.Game.Mapping.TAG_ZONE.PLAY && item.IsMinion && item.ZonePosition >= 1) { list.Add(item); } } List<HSCard> enchantments = new List<HSCard>(); foreach (HSCard item in list) { HSCard entitiy = item; int zp = entitiy.ZonePosition; if (entitiy.IsMinion && zp >= 1) { //Helpfunctions.Instance.ErrorLog("zonepos " + zp); CardDB.Card c = CardDB.Instance.getCardDataFromID(CardDB.Instance.cardIdstringToEnum(entitiy.Id)); Minion m = new Minion(); m.name = c.name; m.handcard.card = c; m.Angr = entitiy.GetTag(GAME_TAG.ATK); m.maxHp = entitiy.GetTag(GAME_TAG.HEALTH); m.Hp = m.maxHp - entitiy.GetTag(GAME_TAG.DAMAGE); if (m.Hp <= 0) continue; m.wounded = false; if (m.maxHp > m.Hp) m.wounded = true; m.exhausted = entitiy.IsExhausted; m.taunt = (entitiy.HasTaunt); m.numAttacksThisTurn = entitiy.GetTag(GAME_TAG.NUM_ATTACKS_THIS_TURN); int temp = entitiy.GetTag(GAME_TAG.NUM_TURNS_IN_PLAY); m.playedThisTurn = (temp == 0) ? true : false; m.windfury = (entitiy.HasWindfury); m.frozen = (entitiy.IsFrozen); m.divineshild = (entitiy.HasDivineShield); m.stealth = (entitiy.IsStealthed); m.poisonous = (entitiy.IsPoisonous); m.immune = (entitiy.IsImmune); m.silenced = entitiy.IsSilenced; m.spellpower = entitiy.GetTag(GAME_TAG.SPELLPOWER); m.charge = 0; if (!m.silenced && m.name == CardDB.cardName.southseadeckhand && entitiy.HasCharge) m.charge = 1; if (!m.silenced && m.handcard.card.Charge) m.charge = 1; if (m.charge == 0 && entitiy.HasCharge) m.charge = 1; m.zonepos = zp; m.entitiyID = entitiy.EntityId; if(m.name == CardDB.cardName.unknown) Helpfunctions.Instance.ErrorLog("unknown card error"); Helpfunctions.Instance.ErrorLog(m.entitiyID + " ." + entitiy.Id + ". " + m.name + " ready params ex: " + m.exhausted + " charge: " + m.charge + " attcksthisturn: " + m.numAttacksThisTurn + " playedthisturn " + m.playedThisTurn); //Helpfunctions.Instance.ErrorLog("spellpower check " + entitiy.SpellPowerAttack + " " + entitiy.SpellPowerHealing + " " + entitiy.SpellPower); List<miniEnch> enchs = new List<miniEnch>(); /*foreach (Entity ent in allEntitys.Values) { if (ent.Attached == m.entitiyID && ent.Zone == HSRangerLib.TAG_ZONE.PLAY) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.CardId); int creator = ent.CreatorId; int controler = ent.ControllerId; enchs.Add(new miniEnch(id, creator, controler)); } }*/ foreach (HSCard ent in item.AttachedCards) { CardDB.cardIDEnum id = CardDB.Instance.cardIdstringToEnum(ent.Id); int creator = ent.CreatorId; int controler = ent.ControllerId; enchs.Add(new miniEnch(id, creator, controler)); } m.loadEnchantments(enchs, entitiy.ControllerId); m.Ready = false; // if exhausted, he is NOT ready m.updateReadyness(); if (entitiy.ControllerId == this.ownPlayerController) // OWN minion { m.own = true; this.ownMinions.Add(m); } else { m.own = false; this.enemyMinions.Add(m); } } // minions added } }