sample (partial) from AOF
Code: Select all
{
"shopConfigItems":
[
{"shopItemId":205, "columnNr":1, "unitTypeName":"UNIT_BUILDING_BLACKSMITH", "gemCost":4} ,
{"shopItemId":212, "columnNr":1, "unitTypeName":"TECH_HUMAN_WEAPONS_RANGED_1", "gemCost":5} ,
{"shopItemId":214, "columnNr":1, "unitTypeName":"TECH_HUMAN_ARMORS_1", "gemCost":5} ,
{"shopItemId":213, "columnNr":1, "unitTypeName":"TECH_HUMAN_WEAPONS_RANGED_2", "gemCost":5} ,
{"shopItemId":215, "columnNr":1, "unitTypeName":"TECH_HUMAN_ARMORS_2", "gemCost":5} ,
{"shopItemId":227, "columnNr":1, "unitTypeName":"UNIT_ARCHER_POISON", "gemCost":5} ,
{"shopItemId":208, "columnNr":2, "unitTypeName":"UNIT_MEGA_BUILDING_CASTLE", "gemCost":7} ,
{"shopItemId":65, "columnNr":2, "unitTypeName":"UNIT_BUILDING_ARCHERY", "gemCost":5} ,
{"shopItemId":218, "columnNr":2, "unitTypeName":"TECH_AREA_DAMAGE", "gemCost":5} ,
{"shopItemId":224, "columnNr":2, "unitTypeName":"TECH_LOYALTY", "gemCost":5} ,
{"shopItemId":219, "columnNr":2, "unitTypeName":"TECH_AREA_DAMAGE_2", "gemCost":5} ,
{"shopItemId":202, "columnNr":2, "unitTypeName":"UNIT_BATTERING_RAM", "gemCost":5} ,
{"shopItemId": 100, "columnNr": 3, "gemCost": 2, "imgName": "shop_lurking.png", "txtNiceNameStringID": "SHOP_REVEAL_NAME", "messageTextIdent": "SHOP_REVEAL", "spec":"SHOP_REVEAL", "reSellable": true, "unitTypeName": null },
{"shopItemId": 110, "columnNr": 3, "gemCost": 2, "imgName": "shop_cure2.png", "txtNiceNameStringID": "SHOP_CURE_NAME", "messageTextIdent": "SHOP_CURE", "spec":"SHOP_CURE", "reSellable": true, "unitTypeName": null },
{"shopItemId": 145, "columnNr": 3, "gemCost": 3, "imgName": "shop_strength.png", "txtNiceNameStringID": "SHOP_STRENGTH_NAME", "messageTextIdent": "SHOP_STRENGTH", "spec":"SHOP_STRENGTH", "reSellable": true, "unitTypeName": null },
{"shopItemId":130, "columnNr":3, "unitTypeName":"UNIT_MONEYMAN", "gemCost":5} ,
{"shopItemId":225, "columnNr":3, "unitTypeName":"UNIT_TREBUCHET", "gemCost":8} ,
{"shopItemId":233, "columnNr":3, "unitTypeName":"TECH_UPGRADE_UNIT_CAVALRY_1", "gemCost":5} ,
{"shopItemId": 200, "columnNr": 4, "gemCost": 2, "imgName": "shop_unlock.png", "txtNiceNameStringID": "SHOP_UNLOCK_NAME", "messageTextIdent": "SHOP_UNLOCK", "spec":"SHOP_UNLOCK", "reSellable": true, "unitTypeName": null },
{"shopItemId": 150, "columnNr": 4, "gemCost": 2, "imgName": "shop_stuffy_doll.png", "txtNiceNameStringID": "SHOP_STUFFY_DOLL_NAME", "messageTextIdent": "SHOP_STUFFY_DOLL", "spec":"SHOP_STUFFY_DOLL", "reSellable": true, "unitTypeName": null },
{"shopItemId": 140, "columnNr": 4, "gemCost": 3, "imgName": "shop_incinerate.png", "txtNiceNameStringID": "SHOP_INCINERATE_NAME", "messageTextIdent": "SHOP_INCINERATE", "spec":"SHOP_INCINERATE", "reSellable": true, "unitTypeName": null },
{"shopItemId": 160, "columnNr": 4, "gemCost": 5, "imgName": "32_convert.png", "txtNiceNameStringID": "SHOP_CONVERT_NAME", "messageTextIdent": "SHOP_CONVERT", "spec":"SHOP_CONVERT", "reSellable": true, "unitTypeName": null },
{"shopItemId": 120, "columnNr": 4, "gemCost": 3, "imgName": "shop_production_transfer.png", "txtNiceNameStringID": "SHOP_PROD_TRN_NAME", "messageTextIdent": "SHOP_PROD_TRN", "spec":"SHOP_PROD_TRN", "reSellable": true, "unitTypeName": null },
{"shopItemId": 155, "columnNr": 4, "gemCost": 4, "imgName": "shop_clone.png", "txtNiceNameStringID": "SHOP_CLONE_NAME", "messageTextIdent": "SHOP_CLONE", "spec":"SHOP_CLONE", "reSellable": true, "unitTypeName": null },
{"shopItemId":1967, "columnNr":100, "unitTypeName":"TECH_DWARF_EXPLOSIVE_ROUNDS", "gemCost":4},
{"shopItemId":1968, "columnNr":100, "unitTypeName":"TECH_DWARF_GRAPESHOT_ROUNDS", "gemCost":4},
{"shopItemId":1963, "columnNr":100, "unitTypeName":"TECH_DWARF_MISSILES", "gemCost":4},
{"shopItemId":1969, "columnNr":101, "unitTypeName":"TECH_UND_DISMEMBERMENT", "gemCost":6, "unitTypeNames":["UNIT_UND_WORKER", "UNIT_UND_SKELETON_MONSTER_LABOURER"]},
{"shopItemId":1970, "columnNr":101, "unitTypeName":"UNIT_UND_SKELETON_DENEZIN", "gemCost":4}
],
"shopConfigTitles": [
{"pageNr": 0, "titleID": "shop_page_title_human", "raceIDString": ""} ,
{"pageNr": 1, "titleID": "shop_page_title_orc", "raceIDString": ""} ,
{"pageNr": 2, "titleID": "shop_page_title_undead", "raceIDString": ""} ,
{"pageNr": 3, "titleID": "shop_page_title_elf", "raceIDString": ""} ,
{"pageNr": 4, "titleID": "shop_page_title_dwarf", "raceIDString": ""} ,
{"pageNr": 5, "titleID": "shop_page_title_scaledfolk", "raceIDString": ""} ,
{"pageNr": 6, "titleID": "shop_page_title_human_imp", "raceIDString": ""} ,
]
}
shopItemId - must be uniqu in file.
columnNr - which column to put it (in shoplist)
unitTypeName - which unit it unlocks (optional)
unitTypeNames - which additional unit it unlocks (optional)
gemCost - gemcost
shopConfigTitles- in this section you can set titles for the pages (pageNR = 0 is the first page). the title is a strings.xml ID (not the title text itself)
Shopitem aligment
In general: the shop should be mixed so it will give a "in-deterministic" mistery for the player what will be unlocked next.
However on multi-race games the page-per race approach seemed needed, so in general all games should try to make race-per page approach - but inside a page a completely mixed alignment.
Also we thought of "beginner" players, they need to know which page contains the "basics" so start open upgrades from there, so some first few pages can be called the basics to help them.
In AOF: in here as we have extended amount of "subrace" content we can make
- clean subrace pages
- and we can make in mixed pages subrace-clean-columns too.
like this:
- undead basics
-- here maybe totally mixed columns, or can be by skeleton/zombie if it can be a clean column (costiers later cheapers sooner)
- undead
-- nightmare column
-- nightmare column
-- phantom column
-- mixed other small things column
- undead
-- casters column
-- soulforge columns
-- soulforge columns
-- mixed other small things column
- undead-wight
-- wight column
-- wight column
-- wight column
-- wight column