//create a crazy world...
        public static World GenerateCustomWorld()
        {
            World mainWorld = new World("main_world");

            Score s        = new Score("numberScore");
            World machineA = new World("machine_a");
            World machineB = new World("machine_b");

            // machine A
            machineA.BatchAddLevelsWithTemplates(2, null, s, null);

            // machine B

            Gate machineALevel1Complete = new WorldCompletionGate("level1_complete", machineA.GetInnerWorldAt(0).ID);

            machineB.BatchAddLevelsWithTemplates(20, machineALevel1Complete, s, null);

            Mission mission1    = new WorldCompletionMission("level2_complete", "Level 2 Completed Mission!", machineA.GetInnerWorldAt(1).ID);
            Mission mission2    = new RecordMission("level1_record_mission", "Level 1 Record Mission!", machineA.GetInnerWorldAt(0).GetSingleScore().ID, 20.0);
            Mission allMissions = new Challenge("main_challange", "MAIN CHALLENGE", new List <Mission>()
            {
                mission1, mission2
            });

            machineB.GetInnerWorldAt(5).AddMission(allMissions);

            mainWorld.AddInnerWorld(machineA);
            mainWorld.AddInnerWorld(machineB);

            return(mainWorld);
        }
Example #2
0
        public void Mission_toJSONObject()
        {
            {
                var mission = new RecordMission("Test_RecordMission_Id", "Test_RecordMission", "Test_Score_Id", 100.0);
                var json    = mission.toJSONObject();
                var expect  =
                    @"{
	""name"":""Test_RecordMission"",
	""description"":"""",
	""itemId"":""Test_RecordMission_Id"",
	""className"":""RecordMission"",
	""rewards"":[],
	""gate"":{
		""name"":"""",
		""description"":"""",
		""itemId"":""gate_Test_RecordMission_Id"",
		""className"":""RecordGate"",
		""associatedScoreId"":""Test_Score_Id"",
		""desiredBalance"":100
	},
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	}
}";
                Assert.AreEqual(expect, json.print(true));
            }
            {
                var mission = new WorldCompletionMission("Test_WorldCompletionMission_Id", "Test_WorldCompletionMission", "Test_World_Id");
                var json    = mission.toJSONObject();
                var expect  =
                    @"{
	""name"":""Test_WorldCompletionMission"",
	""description"":"""",
	""itemId"":""Test_WorldCompletionMission_Id"",
	""className"":""WorldCompletionMission"",
	""rewards"":[],
	""gate"":{
		""name"":"""",
		""description"":"""",
		""itemId"":""gate_Test_WorldCompletionMission_Id"",
		""className"":""WorldCompletionGate"",
		""associatedWorldId"":""Test_World_Id""
	},
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	}
}";
                Assert.AreEqual(expect, json.print(true));
            }
            {
                var mission = new BalanceMission("Test_BalanceMission_Id", "Test_BalanceMission", "Test_Item_Id", 100);
                var json    = mission.toJSONObject();
                var expect  =
                    @"{
	""name"":""Test_BalanceMission"",
	""description"":"""",
	""itemId"":""Test_BalanceMission_Id"",
	""className"":""BalanceMission"",
	""rewards"":[],
	""gate"":{
		""name"":"""",
		""description"":"""",
		""itemId"":""gate_Test_BalanceMission_Id"",
		""className"":""BalanceGate"",
		""associatedItemId"":""Test_Item_Id"",
		""desiredBalance"":100
	},
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	}
}";
                Assert.AreEqual(expect, json.print(true));
            }
            {
                var mission = new PurchasingMission("Test_PurchasingMission_Id", "Test_PurchasingMission", "Test_Item_Id");
                var json    = mission.toJSONObject();
                var expect  =
                    @"{
	""name"":""Test_PurchasingMission"",
	""description"":"""",
	""itemId"":""Test_PurchasingMission_Id"",
	""className"":""PurchasingMission"",
	""rewards"":[],
	""gate"":{
		""name"":"""",
		""description"":"""",
		""itemId"":""gate_Test_PurchasingMission_Id"",
		""className"":""PurchasableGate"",
		""associatedItemId"":""Test_Item_Id""
	},
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	}
}";
                Assert.AreEqual(expect, json.print(true));
            }
            {
                var mission = new SocialLikeMission("Test_SocialLikeMission_Id", "Test_SocialLikeMission", Provider.FACEBOOK, "Test_PageName");
                var json    = mission.toJSONObject();
                var expect  =
                    @"{
	""name"":""Test_SocialLikeMission"",
	""description"":"""",
	""itemId"":""Test_SocialLikeMission_Id"",
	""className"":""SocialLikeMission"",
	""rewards"":[],
	""gate"":{
		""name"":"""",
		""description"":"""",
		""itemId"":""gate_Test_SocialLikeMission_Id"",
		""className"":""SocialLikeGate"",
		""provider"":""facebook"",
		""pageName"":""Test_PageName""
	},
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	}
}";
                Assert.AreEqual(expect, json.print(true));
            }
            {
                var mission = new SocialStatusMission("Test_SocialStatusMission_Id", "Test_SocialStatusMission", Provider.GOOGLE, "Test_Status");
                var json    = mission.toJSONObject();
                var expect  =
                    @"{
	""name"":""Test_SocialStatusMission"",
	""description"":"""",
	""itemId"":""Test_SocialStatusMission_Id"",
	""className"":""SocialStatusMission"",
	""rewards"":[],
	""gate"":{
		""name"":"""",
		""description"":"""",
		""itemId"":""gate_Test_SocialStatusMission_Id"",
		""className"":""SocialStatusGate"",
		""provider"":""google"",
		""status"":""Test_Status""
	},
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	}
}";
                Assert.AreEqual(expect, json.print(true));
            }
            {
                var missions = new List <Mission>();
                missions.Add(new RecordMission("Test_RecordMission_Id", "Test_RecordMission", "Test_Score_Id", 100.0));
                missions.Add(new SocialLikeMission("Test_SocialLikeMission_Id", "Test_SocialLikeMission", Provider.FACEBOOK, "Test_PageName"));
                var challenge = new Challenge("Test_Challenge_Id", "Test_Challenge", missions);
                var json      = challenge.toJSONObject();
                var expect    =
                    @"{
	""name"":""Test_Challenge"",
	""description"":"""",
	""itemId"":""Test_Challenge_Id"",
	""className"":""Challenge"",
	""rewards"":[],
	""schedule"":{
		""className"":""Schedule"",
		""schedRecurrence"":4,
		""schedApprovals"":1,
		""schedTimeRanges"":[]
	},
	""missions"":[
		{
			""name"":""Test_RecordMission"",
			""description"":"""",
			""itemId"":""Test_RecordMission_Id"",
			""className"":""RecordMission"",
			""rewards"":[],
			""gate"":{
				""name"":"""",
				""description"":"""",
				""itemId"":""gate_Test_RecordMission_Id"",
				""className"":""RecordGate"",
				""associatedScoreId"":""Test_Score_Id"",
				""desiredBalance"":100
			},
			""schedule"":{
				""className"":""Schedule"",
				""schedRecurrence"":4,
				""schedApprovals"":1,
				""schedTimeRanges"":[]
			}
		},
		{
			""name"":""Test_SocialLikeMission"",
			""description"":"""",
			""itemId"":""Test_SocialLikeMission_Id"",
			""className"":""SocialLikeMission"",
			""rewards"":[],
			""gate"":{
				""name"":"""",
				""description"":"""",
				""itemId"":""gate_Test_SocialLikeMission_Id"",
				""className"":""SocialLikeGate"",
				""provider"":""facebook"",
				""pageName"":""Test_PageName""
			},
			""schedule"":{
				""className"":""Schedule"",
				""schedRecurrence"":4,
				""schedApprovals"":1,
				""schedTimeRanges"":[]
			}
		}
	]
}";
                Assert.AreEqual(expect, json.print(true));
            }
        }