예제 #1
0
        static bool Prefix(StarSystem __instance)
        {
            try {
                List <ShopDef> list = new List <ShopDef>();
                foreach (string id in __instance.Sim.DataManager.Shops.Keys)
                {
                    ShopDef shopDef = __instance.Sim.DataManager.Shops.Get(id);
                    if (SimGameState.MeetsTagRequirements(shopDef.RequirementTags, shopDef.ExclusionTags, __instance.Tags, null))
                    {
                        list.Add(shopDef);
                    }
                    else if (Helper.meetsNewReqs(__instance, shopDef.RequirementTags, shopDef.ExclusionTags, __instance.Tags))
                    {
                        list.Add(shopDef);
                    }
                }
                ReflectionHelper.InvokePrivateMethode(__instance, "set_Shop", new object[] { new Shop(__instance, list) });

                return(false);
            }
            catch (Exception e) {
                Logger.LogError(e);
                return(false);
            }
        }
예제 #2
0
 static bool Prefix(StarSystem __instance)
 {
     try {
         List <ShopDef> list = new List <ShopDef>();
         foreach (string id in __instance.Sim.DataManager.Shops.Keys)
         {
             ShopDef shopDef = __instance.Sim.DataManager.Shops.Get(id);
             if (shopDef.RequirementTags.Contains(Fields.ShopFileTag))
             {
                 TagSet filteredRequirements = new TagSet(shopDef.RequirementTags);
                 filteredRequirements.Remove(Fields.ShopFileTag);
                 if (SimGameState.MeetsTagRequirements(filteredRequirements, shopDef.ExclusionTags, __instance.Tags, null))
                 {
                     list.Add(shopDef);
                 }
                 else if (Helper.meetsNewReqs(__instance, filteredRequirements, shopDef.ExclusionTags, __instance.Tags))
                 {
                     list.Add(shopDef);
                 }
             }
         }
         AccessTools.Method(typeof(StarSystem), "set_Shop").Invoke(__instance, new object[] { new Shop(__instance, list) });
         return(false);
     }
     catch (Exception e) {
         Logger.LogError(e);
         return(false);
     }
 }