示例#1
0
 void OnPrepareToPerformAttack(Msg.PrepareToPerformAttack m)
 {
     if (_IsFighting && _AttackQueue.Count > 0)
     {
         _LastActiveColor = _AttackQueue[0].Color;
     }
 }
示例#2
0
    void TestForLevelUp()
    {
        List <ActiveAbility> _AllAbilities = new List <ActiveAbility>();

        foreach (var b in _ActiveAbilities)
        {
            if (b.Color != Ability.AbilityColor.Neutral)
            {
                _AllAbilities.Add(b);
            }
        }

        _AllAbilities.Sort(CompareByColorAndLevel);

        if (_AllAbilities.Count <= 0)
        {
            return;
        }

        int counter   = 0;
        int position  = 0;
        int lastLevel = _AllAbilities[0].Level;

        Ability.AbilityColor lastColor = _AllAbilities[0].Color;
        foreach (var b in _AllAbilities)
        {
            if (b.Level != lastLevel || b.Color != lastColor)
            {
                counter   = 1;
                lastColor = b.Color;
                lastLevel = b.Level;
            }
            else
            {
                counter++;
            }

            if (counter >= GameController.Instance.LevelUpAtAbilityC)
            {
                List <ActiveAbility> abilitiesToUpgrade = new List <ActiveAbility>();
                for (int i = 0; i < GameController.Instance.LevelUpAtAbilityC; i++)
                {
                    abilitiesToUpgrade.Add(_AllAbilities[position - i]);
                }

                LevelUp(abilitiesToUpgrade);

                return;
            }

            position++;
        }
    }
    public Color GetColorForAbilityColor(Ability.AbilityColor color)
    {
        foreach (AbilityColorColorContainer c in AbilitiesColors)
        {
            if (color == c.AbilityColor)
            {
                return(c.Color);
            }
        }

        return(Color.white);
    }