private static bool Prefix(StoreGui __instance) { string name = Traverse.Create(__instance).Field <Trader>("m_trader").Value.m_name; if (OdinPlus.traderNameList.Contains(name)) { var m_selectedItem = Traverse.Create(__instance).Field <Trader.TradeItem>("m_selectedItem").Value; int stack = Mathf.Min(m_selectedItem.m_stack, m_selectedItem.m_prefab.m_itemData.m_shared.m_maxStackSize); if (m_selectedItem == null || (m_selectedItem.m_price * stack - OdinData.Credits > 0)) { return(false); } int quality = m_selectedItem.m_prefab.m_itemData.m_quality; int variant = m_selectedItem.m_prefab.m_itemData.m_variant; if (Player.m_localPlayer.GetInventory().AddItem(m_selectedItem.m_prefab.name, stack, quality, variant, 0L, "") != null) { OdinData.RemoveCredits(m_selectedItem.m_price * stack); //? __instance.m_buyEffects.Create(__instance.gameObject.transform.position, Quaternion.identity, null, 1f); Player.m_localPlayer.ShowPickupMessage(m_selectedItem.m_prefab.m_itemData, m_selectedItem.m_prefab.m_itemData.m_stack); Traverse.Create(__instance).Method("FillList").GetValue(); Gogan.LogEvent("Game", "BoughtItem", m_selectedItem.m_prefab.name, 0L); } return(false); } return(true); }
public override bool Interact(Humanoid user, bool hold) { if (hold) { return(false); } if (!OdinData.RemoveCredits(Plugin.RaiseCost)) { Say("$op_god_nocrd"); return(false); } user.GetSkills().RaiseSkill(stlist[cskillIndex], Plugin.RaiseFactor); Say("$op_raise"); return(true); }