public static bool CanDoRole(this Pawn pawn, CombatRole role)
        {
            CompInventory comp = pawn.TryGetComp <CompInventory>();

            if (comp == null)
            {
                return(false);
            }
            switch (role)
            {
            default:
                return(false);

            case CombatRole.Melee:
                return(CanBeMelee(pawn, comp));

            case CombatRole.Assault:
                return(CanBeAssault(pawn, comp));

            case CombatRole.Sniper:
                return(CanBeSniper(pawn, comp));

            case CombatRole.Suppressor:
                return(CanBeSuppressor(pawn, comp));

            case CombatRole.Grenadier:
                return(CanBeGrenadier(pawn, comp));

            case CombatRole.Rocketeer:
                return(CanBeRocketeer(pawn, comp));
            }
        }
Exemplo n.º 2
0
        private void GetCombatRole()
        {
            int[] rolls = new int[Enum.GetValues(typeof(CombatRole)).Length];
            for (int i = 1; i < rolls.Length; i++)
            {
                rolls[i] = Program.rng.Next(1, 101);
            }
            //Stat var
            rolls[1] += stats.GetINT();
            rolls[2] += stats.GetSTR();
            //Get Highest roll
            int c = 0;

            for (int j = 0; j < rolls.Length; j++)
            {
                if (rolls[j] > rolls[c])
                {
                    c = j;
                }
            }
            //Apply new role
            role = (CombatRole)c;
            string[] avPerks = null;
            switch (role)
            {
            case CombatRole.Healer:
                abilities.Add(Ability.Load("Healing Spore", Math.Min(level, 40)));
                avPerks = new[] { "Adrenaline", "Energizing Touch",
                                  "Adaptation", };

                stats.intelligence += 3;
                break;

            case CombatRole.Fighter:
                abilities.Add(Ability.Load("Execute", Math.Min(level / 2, 25)));
                avPerks = new[] { "Unstoppable Force", "Precision Enhancement",
                                  "Fighting Spirit" };

                stats.strength += 3;
                break;
            }
            if (avPerks != null)
            {
                perks.Add(PerkLoad.Load(Utils.RandomElement(avPerks)));
            }
        }