Example #1
0
    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);
    }
Example #3
0
    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);
    }
Example #4
0
    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;
    }
Example #5
0
    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);
    }
Example #6
0
    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);
            }
        }
    }
Example #7
0
    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);
    }
Example #8
0
    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;
        }
    }
Example #9
0
 public virtual void UpdateEntity(EntityExt entityExt)
 {
     _entityExt = entityExt;
 }
Example #10
0
    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);
    }