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."); }
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)); } }