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); }
public static bool SetProfession_Prefix(ProfessionManager __instance, ProfessionType type, HumanAI human) { __instance.SetPriority(type, MaxPriority, human); return(false); }