private void InvokeSkill(int hotbarIndex) { var skillId = skills[hotbarIndex]; // <- alpha 1 => array entry 0 // 0 is skill 10 if (skillId == SkillId.None) { return; } if (nextSkillAvailabilityTime[hotbarIndex] > Time.time) { return; } var skill = SkillDictionary.GetSkill(skillId); skill.Execute(this); nextSkillAvailabilityTime[hotbarIndex] = Time.time + skill.Cooldown; OnSkillUsed?.Invoke(skillId, hotbarIndex, skill.Cooldown); }
private void OnBlockSelected(Block selectedBlock) { var size = Physics2D.OverlapCircleNonAlloc(selectedBlock.transform.position, explosionRadius, _results); _hitBlocks.Clear(); for (int i = 0; i < size; i++) { var c = _results[i]; var block = c.GetComponent <Block>(); if (!block) { continue; } _hitBlocks.Add(block); } _hitBlocks.Add(selectedBlock); OnSkillUsed?.Invoke(_hitBlocks); Block.OnBlockSelected -= OnBlockSelected; }