//////////////// public int CountShopItems() { var mymod = (RewardsMod)this.mod; ShopPackDefinition[] defs = ShopPackDefinition.GetValidatedLoadout(false); return(defs.Length); }
private void ReceiveMe(Player player) { var mymod = RewardsMod.Instance; var myworld = ModContent.GetInstance <RewardsWorld>(); KillData data = myworld.Logic.GetPlayerData(player); if (data == null) { throw new ModHelpersException("No player data for " + player.name); } if (!data.Spend((int)this.Pack.Price, player)) { LogHelpers.Warn("Not enough PP. PP out of sync."); //return; // TODO: Add validation of purchases } Item[] items = ShopPackDefinition.OpenPack(player, this.Pack); foreach (var hook in RewardsMod.Instance.OnPointsSpentHooks) { hook(player, this.Pack.Name, this.Pack.Price, items); } if (mymod.SettingsConfig.DebugModeInfo) { LogHelpers.Alert("Purchase made for " + player.name + " of " + this.Pack.Name + " (" + this.Pack.Price + ")"); } }
public static void ShopAddPack(ShopPackDefinition pack) { var mymod = RewardsMod.Instance; string fail; if (!pack.Validate(out fail)) { throw new ModHelpersException("Invalid shop pack by name " + pack.Name + " (" + fail + ")"); } mymod.ShopConfig.ShopLoadout.Add(pack); }
//////////////// public override void SetupShop(Chest shop, ref int nextSlot) { var mymod = (RewardsMod)this.mod; int shopStart = WayfarerTownNPC.CurrentShop * 40; ShopPackDefinition[] defs = ShopPackDefinition.GetValidatedLoadout(true); for (int i = shopStart; i < defs.Length; i++) { if (nextSlot >= 40) { break; } shop.item[nextSlot++] = ShopPackItem.CreateItem(defs[i]); } }
public static ShopPackDefinition ShopRemoveLastPack() { var mymod = RewardsMod.Instance; IList <ShopPackDefinition> shop = mymod.ShopConfig.ShopLoadout; int last = shop.Count - 1; ShopPackDefinition def = null; string _; for (int i = last; i >= 0; i--) { if (!shop[i].Validate(out _) || !shop[i].RequirementsMet()) { continue; } def = shop[i]; shop.RemoveAt(i); break; } return(def); }
private void LoadLicensePacks() { var licDef = new ShopPackItemDefinition( new ItemDefinition( ModContent.ItemType<LicenseItem>() ), LicensesMod.Config.LicensesPerPack, null ); var wildLicDef = new ShopPackItemDefinition( new ItemDefinition( ModContent.ItemType<WildcardLicenseItem>() ), LicensesMod.Config.WildcardLicensesPerPack, null ); var def1 = new ShopPackDefinition( null, "Standard License Pack", LicensesMod.Config.LicensePackCostInPP, new List<ShopPackItemDefinition> { licDef } ); var def2 = new ShopPackDefinition( null, "Wildcard License Pack", LicensesMod.Config.WildcardLicensePackCostInPP, new List<ShopPackItemDefinition> { wildLicDef } ); if( LicensesMod.Config.ResetWayfarerShop ) { RewardsAPI.ShopClear(); } if( LicensesMod.Config.LicensesPerPack > 0 ) { RewardsAPI.ShopAddPack( def1 ); } if( LicensesMod.Config.WildcardLicensesPerPack > 0 ) { RewardsAPI.ShopAddPack( def2); } }
private PackPurchaseProtocol(ShopPackDefinition pack) { this.Pack = pack; }
public static void SendSpendToServer(ShopPackDefinition pack) { var protocol = new PackPurchaseProtocol(pack); protocol.SendToServer(false); }