internal void Generate(EntityExt entity) { Zone zone = (Zone)entity.Tags[GameTag.ZONE]; if (zone == Zone.DECK) { Show(false); } else { ShowEntity(entity); } }
public override void UpdateEntity(EntityExt entity) { base.UpdateEntity(entity); var front = transform.Find("Front"); var frame = front.Find("Frame"); mana = frame.Find("Mana").GetComponent <TextMeshProUGUI>(); mana.text = entity.Tags[GameTag.COST].ToString(); var exhausted = front.Find("Exhausted"); exhausted.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.EXHAUSTED) && entity.Tags[GameTag.EXHAUSTED] == 1); }
public override void UpdateEntity(EntityExt entity) { base.UpdateEntity(entity); var front = transform.Find("Front"); var frame = front.Find("Frame"); var attackFrameTrans = frame.Find("AttackFrame"); attackFrame = attackFrameTrans.gameObject; attack = attackFrameTrans.Find("Attack").GetComponent <TextMeshProUGUI>(); attackFrame.SetActive(entity.Tags[GameTag.ATK] > 0); attack.text = entity.Tags[GameTag.ATK].ToString(); var health = frame.Find("Health"); health.GetComponent <TextMeshProUGUI>().text = entity.Health.ToString(); health.GetComponent <TextMeshProUGUI>().color = entity.HealthColor; var armorFrameTrans = frame.Find("ArmorFrame"); armorFrame = armorFrameTrans.gameObject; armor = armorFrameTrans.Find("Armor").GetComponent <TextMeshProUGUI>(); if (entity.Tags.ContainsKey(GameTag.ARMOR) && entity.Tags[GameTag.ARMOR] > 0) { armor.text = entity.Tags[GameTag.ARMOR].ToString(); armorFrame.SetActive(true); } else { armorFrame.SetActive(false); } frozen = frame.Find("Frozen").gameObject; frozen.SetActive(entity.Tags.ContainsKey(GameTag.FROZEN) && entity.Tags[GameTag.FROZEN] > 0); immune = frame.Find("Immune").gameObject; immune.SetActive(entity.Tags.ContainsKey(GameTag.IMMUNE) && entity.Tags[GameTag.IMMUNE] > 0); quest = frame.Find("Quest").gameObject; quest.SetActive(false); var exhausted = frame.Find("Exhausted"); exhausted.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.EXHAUSTED) && entity.Tags[GameTag.EXHAUSTED] == 1); dead = frame.Find("Dead").gameObject; dead.SetActive(entity.Tags[GameTag.TO_BE_DESTROYED] == 1); }
public override void UpdateEntity(EntityExt entity) { base.UpdateEntity(entity); var front = transform.Find("Front"); var frame = front.Find("Frame"); var attack = frame.Find("Attack"); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); var health = frame.Find("Health"); health.GetComponent <TextMeshProUGUI>().text = entity.Durability.ToString(); health.GetComponent <TextMeshProUGUI>().color = entity.DurabilityColor; }
public void Generate(EntityExt entity) { var front = transform.Find("Front"); var artMask = front.Find("ArtMask"); artMask.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/hero_mask"); var art = artMask.Find("Art"); if (TexturesUtil.GetArtFromResource(entity.CardId, out Texture2D artTexture)) { art.GetComponent <Image>().sprite = Sprite.Create(artTexture, new Rect(0, 0, artTexture.width, artTexture.height), new Vector2(0, 0)); } else { StartCoroutine(TexturesUtil.GetTexture(entity.CardId, art)); } UpdateEntity(entity); }
internal void Update(EntityExt entityExt) { int res = entityExt.Tags[GameTag.RESOURCES]; int tmp = entityExt.Tags.ContainsKey(GameTag.TEMP_RESOURCES) ? entityExt.Tags[GameTag.TEMP_RESOURCES] : 0; int use = entityExt.Tags.ContainsKey(GameTag.RESOURCES_USED) ? entityExt.Tags[GameTag.RESOURCES_USED] : 0; manaCurrent.text = (res + tmp - use).ToString(); manaMax.text = (res + tmp).ToString(); while (manaCrystals.Count != res + tmp) { if (manaCrystals.Count < res + tmp) { var crystal = Instantiate(ManaCrystalPrefab, manaBar); manaCrystals.Add(crystal); crystal.transform.GetComponent <ManaCrystalGen>().SetState(ManaCrystalState.EMPTY); } else if (manaCrystals.Count > res + tmp) { var crystal = manaCrystals[manaCrystals.Count - 1]; manaCrystals.Remove(crystal); Destroy(crystal); } } for (int i = 0; i < manaCrystals.Count; i++) { //Debug.Log($"{i}: {i + 1} <= {res + tmp - use} ??? {i + 1 <= res + tmp - use}"); if (i + 1 <= res + tmp - use) { //Debug.Log($"Full Crystal {i}"); manaCrystals[i].transform.GetComponent <ManaCrystalGen>().SetState(ManaCrystalState.FULL); } else { manaCrystals[i].transform.GetComponent <ManaCrystalGen>().SetState(ManaCrystalState.EMPTY); } } }
internal void ShowEntity(EntityExt entity) { CardType cardType = (CardType)entity.Tags[GameTag.CARDTYPE]; CardClass cardClass = entity.Tags.ContainsKey(GameTag.CLASS) ? (CardClass)entity.Tags[GameTag.CLASS] : CardClass.NEUTRAL; var front = transform.Find("Front"); var artMask = front.Find("ArtMask"); artMask.GetComponent <Image>().sprite = GetArtMaskSpirite(cardType); var art = artMask.Find("Art"); if (TexturesUtil.GetArtFromResource(entity.CardId, out Texture2D artTexture)) { art.GetComponent <Image>().sprite = Sprite.Create(artTexture, new Rect(0, 0, artTexture.width, artTexture.height), new Vector2(0, 0)); } else { StartCoroutine(TexturesUtil.GetTexture(entity.CardId, art)); } var legendary = front.Find("Legendary"); var frame = front.Find("Frame"); frame.GetComponent <Image>().sprite = GetFrameSprite(cardType, cardClass); legendary.gameObject.SetActive((Rarity)entity.Tags[GameTag.RARITY] == Rarity.LEGENDARY); legendary.GetComponent <Image>().sprite = GetLegendarySprite(cardType); var name = frame.Find("Name"); name.GetComponent <TextMeshProUGUI>().text = entity.Name; var description = frame.Find("Description"); description.GetComponent <TextMeshProUGUI>().text = entity.Description; var mana = frame.Find("Mana"); var attack = frame.Find("Attack"); var health = frame.Find("Health"); switch (cardType) { case CardType.INVALID: break; case CardType.GAME: break; case CardType.PLAYER: break; case CardType.HERO: health.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.HEALTH].ToString(); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); break; case CardType.MINION: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); health.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.HEALTH].ToString(); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); break; case CardType.SPELL: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); health.gameObject.SetActive(false); attack.gameObject.SetActive(false); break; case CardType.ENCHANTMENT: break; case CardType.WEAPON: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); health.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.DURABILITY].ToString(); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); description.GetComponent <TextMeshProUGUI>().color = Color.white; break; case CardType.ITEM: break; case CardType.TOKEN: break; case CardType.HERO_POWER: break; } // set to visible Show(true); }
public override void UpdateEntity(EntityExt entity) { base.UpdateEntity(entity); CardType cardType = (CardType)entity.Tags[GameTag.CARDTYPE]; var front = transform.Find("Front"); var frame = front.Find("Frame"); var mana = frame.Find("Mana"); var attack = frame.Find("Attack"); var health = frame.Find("Health"); var originCost = entity.Origin.ContainsKey(GameTag.COST) ? entity.Origin[GameTag.COST] : 0; switch (cardType) { case CardType.INVALID: break; case CardType.GAME: break; case CardType.PLAYER: break; case CardType.HERO: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); mana.GetComponent <TextMeshProUGUI>().color = originCost > entity.Tags[GameTag.COST] ? Color.green : originCost < entity.Tags[GameTag.COST] ? Color.red : Color.white; health.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.HEALTH].ToString(); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); break; case CardType.MINION: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); mana.GetComponent <TextMeshProUGUI>().color = originCost > entity.Tags[GameTag.COST] ? Color.green : originCost < entity.Tags[GameTag.COST] ? Color.red : Color.white; health.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.HEALTH].ToString(); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); break; case CardType.SPELL: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); mana.GetComponent <TextMeshProUGUI>().color = originCost > entity.Tags[GameTag.COST] ? Color.green : originCost < entity.Tags[GameTag.COST] ? Color.red : Color.white; health.gameObject.SetActive(false); attack.gameObject.SetActive(false); break; case CardType.ENCHANTMENT: break; case CardType.WEAPON: mana.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.COST].ToString(); mana.GetComponent <TextMeshProUGUI>().color = originCost > entity.Tags[GameTag.COST] ? Color.green : originCost < entity.Tags[GameTag.COST] ? Color.red : Color.white; health.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.DURABILITY].ToString(); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); break; case CardType.ITEM: break; case CardType.TOKEN: break; case CardType.HERO_POWER: break; } }
public virtual void UpdateEntity(EntityExt entityExt) { _entityExt = entityExt; }
public override void UpdateEntity(EntityExt entity) { base.UpdateEntity(entity); var front = transform.Find("Front"); var frame = front.Find("Frame"); // TODO add effect for buff and debuff var isBuffed = false; var isDeBuffed = false; var attack = frame.Find("Attack"); attack.GetComponent <TextMeshProUGUI>().text = entity.Tags[GameTag.ATK].ToString(); var originAttack = entity.Origin.ContainsKey(GameTag.ATK) ? entity.Origin[GameTag.ATK] : 0; attack.GetComponent <TextMeshProUGUI>().color = originAttack < entity.Tags[GameTag.ATK] ? Color.green : Color.white; var health = frame.Find("Health"); health.GetComponent <TextMeshProUGUI>().text = entity.Health.ToString(); var originHealth = entity.Origin.ContainsKey(GameTag.HEALTH) ? entity.Origin[GameTag.HEALTH] : 0; health.GetComponent <TextMeshProUGUI>().color = entity.Tags[GameTag.DAMAGE] > 0 ? Color.red : originHealth < entity.Tags[GameTag.HEALTH] ? Color.green : Color.white; //health.GetComponent<TextMeshProUGUI>().color = entity.HealthColor; var taunt = front.Find("Taunt"); taunt.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.TAUNT) && entity.Tags[GameTag.TAUNT] == 1); var legendary = front.Find("Legendary"); legendary.gameObject.SetActive((Rarity)entity.Tags[GameTag.RARITY] == Rarity.LEGENDARY); var buffed = front.Find("Buffed"); buffed.gameObject.SetActive(false); var divineShield = front.Find("DivineShield"); divineShield.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.DIVINE_SHIELD) && entity.Tags[GameTag.DIVINE_SHIELD] == 1); var enraged = front.Find("Enraged"); enraged.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.ENRAGED) && entity.Tags[GameTag.ENRAGED] == 1); var frozen = front.Find("Frozen"); frozen.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.FROZEN) && entity.Tags[GameTag.FROZEN] == 1); var immune = front.Find("Immune"); immune.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.IMMUNE) && entity.Tags[GameTag.IMMUNE] == 1); var silenced = front.Find("Silenced"); silenced.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.SILENCED) && entity.Tags[GameTag.SILENCED] == 1); var stealth = front.Find("Stealth"); stealth.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.STEALTH) && entity.Tags[GameTag.STEALTH] == 1); var untargetable = front.Find("Untargetable"); untargetable.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.UNTOUCHABLE) && entity.Tags[GameTag.UNTOUCHABLE] == 1); var exhausted = front.Find("Exhausted"); exhausted.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.EXHAUSTED) && entity.Tags[GameTag.EXHAUSTED] == 1); var dead = front.Find("Dead"); dead.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.TO_BE_DESTROYED) && entity.Tags[GameTag.TO_BE_DESTROYED] == 1); var deathrattle = frame.Find("Deathrattle"); deathrattle.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.DEATHRATTLE) && entity.Tags[GameTag.DEATHRATTLE] == 1); var inspire = frame.Find("Inspire"); inspire.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.INSPIRE) && entity.Tags[GameTag.INSPIRE] == 1); var poisonous = frame.Find("Poisonous"); poisonous.gameObject.SetActive(entity.Tags.ContainsKey(GameTag.POISONOUS) && entity.Tags[GameTag.POISONOUS] == 1); var trigger = frame.Find("Trigger"); trigger.gameObject.SetActive(false); }