public void RemoveFromFundsOrZero(CraftingRequirement req) { for (int i = 0; i < 7; i++) { PlayerData.Instance.BlocksCollected[i].Value = Math.Max(0L, PlayerData.Instance.BlocksCollected[i].Value - req.Resources[i]); } }
public void UpgradeGearWithGems(int gear) { GearRunner orCreateGearRunner = Singleton <GearCollectionRunner> .Instance.GetOrCreateGearRunner(gear); CraftingRequirement gearUpgradeCost = Singleton <EconomyHelpers> .Instance.GetGearUpgradeCost(orCreateGearRunner.GearIndex, orCreateGearRunner.Level.Value); if (!orCreateGearRunner.MaxLevelReached.Value) { if (orCreateGearRunner.Level.Value == 0) { GearUnlockTriggered.SetValueAndForceNotify(orCreateGearRunner.GearIndex); } int craftingGemCost = Singleton <EconomyHelpers> .Instance.GetCraftingGemCost(AsCraftingRequirement(PlayerData.Instance.BlocksCollected), gearUpgradeCost); if (craftingGemCost > PlayerData.Instance.Gems.Value) { NotEnoughGemsForUpgrade(gear); BindingManager.Instance.NotEnoughGemsOverlay.SetActive(value: true); } else { Singleton <FundRunner> .Instance.RemoveFromFundsOrZero(gearUpgradeCost); Singleton <FundRunner> .Instance.RemoveGems(craftingGemCost, "gear_" + gear.ToString(), "gears"); orCreateGearRunner.Level.Value++; } } }
public void RemoveFromFunds(CraftingRequirement req) { for (int i = 0; i < 7; i++) { PlayerData.Instance.BlocksCollected[i].Value -= req.Resources[i]; } }
public CraftingRequirement GetGearUpgradeCost(int id, int level) { CraftingRequirement craftingRequirement = new CraftingRequirement(); CraftingMaterialConfig craftingMaterialConfig = PersistentSingleton <Economies> .Instance.CraftingMaterial[id]; craftingRequirement.Resources = new long[7] { 0L, 0L, 0L, 0L, 0L, 0L, GetRelicCost(id, level) }; if (craftingMaterialConfig.JellyStartingpoint >= 0 && level == 0) { craftingRequirement.Resources[6] = PersistentSingleton <Economies> .Instance.Crafting[craftingMaterialConfig.JellyStartingpoint].Relics; } if (craftingMaterialConfig.Material1 != null) { craftingRequirement.Resources[(int)craftingMaterialConfig.Material1.Type] = PersistentSingleton <Economies> .Instance.Crafting[level + craftingMaterialConfig.Material1.StartingPoint].Materials[(int)craftingMaterialConfig.Material1.Type]; } if (craftingMaterialConfig.Material2 != null) { craftingRequirement.Resources[(int)craftingMaterialConfig.Material2.Type] = PersistentSingleton <Economies> .Instance.Crafting[level + craftingMaterialConfig.Material2.StartingPoint].Materials[(int)craftingMaterialConfig.Material2.Type]; } if (craftingMaterialConfig.Material3 != null) { craftingRequirement.Resources[(int)craftingMaterialConfig.Material3.Type] = PersistentSingleton <Economies> .Instance.Crafting[level + craftingMaterialConfig.Material3.StartingPoint].Materials[(int)craftingMaterialConfig.Material3.Type]; } return(craftingRequirement); }
private static CraftingRequirement AsCraftingRequirement(List <ReactiveProperty <long> > blocks) { CraftingRequirement craftingRequirement = new CraftingRequirement(); for (int i = 0; i < 7; i++) { craftingRequirement.Resources[i] = blocks[i].Value; } return(craftingRequirement); }
public bool Satisfies(CraftingRequirement req) { for (int i = 0; i < Resources.Length; i++) { if (Resources[i] < req.Resources[i]) { return(false); } } return(true); }
public void NotEnoughGemsForUpgrade(int gear) { GearRunner orCreateGearRunner = Singleton <GearCollectionRunner> .Instance.GetOrCreateGearRunner(gear); CraftingRequirement gearUpgradeCost = Singleton <EconomyHelpers> .Instance.GetGearUpgradeCost(orCreateGearRunner.GearIndex, orCreateGearRunner.Level.Value); int craftingGemCost = Singleton <EconomyHelpers> .Instance.GetCraftingGemCost(AsCraftingRequirement(PlayerData.Instance.BlocksCollected), gearUpgradeCost); int missingGems = craftingGemCost - PlayerData.Instance.Gems.Value; Singleton <NotEnoughGemsRunner> .Instance.NotEnoughGems(missingGems); }
public int GetCraftingGemCost(CraftingRequirement have, CraftingRequirement req) { int num = 0; BigDouble relics = BigDouble.Max(0L, req.Resources[6] - have.Resources[6]); num += MissingRelicsToGems.Evaluate(relics); for (int i = 0; i < 6; i++) { long value = Math.Max(0L, req.Resources[i] - have.Resources[i]); num += GetBlockToGems((BlockType)i, value); } return(num); }
public static UniRx.IObservable <CraftingRequirement> CreateBlocksObservable() { return(PlayerData.Instance.BlocksCollected[6].CombineLatest(PlayerData.Instance.BlocksCollected[0], PlayerData.Instance.BlocksCollected[1], PlayerData.Instance.BlocksCollected[2], PlayerData.Instance.BlocksCollected[3], PlayerData.Instance.BlocksCollected[4], PlayerData.Instance.BlocksCollected[5], delegate(long relics, long grass, long dirt, long wood, long stone, long metal, long gold) { CraftingRequirement craftingRequirement = new CraftingRequirement(); craftingRequirement.Resources[6] = relics; craftingRequirement.Resources[0] = grass; craftingRequirement.Resources[1] = dirt; craftingRequirement.Resources[2] = wood; craftingRequirement.Resources[3] = stone; craftingRequirement.Resources[4] = metal; craftingRequirement.Resources[5] = gold; return craftingRequirement; })); }
public static UniRx.IObservable <CraftingRequirement> CreateAfterPrestigeBlocksObservable() { return(Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[0].CombineLatest(Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[1], Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[2], Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[3], Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[4], Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[5], Singleton <AfterPrestigeFundCollector> .Instance.FundsAfterPrestige[6], delegate(long grass, long dirt, long wood, long stone, long metal, long gold, long relics) { CraftingRequirement craftingRequirement = new CraftingRequirement(); craftingRequirement.Resources[0] = grass; craftingRequirement.Resources[1] = dirt; craftingRequirement.Resources[2] = wood; craftingRequirement.Resources[3] = stone; craftingRequirement.Resources[4] = metal; craftingRequirement.Resources[5] = gold; craftingRequirement.Resources[6] = relics; return craftingRequirement; })); }
public void UpgradeGear(int gear) { GearRunner orCreateGearRunner = Singleton <GearCollectionRunner> .Instance.GetOrCreateGearRunner(gear); if (orCreateGearRunner.UpgradeAvailable.Value && !orCreateGearRunner.MaxLevelReached.Value) { if (orCreateGearRunner.Level.Value == 0) { GearUnlockTriggered.SetValueAndForceNotify(orCreateGearRunner.GearIndex); } CraftingRequirement gearUpgradeCost = Singleton <EconomyHelpers> .Instance.GetGearUpgradeCost(orCreateGearRunner.GearIndex, orCreateGearRunner.Level.Value); Singleton <FundRunner> .Instance.RemoveFromFunds(gearUpgradeCost); orCreateGearRunner.Level.Value++; } }
private void SetupResources(CraftingRequirement req) { base.transform.DestroyChildrenImmediate(); if (req.Resources[6] > 0) { AddCard(BigString.ToString(new BigDouble(req.Resources[6])), "Relics", PlayerData.Instance.BlocksCollected[6].Value >= req.Resources[6]); } for (int i = 0; i < 6; i++) { if (req.Resources[i] > 0) { string text = BigString.ToString(new BigDouble(req.Resources[i])); BlockType blockType = (BlockType)i; AddCard(text, blockType.ToString(), PlayerData.Instance.BlocksCollected[i].Value >= req.Resources[i]); } } }