Esempio n. 1
0
    public float GetPower(UnitSO target)
    {
        float power = 0f;

        if (commandParams.GetSkill() != null)
        {
            if (commandParams.GetSkill().targeting.Equals(SkillTarget.SINGLE_ALLY) ||
                commandParams.GetSkill().targeting.Equals(SkillTarget.MULTIPLE_ALLIES))
            {
                power = commandParams.GetSkill().power;
            }
            else
            {
                power = -commandParams.GetSkill().power;
            }
        }
        else if (commandParams.GetItem().GetType() == typeof(ItemHealingSO))
        {
            power = ((ItemHealingSO)commandParams.GetItem()).power;
        }
        else if (commandParams.GetItem().GetType() == typeof(ItemOffensiveSO))
        {
            var   item     = (ItemOffensiveSO)commandParams.GetItem();
            float modifier = target.elementalWeakness[item.element];
            power = -item.power;
        }

        return(power);
    }
    public override void OnStateEnter()
    {
        bool offensive = false;

        if (commandParams.GetItem() != null)
        {
            offensive = commandParams.GetItem().targeting.Equals(SINGLE_OPPONENT) || commandParams.GetItem().targeting.Equals(MULTIPLE_OPPONENTS);
        }
        else if (commandParams.GetSkill() != null)
        {
            offensive = commandParams.GetSkill().targeting.Equals(SINGLE_OPPONENT) || commandParams.GetSkill().targeting.Equals(MULTIPLE_OPPONENTS);
        }
        else
        {
            throw new System.Exception("SelectOneTargetState couldn't infer offensive intention of skill/item.");
        }
        targetSelector.Show(UnitUtil.GetUnitsFor(commandParams.GetSubject(), base.owner.allUnits, offensive));
        targetSelector.OnTargetClicked += Next;
        base.owner.UpdateDialogueText("Choose a target.");
    }
Esempio n. 3
0
    public override void Tick()
    {
        if (timer.Progress())
        {
            if (commandParams.GetSkill() != null)
            {
                ExecuteSkill();
                // Consume mana/energy
                UnitUtil.SubstractMana(commandParams.GetSubject(), commandParams.GetSkill());
            }
            else if (commandParams.GetItem() != null)
            {
                ExecuteItem();
                // Consume item
                UnitUtil.ConsumeItem(owner.GetInventory(), commandParams.GetItem());
            }


            owner.ChangeState(new ApplyBurnState(base.owner));
        }
    }