Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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;
    }