Page 1 of 1

Game definition jsons - Map lists

Posted: Mon Sep 18, 2017 5:41 pm
by Stratego (dev)
Campaign and random maps are defined in this json: maps.json

like this, simply listing the maps, defining the random/"campaign" map groups and the "button" reference, and listing the maps into the groups

Code: Select all

{

"holderCategories":[
    {"holderCategoryID":"LC_MAIN", "holderCategoryTxtID":"campaign_menu_tutorial", "ancHolderCategoryID":""},
    {"holderCategoryID":"LC_HIGHLIGHTED", "holderCategoryTxtID":"main_menu_campaigns", "ancHolderCategoryID":"LC_MAIN"},
    {"holderCategoryID":"LC_HISTORICAL", "holderCategoryTxtID":"campaign_intro_story_hist", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_POST_WW2", "holderCategoryTxtID":"campaign_intro_cold_war", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_ALT_OUTCOMES", "holderCategoryTxtID":"campaign_intro_fictional", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_LORDOFALES", "holderCategoryTxtID":"campaign_intro_lord_of_ales", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_OTHERS", "holderCategoryTxtID":"campaign_intro_others", "ancHolderCategoryID":"LC_HIGHLIGHTED"}
], 

"groups": [

	{"c": "Fix, random maps", "buttonName": "-", "listName": "FIX_MAPS", "holderCategoryID": "LC_MAIN", "listNameTxtID": "main_menu_predef", "type": "FIX", "groupID": -100, "items": [
		{"mapFileName": "rnd_the_lake_20_20.map", "publishStatus": "HIDDEN"},
		{"mapFileName": "rnd_island_20_20.map"}, 
		{"mapFileName": "rnd_islands_20_20.map"},
		{"mapFileName": "rnd_france_20_20.map"},
		{"mapFileName": "rnd_iwo_jima_20_20.map"},		
		{"mapFileName": "rnd_map_001_20_20.map"},
		{"mapFileName": "rnd_map_002_20_20.map"}, 
		{"mapFileName": "rnd_the_bridge_20_20.map"},
		{"mapFileName": "rnd_archipelago_20_20.map"},		 
		{"mapFileName": "rnd_mountains_climb_20_20.map"},
		{"mapFileName": "rnd_summer_forest_20_20.map"},
		{"mapFileName": "rnd_crash_landing_20_20.map"},
		{"mapFileName": "rnd_glacier_20_20.map"},
		{"mapFileName": "rnd_amalienborg_palace_mp_25_25.map"},	
		{"mapFileName": "rnd_the_frozen_lands_25_25.map"},
		{"mapFileName": "rnd_east_ward_25_25.map"},
		{"mapFileName": "rnd_italy_25_25.map"},
		{"mapFileName": "rnd_egypt_30_30.map"},
		{"mapFileName": "rnd_stalingrad_30_30.map"},
		{"mapFileName": "rnd_hawaii_30_30.map"},
		{"mapFileName": "rnd_citys__30_30.map"},
		{"mapFileName": "rnd_map_003_50_50.map"},
	]},
			 
			 
	 
	{"c": "FAN maps here", "buttonName": "btCampaignUser", "holderCategoryID": "LC_HIGHLIGHTED", "listNameTxtID": "campaign_menu_user", "type": "CAMPAIGN", "items": [	

		{"mapFileName": "camp_user_operation_barbarossa_southern_assault_50_50.map", "locktype": "PAY"},
		{"mapFileName": "camp_user_operation_typhoon_25_40.map", "locktype": "PAY"},
		{"mapFileName": "camp_user_the_battle_of_stalingrad_20_30.map", "locktype": "PAY"},
		{"mapFileName": "camp_user_the_siege_of_leningrad_40_40.map", "locktype": "PAY"},
	]},

	{"c": "HISTORICAL skirmish maps", "buttonName": "btCampaignFictive", "holderCategoryID": "LC_HIGHLIGHTED", "listNameTxtID": "campaign_menu_scen_historical", "type": "CAMPAIGN", "items": [
  
		{"mapFileName": "camp_user_kursk_30_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_operation_cobra_1_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_operation_overlord_50_50.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_under_fire_15_15.map", "locktype": "LOCK_PAY"},
	]},


	{"c": "Tutorial maps", "buttonName": "btCampaignTutorial", "holderCategoryID": "LC_MAIN", "listNameTxtID": "campaign_menu_tutorial", "type": "TUTO", "items": [

		{"mapFileName": "camp_user_tutorial_-_production_10_10.map", "locktype": "NONE"},
		{"mapFileName": "camp_user_tutorial__mines_20_20.map", "locktype": "NONE"},
		{"mapFileName": "camp_user_tutorial__submarines_20_10.map", "locktype": "NONE"},
	]},

	{"c": "Multiplayer missions (Hotseat)", "buttonName": "btCampaignMultiplayerMissions", "holderCategoryID": "LC_HIGHLIGHTED", "listNameTxtID": "campaign_menu_multiplayer_missions", "type": "CAMPAIGN", "items": [
	    {"mapFileName": "camp_user_hotseat_battle_of_midway_35_35.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_battle_of_imphal_40_35.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_first_battle_of_el_alamein_35_35.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_battle_of_britain_35_40.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_battle_of_stalingrad_40_40.map", "locktype": "NONE"},

	]},

	{"c": "MAP_LIST_STORY_RED_ALERT by HokanPl", "buttonName": "btCampaignRedAlert", "holderCategoryID": "LC_POST_WW2", "listNameTxtID": "campaign_menu_story_redalert", "type": "CAMPAIGN", "items": [
		{"mapFileName": "camp_user_mission_1_20_25.map", "locktype": "LOCK_PAY"}, 
		{"mapFileName": "camp_user_mission_2_25_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_3_25_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_4_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_5_25_25.map", "locktype": "LOCK_PAY"},		
		{"mapFileName": "camp_user_mission_1__act_two_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_2__act_two_20_20.map", "locktype": "LOCK_PAY"},
		
	]},

	{"c": "MAP_LIST_HISTORICAL_DANISH Northern Campaign by deadshot09", "buttonName": "btCampaignHistoricalDanish", "holderCategoryID": "LC_HISTORICAL", "listNameTxtID": "campaign_menu_story_hist_danish", "type": "CAMPAIGN", "items": [
		{"mapFileName": "camp_user_storstom_bridge_battle_35_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_masdeno_fort_capture_30_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_vaerlose_airfield_25_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_amalienborg_palace_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_destination_norway_25_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_oslofjord_fortress_30_20.map", "locktype": "LOCK_PAY"},
		
	]},

	{"c": "MAP_LIST_STORY_COLD_WARS by deadshot09", "buttonName": "btCampaignColdWar", "holderCategoryID": "LC_POST_WW2", "listNameTxtID": "campaign_menu_story_cold_war", "type": "CAMPAIGN", "items": [

		{"mapFileName": "camp_user_operation_starlite_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_opration_rolling_thunder_30_30.map", "locktype": "LOCK_PAY"},
	]},

	
	
	
	

	{"c": "MAP_LIST_STORY_ARBITER by Aleksandar Glumac alias LordOfAles", "listName": "MAP_LIST_STORY_ARBITER", "holderCategoryID": "LC_LORDOFALES", "listNameTxtID": "campaign_menu_story_arbiter", "buttonName": "btCampaignArbiter", "type": "CAMPAIGN", "items": [
		{"mapFileName": "camp_user_passing_thru_enemy_defenses_10_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_forest_ambush_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_base_outskirts_20_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_grand_opening_30_30.map", "locktype": "LOCK_PAY"}, 
	]},
	
	
	{"c": "MAP_LIST_STORY_LIT_MADNESS by Aleksandar Glumac alias LordOfAles",  "requiredListName": "MAP_LIST_STORY_ARBITER", "buttonName": "btCampaignLitMadness", "holderCategoryID": "LC_LORDOFALES", "listNameTxtID": "campaign_menu_story_lit_madness", "type": "CAMPAIGN", "items": [
	
		{"mapFileName": "camp_user_armageddon_25_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_tour_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_tunnels_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_destroying_maya_15_15.map", "locktype": "LOCK_PAY"},

	]},
	
	{"c": "MAP_LIST_STORY_GARRISON by Aleksandar Glumac alias LordOfAles",  "buttonName": "btCampaignGarrison", "holderCategoryID": "LC_LORDOFALES", "listNameTxtID": "campaign_menu_story_garrison", "type": "CAMPAIGN", "items": [
	
		{"mapFileName": "camp_user_home_garrison_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_unfriendly_visit_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_counter_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_diversion_10_10.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_clearup_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_destroying_the_plague_15_15.map", "locktype": "LOCK_PAY"},		

	]},
	
	
	
	
	{"c": "MAP_LIST_STORY_WAR_PATRIOTISM by Lukas Dear lukasdear23 at gmail.com", "buttonName": "btCampaignWarPatriotism", "holderCategoryID": "LC_OTHERS", "listNameTxtID": "campaign_menu_story_war_patriotism", "type": "CAMPAIGN", "items": [


		{"mapFileName": "camp_user_miami_1_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_japan_1_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_pacific_ocean_20_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_japan_2_15_15.map", "locktype": "LOCK_PAY"},


	]}
	



]
}

