コード例 #1
0
ファイル: BaseSkill.cs プロジェクト: meatRay/Skills
    /// <summary>
    ///	Does the unit meet the vocation requirements?
    /// </summary>
    /// <param name="unit"> Unit required.</param>
    /// <param name="requiredVocation"> The required vocation for the current skill.</param>
    private static bool VocationRequirements(Unit unit, ScriptableObjectReference requiredVocation)
    {
        VocationBaseData primaryVocation   = unit.primaryVocation;
        VocationBaseData secondaryVocation = unit.secondaryVocation;

        bool primaryVocationMet   = CheckVocation(unit, requiredVocation, primaryVocation);
        bool secondaryVocationMet = CheckVocation(unit, requiredVocation, secondaryVocation);

        int requiredVocationLength = requiredVocation.values.Length;

        switch (requiredVocationLength)
        {
        // if there is only one requirement if either of the primary vocations meet the requirement then return true.
        case 1:
            if (primaryVocationMet || secondaryVocationMet)
            {
                return(true);
            }

            break;

        default:
            if (primaryVocationMet && secondaryVocationMet)
            {
                return(true);
            }
            break;
        }
        Debug.Log($"{unit.name} has not met the requirements");
        return(false);
    }
コード例 #2
0
ファイル: BaseSkill.cs プロジェクト: DiamondGrape/Skills
    /// <summary>
    ///	Does one of the units vocations equal to one of the required vocations?
    /// </summary>
    /// <param name="unit"> Unit required.</param>
    /// <param name="requiredVocation"> The required vocation for the current skill.</param>
    /// <param name="unitVocation"> Units vocation being checked.</param>
    private static bool CheckVocation(Unit unit, ScriptableObjectReference requiredVocation, VocationBaseData unitVocation)
    {
        string vocationName           = unitVocation.Name;
        int    requiredVocationLength = requiredVocation.values.Length;

        for (int i = 0; i < requiredVocationLength; i++)
        {
            string requiredVocationName = requiredVocation.values[i].name;

            if (vocationName == requiredVocationName)
            {
                Debug.Log($"{unit.name} has met the requirements vocation requirement:{requiredVocationName}.");
                return(true);
            }
            continue;
        }
        return(false);
    }