예제 #1
0
        private static bool prevent_locked_apparel_conflict(WITab_Caravan_Gear __instance, ref Pawn p)
        {
            if (__instance == null)
            {
                return(true);
            }
            if (get_dragged_item(__instance) is Apparel dragged_app && p.apparel != null && dragged_app.has_lock())
            {
                foreach (var equipped_app in p.apparel.WornApparel)
                {
                    if (equipped_app.has_lock() && (!ApparelUtility.CanWearTogether(dragged_app.def, equipped_app.def, p.RaceProps.body)))
                    {
                        set_dragged_item(__instance, null);
                        return(false);
                    }
                }
            }

            return(true);
        }
예제 #2
0
 static void MoveDraggedItemToInventory_Postfix(WITab_Caravan_Gear __instance)
 {
     __instance.droppedDraggedItem = false;
     __instance.draggedItem        = null;
 }
예제 #3
0
 static void TryEquipDraggedItem_Postfix(WITab_Caravan_Gear __instance)
 {
     __instance.droppedDraggedItem = false;
     __instance.draggedItem        = null;
 }
예제 #4
0
 private static void set_dragged_item(WITab_Caravan_Gear tab, Thing t)
 {
     typeof(WITab_Caravan_Gear).GetField("draggedItem", xxx.ins_public_or_no).SetValue(tab, t);
 }
예제 #5
0
 private static Thing get_dragged_item(WITab_Caravan_Gear tab)
 {
     return((Thing)typeof(WITab_Caravan_Gear).GetField("draggedItem", xxx.ins_public_or_no).GetValue(tab));
 }