Ejemplo n.º 1
0
        static bool MerchantPouch_RefreshInventory_Pre(MerchantPouch __instance, ref double ___m_nextRefreshTime)
        {
            #region quit
            if (!_merchantsToggle)
            {
                return(true);
            }
            #endregion

            if (_merchantsMode == ResetMode.Always)
            {
                ___m_nextRefreshTime = 0d;
            }
            else if (_merchantsMode == ResetMode.Never && !__instance.IsEmpty)
            {
                ___m_nextRefreshTime = double.PositiveInfinity;
            }
            else if (_merchantsMode == ResetMode.Timer)
            {
                __instance.InventoryRefreshRate = _merchantsTimer * TIME_UNIT;
                if (___m_nextRefreshTime == double.PositiveInfinity)
                {
                    ___m_nextRefreshTime = GameTime + __instance.InventoryRefreshRate;
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public static bool RefreshInventory(MerchantPouch __instance)
        {
            try
            {
                if (MoreMerchantStock.Settings.AlwaysRefreshStock)
                {
                    FieldInfo nextRefreshTime = AccessTools.Field(typeof(MerchantPouch), "m_nextRefreshTime");
                    nextRefreshTime.SetValue(__instance, EnvironmentConditions.GameTime - 1);
                    //MoreMerchantStock.MyLogger.LogDebug($"nextRefreshTime={nextRefreshTime}");
                }
            }
            catch (Exception ex)
            {
                MoreMerchantStock.MyLogger.LogError(ex.Message);
            }

            return(true);
        }
        public static void Postfix(MerchantPouch __instance, object[] __state)
        {
            if (PhotonNetwork.isNonMasterClientInRoom || !SL_DropTableAddition.s_registeredDropTableSources.Any())
            {
                return;
            }

            if (__state == null || !(bool)__state[0])
            {
                return;
            }

            var merchant = __instance.GetComponentInParent <Merchant>();

            foreach (var dropAddition in SL_DropTableAddition.s_registeredDropTableSources)
            {
                if (dropAddition.IsTargeting(merchant.HolderUID))
                {
                    dropAddition.GenerateItems(__instance.transform);
                }
            }
        }