/// <summary> /// Verifica se a habilidade esta em coold down /// </summary> /// <returns><c>true</c>, if cool down was checked, <c>false</c> otherwise.</returns> /// <param name="skillID_">Skill I d.</param> public bool CheckCoolDown(DPADController assignedSkillId) { if (!SkillCoolDownTable.ContainsKey((int)AssignedSkills[assignedSkillId].SkillID)) return true; if (ApplicationModel.Instance.GlobalTime > SkillCoolDownTable[(int)AssignedSkills[assignedSkillId].SkillID]) { SkillCoolDownTable.Remove((int)AssignedSkills[assignedSkillId].SkillID); if (currentSkillBase != null) { currentSkillBase.ReturnToPool(); } return true; } return false; }
/// <summary> /// Metodo responsavel por retornar uma skill a partir do DPad selecionado /// </summary> /// <returns>The skill by command.</returns> /// <param name="dpadController_">Dpad controller.</param> public SkillBase GetSkillByCommand(DPADController dpadController_) { return AssignedSkills[dpadController_]; }
public void PerformSkill(DPADController dpadController_) { SkillBase _assignedSkill = AssignedSkills[dpadController_]; if (_assignedSkill != null) { if (CheckCoolDown(dpadController_)) { string _message = null; // A partir daqui a skill temporaria do pool SkillBase _pooledSkill = (SkillBase)_assignedSkill.Pool.GetFromPool(); if (_pooledSkill != null) { _pooledSkill.Caster = myPlayer; // TODO CHANGE if (_pooledSkill.CastCheck(out _message)) { currentSkillBase = _pooledSkill; _pooledSkill.SpawnSkill(); skillon = true; this.SetCoolDown((int)_assignedSkill.SkillID, _assignedSkill.CoolDown); if (currentSkillBase.SkillBehaviour != SkillBehaviourEnum.Aura) { currentSkillBase = null; } } } } else { // Skill em cooldown } } }
/// <summary> /// Metodo responsavel por associar uma skill ao comando do DPAD /// </summary> /// <param name="dpadController_">Dpad controller.</param> /// <param name="spellBase_">Spell base.</param> public void AssignSkillToDPad(DPADController dpadController_, SkillBase spellBase_) { AssignedSkills[dpadController_] = spellBase_; }