From 361b8b6452e14ad5c74fad05e1ad093669103ef4 Mon Sep 17 00:00:00 2001 From: Zlorthishen <79779913+Zlorthishen@users.noreply.github.com> Date: Sun, 22 Oct 2023 21:16:10 -0500 Subject: [PATCH] feat(content, port): game store (#3469) * Update fluff.json * Update overmap_terrain_commercial.json * Update multitile_city_buildings.json * Update regional_map_settings.json * Update activities_hobbies.json * Update mansion.json * Update mall_item_groups.json * style(autofix.ci): automated formatting * Add files via upload * Update regional_map_settings.json * Update activities_hobbies.json * style(autofix.ci): automated formatting * Update multitile_city_buildings.json * style(autofix.ci): automated formatting --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../Locations_MapExtras/mall_item_groups.json | 12 +- .../Locations_MapExtras/mansion.json | 19 +- data/json/itemgroups/activities_hobbies.json | 26 ++- data/json/items/fluff.json | 176 ++++++++++++++++++ data/json/mapgen/s_games.json | 139 ++++++++++++++ .../overmap/multitile_city_buildings.json | 6 + .../overmap_terrain_commercial.json | 14 ++ data/json/regional_map_settings.json | 1 + 8 files changed, 384 insertions(+), 9 deletions(-) create mode 100644 data/json/mapgen/s_games.json diff --git a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json index 0841f79f760..031e545771a 100644 --- a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json +++ b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json @@ -93,19 +93,25 @@ [ "portable_game", 60 ], [ "bat", 60 ], [ "backpack", 40 ], - [ "pockknife", 20 ], + [ "pockknife", 5 ], [ "wristwatch", 20 ], [ "teleumbrella", 5 ], { "group": "kids_books", "prob": 155 }, + { "group": "games", "prob": 170 }, + [ "frisbee", 40 ], + [ "disc_golf", 40 ], + [ "magic_8_ball", 30 ], [ "novel_pulp", 20 ], [ "folding_bicycle", 5 ], [ "sunglasses", 25 ], - [ "cowboy_hat", 25 ], - [ "mp3", 40 ], [ "wolfsuit", 5 ], [ "dinosuit", 5 ], [ "gum", 10 ], + [ "baseball", 40 ], + [ "football", 40 ], + [ "basketball", 50 ], [ "talking_doll", 50 ], + [ "marble", 60 ], [ "creepy_doll", 1 ], [ "jedi_cloak", 5 ], [ "clown_suit", 5 ], diff --git a/data/json/itemgroups/Locations_MapExtras/mansion.json b/data/json/itemgroups/Locations_MapExtras/mansion.json index bd0b6889844..7a8de7a0074 100644 --- a/data/json/itemgroups/Locations_MapExtras/mansion.json +++ b/data/json/itemgroups/Locations_MapExtras/mansion.json @@ -712,13 +712,21 @@ "magazine": 100, "subtype": "distribution", "items": [ - [ "bat_nerf", 100 ], - [ "marble", 60 ], + [ "bat_nerf", 70 ], + [ "marble", 50 ], [ "talking_doll", 50 ], - [ "fc_hairpin", 50 ], - { "group": "kids_books", "prob": 170 }, - [ "backpack", 40 ], + [ "basketball", 30 ], + [ "fc_hairpin", 30 ], + { "group": "kids_books", "prob": 170, "count": [ 1, 4 ] }, + { "group": "games", "prob": 170, "count": [ 1, 2 ] }, + [ "backpack", 20 ], + [ "baseball", 30 ], + [ "football", 20 ], + [ "frisbee", 40 ], + [ "disc_golf", 20 ], + [ "radio_car_box", 10 ], [ "orangesoda", 30 ], + [ "magic_8_ball", 10 ], [ "hairpin", 30 ], [ "purple_drink", 20 ], [ "candy", 20 ], @@ -726,6 +734,7 @@ [ "rock", 10 ], [ "bat", 10 ], [ "creepy_doll", 3 ], + [ "portable_game", 5 ], [ "whistle", 3 ] ] }, diff --git a/data/json/itemgroups/activities_hobbies.json b/data/json/itemgroups/activities_hobbies.json index 57e3c00bda2..a6745c4cc5d 100644 --- a/data/json/itemgroups/activities_hobbies.json +++ b/data/json/itemgroups/activities_hobbies.json @@ -222,8 +222,8 @@ [ "textbook_traps", 8 ], [ "lighter", 60 ], [ "ref_lighter", 10 ], - [ "electric_lighter", 10 ], [ "matches", 60 ], + [ "electric_lighter", 10 ], [ "sewing_kit", 47 ], [ "tailors_kit", 3 ], [ "thread", 40 ], @@ -324,5 +324,29 @@ [ "survival_kit", 30 ], [ "premium_survival_kit", 3 ] ] + }, + { + "type": "item_group", + "id": "games", + "items": [ + [ "chess", 50 ], + [ "checkers", 50 ], + [ "deck_of_cards", 50 ], + [ "cards_magic", 50 ], + [ "pictionary", 50 ], + [ "monopoly", 50 ], + [ "dnd", 50 ], + [ "g_warhammer", 50 ], + [ "g_warhammer40k", 50 ], + [ "catan", 50 ], + [ "battleship", 50 ], + [ "clue", 50 ], + [ "metal_RPG_die", 30 ], + [ "RPG_die", 40 ], + [ "character_sheet", 20 ], + [ "scorecard", 10 ], + [ "dnd_handbook", 5 ], + [ "portable_game", 5 ] + ] } ] diff --git a/data/json/items/fluff.json b/data/json/items/fluff.json index 1b9438f0d83..b1a6aa3fb1c 100644 --- a/data/json/items/fluff.json +++ b/data/json/items/fluff.json @@ -59,5 +59,181 @@ "material": [ "paper" ], "symbol": "*", "color": "light_gray" + }, + { + "id": "chess", + "type": "GENERIC", + "category": "other", + "name": { "str": "chess set" }, + "description": "A wooden box containing all the equipment needed to play a game of chess.", + "weight": "907 g", + "volume": "2 L", + "price": 7500, + "price_postapoc": 100, + "material": [ "wood" ], + "symbol": "?", + "color": "brown", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "checkers", + "type": "GENERIC", + "category": "other", + "name": { "str": "checkers set" }, + "description": "A wooden box containing a set of round tokens used to play checkers.", + "weight": "788 g", + "volume": "1500 ml", + "price": 2000, + "price_postapoc": 100, + "material": [ "wood" ], + "symbol": "?", + "color": "brown", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "cards_magic", + "type": "GENERIC", + "category": "other", + "name": { "str": "deck of Sorcery cards", "str_pl": "decks of Sorcery cards" }, + "description": "A set of cards meant to play the game \"Sorcery.\" Each card has a fun picture of a different monster.", + "weight": "210 g", + "volume": "250 ml", + "price": 2300, + "price_postapoc": 100, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "pictionary", + "type": "GENERIC", + "category": "other", + "name": { "str": "Picturesque", "str_pl": "sets of Picturesque" }, + "description": "A game where one draws an image, and the others attempt to guess what it is.", + "weight": "350 g", + "volume": "500 ml", + "price": 1500, + "price_postapoc": 100, + "material": [ "plastic" ], + "symbol": "?", + "color": "yellow", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "monopoly", + "type": "GENERIC", + "category": "other", + "name": { "str": "Capitalism", "str_pl": "sets of Capitalism" }, + "description": "A game where players traverse around the board buying property and swindling their friends.", + "weight": "300 g", + "volume": "500 ml", + "price": 99, + "price_postapoc": 100, + "material": [ "plastic" ], + "symbol": "?", + "color": "red", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "dnd", + "type": "GENERIC", + "category": "other", + "name": { "str": "Blobs and Bandits", "str_pl": "sets of Blobs and Bandits" }, + "description": "A roleplaying game set in the post-apocalypse, so you can pretend to survive the apocalypse while surviving the apocalypse.", + "weight": "680 g", + "volume": "1250 ml", + "price": 12950, + "price_postapoc": 1000, + "material": [ "plastic" ], + "symbol": "?", + "color": "red", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "g_warhammer", + "type": "GENERIC", + "category": "other", + "name": { "str": "Battlehammer", "str_pl": "sets of Battlehammer" }, + "description": "A strategy game featuring a set of tiny figurines of fantasy creatures.", + "weight": "680 g", + "volume": "1250 ml", + "price": 10880, + "price_postapoc": 5000, + "material": [ "plastic" ], + "symbol": "?", + "color": "yellow", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "g_warhammer40k", + "type": "GENERIC", + "category": "other", + "name": { "str": "Battlehammer 20k", "str_pl": "sets of Battlehammer 20k" }, + "description": "A strategy game featuring a set of tiny figurines of grotesque aliens and imperious space marines.", + "weight": "680 g", + "volume": "1250 ml", + "price": 10880, + "price_postapoc": 5000, + "material": [ "plastic" ], + "symbol": "?", + "color": "yellow", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "catan", + "type": "GENERIC", + "category": "other", + "name": { "str": "Settlers of the Ranch", "str_pl": "sets of Settlers of the Ranch" }, + "description": "A strategy game where players build settlements and trade for supplies.", + "weight": "804 g", + "volume": "1250 ml", + "price": 7050, + "price_postapoc": 5000, + "material": [ "wood" ], + "symbol": "?", + "color": "light_blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "battleship", + "type": "GENERIC", + "category": "other", + "name": { "str": "Warships", "str_pl": "sets of Warships" }, + "description": "A game where players try to guess where the opponent placed their ships on the board.", + "weight": "450 g", + "volume": "500 ml", + "price": 2000, + "price_postapoc": 1000, + "material": [ "plastic" ], + "symbol": "?", + "color": "blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" + }, + { + "id": "clue", + "type": "GENERIC", + "category": "other", + "name": { "str": "Murder Mystery", "str_pl": "sets of Murder Mystery" }, + "description": "A game where players try to figure out who murdered the butler.", + "weight": "370 g", + "volume": "500 ml", + "price": 2480, + "price_postapoc": 1000, + "material": [ "paper" ], + "symbol": "?", + "color": "blue", + "flags": [ "NO_REPAIR" ], + "use_action": "PLAY_GAME" } ] diff --git a/data/json/mapgen/s_games.json b/data/json/mapgen/s_games.json new file mode 100644 index 00000000000..18b62a01b36 --- /dev/null +++ b/data/json/mapgen/s_games.json @@ -0,0 +1,139 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_games" ], + "object": { + "fill_ter": "t_carpet_purple", + "rows": [ + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......fg____g____g____gf", + "......ffffffffffffffffff", + "......9##oooo#cc#oooo##.", + ".##o#o## kkkk Ykkkk #.", + ".#hhhhh| #.", + ".# iiƃ#.", + ".# l hh hh i #.", + ".# hhh | lkl hh hh i #.", + ".# hhh | l j A#.", + ".# i #.", + ".# hh hkk i #.", + ".#hhhhh| Y||c|oo||||#.", + ".##o#o###|c||D |;r#.", + ".______9#;;;| ll c;q#.", + "._______c;;;| lkkl |###.", + ".nn_____#;;m| lkkl c;q#.", + ".nn_____#mmm|F ll |;r#.", + ".nn_____######oooo#####.", + "........................" + ], + "vendingmachines": { "D": { "item_group": "vending_drink" }, "F": { "item_group": "vending_food" } }, + "terrain": { + "|": "t_wall_w", + "#": "t_brick_wall", + "o": "t_window", + "c": "t_door_c", + "_": "t_pavement", + ".": "t_region_groundcover_urban", + "f": "t_sidewalk", + "g": "t_pavement_y", + "h": "t_carpet_purple", + "i": "t_carpet_purple", + "j": "t_console_broken", + "k": "t_carpet_purple", + "l": "t_carpet_purple", + "n": "t_pavement", + "Y": "t_carpet_purple", + ";": "t_linoleum_gray", + "q": "t_linoleum_gray", + "r": "t_linoleum_gray", + "m": "t_linoleum_gray", + "s": "t_carpet_purple", + "9": "t_gutter_downspout" + }, + "furniture": { + "h": "f_rack_wood", + "i": "f_counter", + "ƃ": "f_counter_gate_c", + "k": "f_table", + "A": "f_stool", + "l": "f_chair", + "m": "f_crate_c", + "n": "f_dumpster", + "Y": "f_trashcan", + "r": "f_sink", + "s": "f_locker" + }, + "toilets": { "q": { } }, + "place_vehicles": [ + { "vehicle": "car", "x": 9, "y": 2, "chance": 35, "rotation": 270 }, + { "vehicle": "scooter_electric", "x": 5, "y": 20, "chance": 35, "rotation": 270 }, + { "vehicle": "beetle", "x": 14, "y": 2, "chance": 35, "rotation": 270 }, + { "vehicle": "electric_car", "x": 19, "y": 2, "chance": 35, "rotation": 270 } + ], + "place_loot": [ + { "group": "magazines", "chance": 50, "repeat": 5, "x": [ 2, 6 ], "y": 9 }, + { "group": "bookstore_misc", "chance": 50, "repeat": 5, "x": [ 3, 5 ], "y": 12 }, + { "group": "games", "chance": 50, "repeat": 3, "x": [ 3, 5 ], "y": 13 }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 2, 6 ], "y": 16 }, + { "group": "games", "chance": 50, "repeat": 4, "x": [ 13, 14 ], "y": [ 11, 12 ] }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 16, 17 ], "y": [ 11, 12 ] }, + { "group": "games", "chance": 50, "repeat": 4, "x": [ 9, 12 ], "y": 8 }, + { "group": "games", "chance": 50, "repeat": 4, "x": [ 17, 20 ], "y": 8 }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 12, 13 ], "y": 15 }, + { "group": "games", "chance": 50, "repeat": 5, "x": [ 15, 17 ], "y": 15 }, + { "group": "trash", "chance": 50, "repeat": 5, "x": 11, "y": 16 }, + { "group": "trash", "chance": 50, "repeat": 5, "x": 16, "y": 8 }, + { "group": "games", "chance": 50, "repeat": 3, "x": [ 9, 11 ], "y": 21 }, + { "group": "games", "chance": 50, "repeat": 4, "x": 11, "y": 20 }, + { "group": "cleaning_bulk", "chance": 80, "x": 18, "y": 21 }, + { "group": "vending_food_items", "chance": 80, "repeat": 4, "x": 19, "y": [ 14, 15 ] }, + { "group": "trash", "chance": 50, "repeat": 5, "x": [ 1, 2 ], "y": [ 20, 22 ] }, + { "item": "dnd_handbook", "x": 16, "y": 20, "chance": 100 }, + { "item": "dnd", "x": 15, "y": 20, "chance": 90 }, + { "item": "character_sheet", "x": [ 15, 16 ], "y": [ 19, 20 ], "chance": 80, "repeat": [ 1, 6 ] }, + { "item": "metal_RPG_die", "x": 16, "y": 19, "chance": 10 }, + { "item": "RPG_die", "x": 15, "y": 19, "chance": 90, "repeat": [ 1, 4 ] } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "s_games_roof" ], + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " |222222222222223 ", + " |222225..............3 ", + " |...............X.:..3 ", + " |....................3 ", + " |....................3 ", + " |...A...........=&...3 ", + " |....................3 ", + " |....................3 ", + " |....................3 ", + " |....................3 ", + " |-----5|.............3 ", + " |.............3 ", + " |.............3 ", + " |........A....3 ", + " |.............3 ", + " |-------------3 ", + " " + ], + "palettes": [ "roof_palette" ] + } + } +] diff --git a/data/json/overmap/multitile_city_buildings.json b/data/json/overmap/multitile_city_buildings.json index cef6a12b31b..4124a2b0778 100644 --- a/data/json/overmap/multitile_city_buildings.json +++ b/data/json/overmap/multitile_city_buildings.json @@ -3802,5 +3802,11 @@ { "point": [ 0, 0, 0 ], "overmap": "s_laundromat_1_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_laundromat_roof_1_north" } ] + }, + { + "type": "city_building", + "id": "s_games", + "locations": [ "land" ], + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "s_games_north" }, { "point": [ 0, 0, 1 ], "overmap": "s_games_roof_north" } ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json index 1b9abe94e1f..5d3488e6b35 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_commercial.json @@ -1507,5 +1507,19 @@ "urban_14_9" ], "copy-from": "urban_13_3" + }, + { + "type": "overmap_terrain", + "id": "s_games", + "name": "gaming store", + "copy-from": "generic_city_building", + "sym": "g", + "color": "cyan" + }, + { + "type": "overmap_terrain", + "id": "s_games_roof", + "name": "gaming store roof", + "copy-from": "s_games" } ] diff --git a/data/json/regional_map_settings.json b/data/json/regional_map_settings.json index a64a7448dc0..b69100f0cc9 100644 --- a/data/json/regional_map_settings.json +++ b/data/json/regional_map_settings.json @@ -928,6 +928,7 @@ "shopping_plaza": 125, "movie_theater": 75, "garage_gas_city": 250, + "s_games": 80, "2fmotel_city": 50, "cs_car_dealership": 100, "cs_car_showroom": 100, -- 2.42.0