Exemple #1
0
        internal static void SaveCurrentState(List <Pawn> pawns)
        {
            int currentMap = Find.CurrentMap.uniqueID;

            //Save current state
            foreach (Pawn p in pawns)
            {
                //find colonist on the current zone in the current map
                AssignLink link = AssignManager.links.Find(
                    x => p.Equals(x.colonist) &&
                    x.zone == AssignManager.GetActivePolicy().id&&
                    x.mapId == currentMap);

                if (link != null)
                {
                    //colonist found! save
                    link.outfit            = p.outfits.CurrentOutfit;
                    link.drugPolicy        = p.drugs.CurrentPolicy;
                    link.hostilityResponse =
                        p.playerSettings.hostilityResponse;
                    link.foodPolicy = p.foodRestriction.CurrentFoodRestriction;
                    if (Widget_CombatExtended.CombatExtendedAvailable)
                    {
                        link.loadoutId = Widget_CombatExtended.GetLoadoutId(p);
                    }
                }
                else
                {
                    //colonist not found. So add it to the AssignLink list
                    int loadoutId = 0;
                    if (Widget_CombatExtended.CombatExtendedAvailable)
                    {
                        loadoutId = Widget_CombatExtended.GetLoadoutId(p);
                    }

                    Outfit outfit = p.outfits.CurrentOutfit;
                    if (outfit ==
                        Current.Game.outfitDatabase.DefaultOutfit())
                    {
                        outfit = AssignManager.DefaultOutfit;
                    }

                    DrugPolicy drug = p.drugs.CurrentPolicy;
                    if (drug ==
                        Current.Game.drugPolicyDatabase.DefaultDrugPolicy())
                    {
                        drug = AssignManager.DefaultDrugPolicy;
                    }

                    FoodRestriction food = p.foodRestriction.CurrentFoodRestriction;
                    if (food ==
                        Current.Game.foodRestrictionDatabase.DefaultFoodRestriction())
                    {
                        food = AssignManager.DefaultFoodPolicy;
                    }

                    AssignManager.links.Add(
                        new AssignLink(
                            AssignManager.GetActivePolicy().id,
                            p,
                            outfit,
                            food,
                            drug,
                            p.playerSettings.hostilityResponse,
                            loadoutId,
                            currentMap));
                }
            }
        }
Exemple #2
0
 static TaggedString asText(this FoodRestriction restriction)
 {
     return(restriction == null ? "AnimalControlsDefault".Translate() : (TaggedString)restriction.label);
 }
Exemple #3
0
 public LoadRestrictionDialog(string type, FoodRestriction restriction) : base(type)
 {
     Restriction = restriction;
 }
Exemple #4
0
 public Dialog_ManageFoodRestrictions_(FoodRestriction selectedFoodRestriction) : base(selectedFoodRestriction)
 {
 }
 public static bool Prefix(ref FoodRestriction __result, FoodRestrictionDatabase __instance, ref List <FoodRestriction> ___foodRestrictions)
 {
     FixFoodRestruction(__instance, ref __result, ref ___foodRestrictions);
     return(false);
 }
 private static void SetSelectedRestriction(Dialog_ManageFoodRestrictions dialog, FoodRestriction selectedRestriction)
 {
     typeof(Dialog_ManageFoodRestrictions).GetProperty("SelectedFoodRestriction", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty).SetValue(dialog, selectedRestriction, null);
 }
Exemple #7
0
 static void Postfix(ref FoodRestriction __result)
 {
     __result.filter.SetAllow(AnimalControlsDefOf.Plants, true, null, null);
 }
        public void GetObjectData(object obj, SerializationInfo info, StreamingContext context)
        {
            FoodRestriction fs = (FoodRestriction)obj;

            info.AddValue("food_restr_id", fs.id);
        }