コード例 #1
0
        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"));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
    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);
    }
コード例 #4
0
        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));
            }
        }
コード例 #5
0
 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));
     }
 }
コード例 #6
0
    /// <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);
    }