public void SoomlaLevelUpInitTest() { LevelUpEvents.OnLevelUpInitialized += onLevelUpInitialized; Dictionary<string, object> evtLvlUpInitialized = new Dictionary<string, object> { { "handler", "onLevelUpInitialized" } }; EventQueue.Enqueue(evtLvlUpInitialized); World mainWorld = new World("main_world"); BadgeReward bronzeMedal = new BadgeReward("badge_bronzeMedal", "Bronze Medal"); BadgeReward silverMedal = new BadgeReward("badge_silverMedal", "Silver Medal"); BadgeReward goldMedal = new BadgeReward("badge_goldMedal", "Gold Medal"); VirtualItemReward perfectMedal = new VirtualItemReward("item_perfectMedal", "Perfect Medal", "perfect_medal", 1); SoomlaLevelUp.Initialize (mainWorld); //basic asserts Assert.AreEqual("main_world", SoomlaLevelUp.GetWorld ("main_world").ID); Assert.AreEqual("badge_bronzeMedal", SoomlaLevelUp.GetReward ("badge_bronzeMedal").ID); Assert.AreEqual("badge_silverMedal", SoomlaLevelUp.GetReward ("badge_silverMedal").ID); Assert.AreEqual("main_world", SoomlaLevelUp.InitialWorld.ID); Assert.AreEqual(0, SoomlaLevelUp.GetLevelCount()); Assert.AreEqual(bronzeMedal, Reward.GetReward("badge_bronzeMedal")); Assert.AreEqual(silverMedal, Reward.GetReward("badge_silverMedal")); Assert.AreEqual(goldMedal, Reward.GetReward("badge_goldMedal")); Assert.AreEqual(perfectMedal, Reward.GetReward("item_perfectMedal")); }
public void SoomlaLevelUpInitTest() { LevelUpEvents.OnLevelUpInitialized += onLevelUpInitialized; Dictionary <string, object> evtLvlUpInitialized = new Dictionary <string, object> { { "handler", "onLevelUpInitialized" } }; EventQueue.Enqueue(evtLvlUpInitialized); World mainWorld = new World("main_world"); BadgeReward bronzeMedal = new BadgeReward("badge_bronzeMedal", "Bronze Medal"); BadgeReward silverMedal = new BadgeReward("badge_silverMedal", "Silver Medal"); BadgeReward goldMedal = new BadgeReward("badge_goldMedal", "Gold Medal"); VirtualItemReward perfectMedal = new VirtualItemReward("item_perfectMedal", "Perfect Medal", "perfect_medal", 1); SoomlaLevelUp.Initialize(mainWorld); //basic asserts Assert.AreEqual("main_world", SoomlaLevelUp.GetWorld("main_world").ID); Assert.AreEqual("badge_bronzeMedal", SoomlaLevelUp.GetReward("badge_bronzeMedal").ID); Assert.AreEqual("badge_silverMedal", SoomlaLevelUp.GetReward("badge_silverMedal").ID); Assert.AreEqual("main_world", SoomlaLevelUp.InitialWorld.ID); Assert.AreEqual(0, SoomlaLevelUp.GetLevelCount()); Assert.AreEqual(bronzeMedal, Reward.GetReward("badge_bronzeMedal")); Assert.AreEqual(silverMedal, Reward.GetReward("badge_silverMedal")); Assert.AreEqual(goldMedal, Reward.GetReward("badge_goldMedal")); Assert.AreEqual(perfectMedal, Reward.GetReward("item_perfectMedal")); }
double m10record = 4000; //score points void Start() { //CHECK_IN_FINAL_BUILD PlayerPrefs.DeleteAll(); //StoreEvents.OnCurrencyBalanceChanged += onCurrencyBalanceChanged; StoreEvents.OnSoomlaStoreInitialized += OnSoomlaStoreInitialized; world = new World("AnimineWorld"); missionIndex = new Score("missionIndexScore", "mission Index", true); gameScore = new Score("gameScore", "Game Score", true); //coinScore = new Score ("coinScore", "gold coin", true); missionGameScore = new Score("missionGameScore", "missionGameScore", true); mineralCollectScore = new Score("mineralCollectScore", "mineralCollectScore", true); brickDigScore = new Score("brickDigScore", "brickDigScore", true); stoneBlastScore = new Score("stoneBlastScore", "stoneBlastScore", true); collectCoalScore = new Score("collectCoalScore", "collectCoalScore", true); collectCopperScore = new Score("collectCopperScore", "collectCopperScore", true); collectGoldScore = new Score("collectGoldScore", "collectGoldScore", true); collectDiamondScore = new Score("collectDiamondScore", "collectDiamondScore", true); world.AddScore(missionIndex); world.AddScore(gameScore); //world.AddScore (coinScore); world.AddScore(missionGameScore); world.AddScore(mineralCollectScore); world.AddScore(brickDigScore); world.AddScore(stoneBlastScore); world.AddScore(collectCoalScore); world.AddScore(collectCopperScore); world.AddScore(collectGoldScore); world.AddScore(collectDiamondScore); LevelUpEvents.OnMissionCompleted += onMissionCompleted; VirtualItemReward reward50Coins = new VirtualItemReward("rwd1", "50", AnimineStoreAssets.GOLD_COIN_VC_ITEM_ID, 50); reward50Coins.Schedule = Schedule.AnyTimeUnLimited(); VirtualItemReward reward100Coins = new VirtualItemReward("rwd2", "100 ", AnimineStoreAssets.GOLD_COIN_VC_ITEM_ID, 100); reward100Coins.Schedule = Schedule.AnyTimeUnLimited(); VirtualItemReward reward250Coins = new VirtualItemReward("rwd3", "250", AnimineStoreAssets.GOLD_COIN_VC_ITEM_ID, 250); reward250Coins.Schedule = Schedule.AnyTimeUnLimited(); VirtualItemReward reward300Coins = new VirtualItemReward("rwd4", "300", AnimineStoreAssets.GOLD_COIN_VC_ITEM_ID, 300); reward300Coins.Schedule = Schedule.AnyTimeUnLimited(); VirtualItemReward reward500Coins = new VirtualItemReward("rwd5", "500", AnimineStoreAssets.GOLD_COIN_VC_ITEM_ID, 500); reward500Coins.Schedule = Schedule.AnyTimeUnLimited(); firstLaunchReward = new VirtualItemReward("firstLaunchReward", "1 Piggy", AnimineStoreAssets.PIGGY_VG_ITEM_ID, 1); Schedule mySch = new Schedule(1); m1 = new RecordMission("m1", "ScorePoints_Sentance", new List <Reward> () { reward50Coins }, missionGameScore.ID, m1record); //50 m1.Description = m1record.ToString(); m1.Schedule = mySch; m2 = new RecordMission("m2", "CollectMinerals_Sentance", new List <Reward> () { reward100Coins }, mineralCollectScore.ID, m2record); //1000 m2.Description = m2record.ToString(); m2.Schedule = mySch; m3 = new RecordMission("m3", "DigBricks_Sentance", new List <Reward> () { reward100Coins }, brickDigScore.ID, m3record); m3.Description = m3record.ToString(); m3.Schedule = mySch; m4 = new RecordMission("m4", "BlastStone_Sentance", new List <Reward> () { reward50Coins }, stoneBlastScore.ID, m4record); m4.Description = m4record.ToString(); m4.Schedule = mySch; m5 = new RecordMission("m5", "CollectCoal_Sentance", new List <Reward> () { reward50Coins }, collectCoalScore.ID, m5record); m5.Description = m5record.ToString(); m5.Schedule = mySch; m6 = new RecordMission("m6", "CollectCopper_Sentance", new List <Reward> () { reward50Coins }, collectCopperScore.ID, m6record); m6.Description = m6record.ToString(); m6.Schedule = mySch; m7 = new RecordMission("m7", "CollectGold_Sentance", new List <Reward> () { reward100Coins }, collectGoldScore.ID, m7record); m7.Description = m7record.ToString(); m7.Schedule = mySch; m8 = new RecordMission("m8", "CollectDiamond_Sentance", new List <Reward> () { reward100Coins }, collectDiamondScore.ID, m8record); m8.Description = m8record.ToString(); m8.Schedule = mySch; m9 = new RecordMission("m9", "CollectMinerals_Sentance", new List <Reward> () { reward100Coins }, mineralCollectScore.ID, m9record); //1000 m9.Description = m9record.ToString(); m9.Schedule = mySch; m10 = new RecordMission("m10", "ScorePoints_Sentance", new List <Reward> () { reward500Coins }, missionGameScore.ID, m10record); m10.Description = m10record.ToString(); m10.Schedule = mySch; world.AddMission(m1); world.AddMission(m2); world.AddMission(m3); world.AddMission(m4); world.AddMission(m5); world.AddMission(m6); world.AddMission(m7); world.AddMission(m8); world.AddMission(m9); world.AddMission(m10); SoomlaStore.Initialize(new AnimineStoreAssets()); SoomlaLevelUp.Initialize(world); }
public void Reward_toJSONObject() { { var reward = new BadgeReward("Test_BadgeReward_Id", "Test_BadgeReward", "http://iconUrl"); var json = reward.toJSONObject(); var expect = @"{ ""name"":""Test_BadgeReward"", ""description"":"""", ""itemId"":""Test_BadgeReward_Id"", ""className"":""BadgeReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""iconUrl"":""http://iconUrl"" }"; Assert.AreEqual(expect, json.print(true)); } { var reward = new VirtualItemReward("Test_VirtualItemReward_Id", "Test_VirtualItemReward", "Test_Item_Id", 100); var json = reward.toJSONObject(); var expect = @"{ ""name"":""Test_VirtualItemReward"", ""description"":"""", ""itemId"":""Test_VirtualItemReward_Id"", ""className"":""VirtualItemReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""associatedItemId"":""Test_Item_Id"", ""amount"":100, ""className"":""VirtualItemReward"" }"; Assert.AreEqual(expect, json.print(true)); } { var rewards = new List <Reward>(); rewards.Add(new BadgeReward("Test_BadgeReward_Id", "Test_BadgeReward", "http://iconUrl")); rewards.Add(new VirtualItemReward("Test_VirtualItemReward_Id", "Test_VirtualItemReward", "Test_Item_Id", 100)); var reward = new SequenceReward("Test_SequenceReward_Id", "Test_SequenceReward", rewards); var json = reward.toJSONObject(); var expect = @"{ ""name"":""Test_SequenceReward"", ""description"":"""", ""itemId"":""Test_SequenceReward_Id"", ""className"":""SequenceReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""rewards"":[ { ""name"":""Test_BadgeReward"", ""description"":"""", ""itemId"":""Test_BadgeReward_Id"", ""className"":""BadgeReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""iconUrl"":""http://iconUrl"" }, { ""name"":""Test_VirtualItemReward"", ""description"":"""", ""itemId"":""Test_VirtualItemReward_Id"", ""className"":""VirtualItemReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""associatedItemId"":""Test_Item_Id"", ""amount"":100, ""className"":""VirtualItemReward"" } ] }"; Assert.AreEqual(expect, json.print(true)); } }
public void Reward_toJSONObject() { { var reward = new BadgeReward("Test_BadgeReward_Id", "Test_BadgeReward", "http://iconUrl"); var json = reward.toJSONObject(); var expect = @"{ ""name"":""Test_BadgeReward"", ""description"":"""", ""itemId"":""Test_BadgeReward_Id"", ""className"":""BadgeReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""iconUrl"":""http://iconUrl"" }"; Assert.AreEqual(expect, json.print(true)); } { var reward = new VirtualItemReward("Test_VirtualItemReward_Id", "Test_VirtualItemReward", "Test_Item_Id", 100); var json = reward.toJSONObject(); var expect = @"{ ""name"":""Test_VirtualItemReward"", ""description"":"""", ""itemId"":""Test_VirtualItemReward_Id"", ""className"":""VirtualItemReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""associatedItemId"":""Test_Item_Id"", ""amount"":100, ""className"":""VirtualItemReward"" }"; Assert.AreEqual(expect, json.print(true)); } { var rewards = new List<Reward>(); rewards.Add(new BadgeReward("Test_BadgeReward_Id", "Test_BadgeReward", "http://iconUrl")); rewards.Add(new VirtualItemReward("Test_VirtualItemReward_Id", "Test_VirtualItemReward", "Test_Item_Id", 100)); var reward = new SequenceReward("Test_SequenceReward_Id", "Test_SequenceReward", rewards); var json = reward.toJSONObject(); var expect = @"{ ""name"":""Test_SequenceReward"", ""description"":"""", ""itemId"":""Test_SequenceReward_Id"", ""className"":""SequenceReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""rewards"":[ { ""name"":""Test_BadgeReward"", ""description"":"""", ""itemId"":""Test_BadgeReward_Id"", ""className"":""BadgeReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""iconUrl"":""http://iconUrl"" }, { ""name"":""Test_VirtualItemReward"", ""description"":"""", ""itemId"":""Test_VirtualItemReward_Id"", ""className"":""VirtualItemReward"", ""schedule"":{ ""className"":""Schedule"", ""schedRecurrence"":4, ""schedApprovals"":1, ""schedTimeRanges"":[] }, ""associatedItemId"":""Test_Item_Id"", ""amount"":100, ""className"":""VirtualItemReward"" } ] }"; Assert.AreEqual(expect, json.print(true)); } }
/// <summary> /// Initializes this instance. /// </summary> public void Initialize(CharacterResource charResource, Action <string> charPurchaseSucceededDelegate, Action <string> charPurchaseCancelledDelegate, Action restoreTransactionsCompletedDelegate, Action restoreTransactionsFailedDelegate, Action <int> coinBalanceChangedDelegate, Action <int> gachaBalanceChangedDelegate) { // Initialize only once if (m_isInitialized) { return; } // Set up character data in Soomla's StoreAssets CRCAssets.CharactersLTVGArray = new EquippableVG[charResource.CharacterCount]; m_charItemIDDictionary.Clear(); // For testing: Index used for assigning test product IDs //int testIDIndex = 0; for (int index = 0; index < charResource.CharacterCount; ++index) { CharacterType character = (CharacterType)index; CharacterResource.CharacterStruct charData = charResource.GetCharacterStruct(character); // Check if character is buyable PurchaseType purchaseType = new PurchaseWithMarket(charData.ItemID, charData.Price); /* * // For testing: Use test product IDs for the first four purchasable characters * PurchaseType purchaseType = null; * string productID = charData.ItemID; * if (charData.IsBuyable) * { * if (testIDIndex == 0) productID = CRCAssets.PURCHASED_TEST_ID; * else if (testIDIndex == 1) productID = CRCAssets.CANCELED_TEST_ID; * else if (testIDIndex == 2) productID = CRCAssets.REFUNDED_TEST_ID; * else if (testIDIndex == 3) productID = CRCAssets.UNAVAILABLE_TEST_ID; * testIDIndex++; * } * purchaseType = new PurchaseWithMarket(productID, charData.Price); * //purchaseType = new PurchaseWithMarket(CRCAssets.PURCHASED_TEST_ID, charData.Price); */ // Create equippable virtual good instance for each character CRCAssets.CharactersLTVGArray[index] = new EquippableVG( EquippableVG.EquippingModel.CATEGORY, charData.Name, "", charData.ItemID, purchaseType); // Add the item ID and character type to a dictionary if (!m_charItemIDDictionary.ContainsKey(charData.ItemID)) { m_charItemIDDictionary.Add(charData.ItemID, character); } } // Create an instance of the in-game implementation of IStoreAssets CRCAssets crcAssets = new CRCAssets(); // Update the list of character goods for (int index = 0; index < charResource.CharacterCount; ++index) { crcAssets.AddToCharacterGoodsList(CRCAssets.CharactersLTVGArray[index]); } // Finalize character goods collections before initializing Soomla Store crcAssets.FinalizeCharacterGoods(); // Save delegates m_charPurchaseSucceededDelegate = charPurchaseSucceededDelegate; m_charPurchaseCancelledDelegate = charPurchaseCancelledDelegate; m_restoreTransactionsCompletedDelegate = restoreTransactionsCompletedDelegate; m_restoreTransactionsFailedDelegate = restoreTransactionsFailedDelegate; m_coinBalanceChangedDelegate = coinBalanceChangedDelegate; m_gachaBalanceChangedDelegate = gachaBalanceChangedDelegate; // Subscribe to Store events StoreEvents.OnSoomlaStoreInitialized += OnSoomlaStoreInitialized; StoreEvents.OnCurrencyBalanceChanged += OnCurrencyBalanceChanged; StoreEvents.OnMarketPurchaseStarted += OnMarketPurchaseStarted; StoreEvents.OnMarketPurchase += OnMarketPurchase; StoreEvents.OnMarketPurchaseCancelled += OnMarketPurchaseCancelled; StoreEvents.OnMarketRefund += OnMarketRefund; StoreEvents.OnRestoreTransactionsStarted += OnRestoreTransactionsStarted; StoreEvents.OnRestoreTransactionsFinished += OnRestoreTransactionsFinished; StoreEvents.OnUnexpectedStoreError += OnUnexpectedStoreError; // Initialize rewards m_firstLaunchReward = new VirtualItemReward( "first-launch", "Give coins at first launch", CRCAssets.COIN_CURRENCY_ITEM_ID, FIRST_LAUNCH_REWARD_AMOUNT); // Initialize the store with the in-game implementation of IStoreAssets // Note: This must be done after setting up values in the store assets class SoomlaStore.Initialize(crcAssets); }