Exemple #1
0
        public static bool SetPriority_Prefix(ProfessionManager __instance, ProfessionType type, int priority, HumanAI human)
        {
            priority = Mathf.Clamp(priority, 0, MaxPriority);
            if (!__instance.CanHaveProfession(human))
            {
                return(false);
            }

            __instance.professions[type].SetPriorityDirectly(priority);

            // only one at max priority
            if (priority == MaxPriority && type != ProfessionType.Builder)
            {
                foreach (Profession profession in __instance.professions.Values)
                {
                    if (profession.type != type && profession.type != ProfessionType.Builder && profession.priority == MaxPriority)
                    {
                        __instance.SetPriority(profession.type, MaxPriority - 1, human);
                    }
                }
            }

            // cancel work
            if (priority == 0)
            {
                human.AbortInteractionsWhere(x => ProfessionManager.workInteractions[type].Contains(x.interaction));
            }

            // tutorial
            WorldScripts.Instance.tutorialManager.HasAssignedProfession();
            return(false);
        }
Exemple #2
0
 public static bool SetProfession_Prefix(ProfessionManager __instance, ProfessionType type, HumanAI human)
 {
     __instance.SetPriority(type, MaxPriority, human);
     return(false);
 }