Holder categories
(Used in Unity version) This section defines the categrories the campaigns are ordered into (eg. easy campaigns, or Post WW2 campaigns and so on)
"holderCategoryID": the category id (textual id, can be anything)
"holderCategoryTxtID" the appearing text ID for the holder-category (textual id, must be deifnied in string.xml)
"ancHolderCategoryID": referencing an ancestor category (if multilevel structure)

Avaliable lock types:
PAY- gives gems if you win
LOCK_PAY - means the map needs to be locked (so only if you finish prior map wil be able to be opened), also gives gems.
NONE - no locked, and not gives gems.

Publish status: you can inactivate maps using the HIDDEN status, this means running games will be handled but no new game can be created with this map (so considered as DEPRECATED).
Current publish statuses (if you do not specify it then it is considered FULL - like u see in most samples except "the_lake" map)
FULL, // can start new game and existing games will use it
HIDDEN // existing games will use it, but you can not create new map with it - so considered as DEPRECATED
Locked campaigns
You can set a camapign locked until an other campaign is finished, see as a sample above: "MAP_LIST_STORY_LIT_MADNESS" will require "MAP_LIST_STORY_ARBITER" by the "requiredListName" and "listName" settings

Other attributes:
holderCategoryID: the category id referencing the id in holderCategories structure
listNameTxtID: campaign name, so the appearing text ID for the campaign (textual id, must be deifnied in string.xml)

