コード例 #1
0
 public void UpdateAbilityLevel(int level)
 {
     abilityLevel = level;
     if (LinkedAbility != null)
     {
         LinkedAbility.UpdateAbilityLevel(level);
     }
 }
コード例 #2
0
    public virtual void UpdateAbilityStats(EnemyData data)
    {
        IsUsable = true;
        IEnumerable <GroupType> tags = data.GroupTypes.Union(abilityBase.GetGroupTypes());

        UpdateAbilityBonusProperties(tags);
        UpdateDamage(data, abilityBase.damageLevels, tags);
        UpdateTypeParameters(data, tags);
        UpdateShotParameters(data, tags);
        UpdateOnHitDataBonuses(data, tags);
        UpdateAbilityBuffData(data, tags);

        if (abilityCollider != null)
        {
            abilityCollider.abilityCollider.radius = TargetRange;
        }
        if (LinkedAbility != null)
        {
            LinkedAbility.UpdateAbilityStats(data, tags);
        }
    }
コード例 #3
0
    public virtual void UpdateAbilityStats(HeroData data)
    {
        IEnumerable <GroupType> tags = data.GroupTypes.Union(abilityBase.GetGroupTypes());

        if (abilityBase.requiredRestrictions.Count > 0)
        {
            if (tags.Intersect(abilityBase.requiredRestrictions).Count() != abilityBase.requiredRestrictions.Count)
            {
                IsUsable = false;
                return;
            }
        }

        if (abilityBase.singleRequireRestrictions.Count > 0)
        {
            if (!tags.Intersect(abilityBase.singleRequireRestrictions).Any())
            {
                IsUsable = false;
                return;
            }
        }

        IsUsable = true;

        UpdateAbilityBonusProperties(tags);
        UpdateDamage(data, abilityBase.damageLevels, tags);
        UpdateTypeParameters(data, tags);
        UpdateShotParameters(data, tags);
        UpdateOnHitDataBonuses(data, tags);
        UpdateAbilityBuffData(data, tags);

        if (abilityCollider != null)
        {
            abilityCollider.abilityCollider.radius = TargetRange;
        }
        if (LinkedAbility != null)
        {
            LinkedAbility.UpdateAbilityStats(data, tags);
        }
    }