private Ability.Ability SetEachPower(string tag, GameObject power, int capacity, float timer, float cooldown) { Ability.Ability abilityAux = power.GetComponent <Ability.Ability>(); abilityAux.setTag(tag); abilityAux.setAbility(power); abilityAux.setSize(capacity); abilityAux.setTimer(timer); abilityAux.setCast(true); abilityAux.setCoolDown(cooldown); return(abilityAux); }
private IEnumerator AbilityCooldown(Ability.Ability abilityComponent) { yield return(new WaitForSeconds(abilityComponent.getCooldown())); abilityComponent.setCast(true); }
private void CastAbility(string tag, int num) { GameObject abilityToSpawn; abilityToSpawn = spawnAbility(tag); Ability.Ability abilityComponent = abilityToSpawn.GetComponent <Ability.Ability>(); if (abilityComponent.isCast()) { if (!(_powerNum == 1 && _hit)) { abilityToSpawn.SetActive(false); } if (transform.position.x < _abilityPos.x) { _spriteRenderer.flipX = false; } else { _spriteRenderer.flipX = true; } StartCoroutine(AbilityCooldown(abilityComponent)); if (tag == "Shuriken") { abilityComponent.abilityUtility(abilityToSpawn, _abilityPos, transform.position, _maxAbilityRange); } else { abilityComponent.abilityUtility(abilityToSpawn, _abilityPos, transform.position, _maxAbilityRange); } /*_actualTime = Time.timeSinceLevelLoad; * * _auxList = _allAbilitiesCooldowns[_powerNum]; * * float auxDate = Time.timeSinceLevelLoad; * * if (num == 0) * { * int auxValue = 0; * * for (int i = 0; i < _auxList.Count - 1; i++) * { * if (_auxList[i] < auxDate) * { * auxDate = _auxList[i]; * auxValue = i; * } * } * * _auxList[auxValue] = _actualTime; * * } * else * { * _auxList[_auxList.Count - 1] = _actualTime; * } * * _auxSpecificAbilityList = _cooldownActiveAbility.UpdateCooldown( * _allAbilitiesCooldowns[_powerNum], _abilities[_powerNum][0].getSize(), * _abilities[_powerNum][0].getCooldown(), _abilities[_powerNum][1].getCooldown(), true); * * for (int i = 0; i < _auxSpecificAbilityList.Count; i++) * { * _allAbilitiesCooldowns[_powerNum][i] = _auxSpecificAbilityList[i]; * }*/ if (abilityComponent.getTimer() > 0 && !tag.Equals("SuperRock")) { StartCoroutine(AbilityDisappear(abilityComponent.getTimer(), abilityToSpawn)); } } }
/// <summary> /// 设置当前发动的技能 /// </summary> /// <param name="self"></param> /// <param name="ability"></param> public static void SetSpellingAbility(this GameplayTool self, Ability.Ability ability) { Info.SpellingAbility = ability; }