Beispiel #1
0
        public void UseSpell(SpellCard spell)
        {
            //Check if this card is available. If it can't be used, return
            if (!spell.CanUseCard())
            {
                return;
            }
            CreatureCard targetCard = null;
            //Ray cast target Instance
            PhysicalAttribute targetInst = Setting.RayCastCard(spell.PhysicalCondition);

            if (targetInst)
            {
                if (targetInst.OriginCard is CreatureCard)
                {
                    targetCard = (CreatureCard)targetInst.OriginCard;
                }
            }
            else
            {
                return;
            }

            //Based on Spell Card type, run it's spell to card.
            //How to build that logic?

            switch (spell.GetType)
            {
            //Modify Target Card stats
            case SpellType.Attack:
                targetCard.CreatureData.ModifyHealth = -(spell._HealthChange);
                break;

            case SpellType.Debuff:
                targetCard.CreatureData.ModifyAttack = -(spell._AttackChange);
                targetCard.CreatureData.ModifyHealth = -(spell._HealthChange);
                break;

            case SpellType.Buff:
                targetCard.CreatureData.ModifyAttack = spell._AttackChange;
                targetCard.CreatureData.ModifyHealth = spell._HealthChange;
                break;

            default:
                Debug.LogError("This Spell don't have any type");
                break;
            }
        }