Re: Game definition jsons - Map lists

Posted: Fri Sep 22, 2017 3:39 pm
by Midonik
What "locktype" means? Is it mean that you need to pass latest map or what?

Re: Game definition jsons - Map lists

Posted: Fri Sep 22, 2017 4:53 pm
by Stratego (dev)
good questions, updated the first post with the answer

Re: Game definition jsons - Map lists

Posted: Fri Sep 22, 2017 4:59 pm
by Midonik
Thanks.

Re: Game definition jsons - Map lists

Posted: Sun Oct 29, 2017 7:35 am
by Stratego (dev)
publish status introduced

Re: Game definition jsons - Map lists

Posted: Sun Oct 29, 2017 11:41 am
by Sunrise Samurai
And that explains why some maps are greyed out and can't be played.

Re: Game definition jsons - Map lists

Posted: Sun Oct 29, 2017 7:35 pm
by Stratego (dev)
no. that is different.

Re: Game definition jsons - Map lists

Posted: Sun Oct 29, 2017 7:40 pm
by Puss_in_Boots
This will definitely be very important to know for AoUFO.

If some random player makes a map design, should players know Midonik's email since he is the moderator of it?

Re: Game definition jsons - Map lists

Posted: Mon Oct 30, 2017 12:03 am
by Sunrise Samurai
Lol moderator? He practically became the first design leader by default, and has been doing a pretty good job of it too.

Re: Game definition jsons - Map lists

Posted: Mon Oct 30, 2017 12:22 am
by Puss_in_Boots
...He is the moderator of the topic for AoUFO.

But anyways he's not really taken care of his json file studies. I hope he can manage completeing most of it by Christmas Holidays.

Re: Game definition jsons - Map lists

Posted: Mon Oct 30, 2017 2:06 pm
by Midonik
Well,its hard. I have mot engoun patience. Anyway,I will try again in xmas probably.

Re: Game definition jsons - Map lists

Posted: Sun Nov 05, 2017 10:24 pm
by Stratego (dev)
Locked campaigns
You can set a camapign locked until an other campaign is finished, see as a sample above: "MAP_LIST_STORY_LIT_MADNESS" will require "MAP_LIST_STORY_ARBITER" by the "requiredListName" and "listName" settings

Re: Game definition jsons - Map lists

Posted: Mon Oct 04, 2021 6:41 pm
by Stratego (dev)
New structure in file:
holder Categories (read in forts post)
also new attributes:
- holderCategoryID: the category id referencing the id in holderCategories structure
- listNameTxtID: campaign name, so the appearing text ID for the campaign (textual id, must be deifnied in string.xml)

i made these change in AOS/AOF/AOW/AOG

please in all other alternatives make these changes, these will be mandatory for the campaigns to appear.