diff --git a/data/json/itemgroups/Drugs_Tobacco_Alcohol/drugs.json b/data/json/itemgroups/Drugs_Tobacco_Alcohol/drugs.json index c7d28bc4c8551..660a8fc7e1bd3 100644 --- a/data/json/itemgroups/Drugs_Tobacco_Alcohol/drugs.json +++ b/data/json/itemgroups/Drugs_Tobacco_Alcohol/drugs.json @@ -152,6 +152,7 @@ { "item": "aspirin", "prob": 85, "charges": [ 1, 20 ] }, { "item": "caffeine", "prob": 25, "charges": [ 1, 10 ] }, { "item": "pills_sleep", "prob": 15, "charges": [ 1, 10 ] }, + { "item": "melatonin_tablet", "prob": 10, "charges": [ 1, 30 ] }, { "item": "iodine", "prob": 5, "charges": [ 1, 10 ] }, { "item": "prussian_blue", "prob": 5, "charges": [ 1, 10 ] }, { "item": "dayquil", "prob": 70, "charges": [ 1, 5 ] }, diff --git a/data/json/itemgroups/Locations_MapExtras/locations_commercial.json b/data/json/itemgroups/Locations_MapExtras/locations_commercial.json index 86e767c5ee80d..d8330af418ae4 100644 --- a/data/json/itemgroups/Locations_MapExtras/locations_commercial.json +++ b/data/json/itemgroups/Locations_MapExtras/locations_commercial.json @@ -8,6 +8,7 @@ "entries": [ { "item": "aspirin", "prob": 85, "charges": [ 1, 10 ] }, { "item": "caffeine", "prob": 25, "charges": [ 1, 10 ] }, + { "item": "melatonin_tablet", "prob": 5, "charges": [ 1, 30 ] }, { "group": "tobacco_products", "prob": 161 }, { "item": "sponge", "prob": 10 }, { "group": "ammo_pocket_batteries_full", "prob": 50 }, diff --git a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json index eb1f1418efa36..7838b69bb3411 100644 --- a/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json +++ b/data/json/itemgroups/Locations_MapExtras/mall_item_groups.json @@ -85,6 +85,7 @@ [ "aspirin", 45 ], [ "caffeine", 50 ], [ "pills_sleep", 45 ], + [ "melatonin_tablet", 30 ], [ "disinfectant", 15 ], [ "vaccine_shot", 10 ], [ "protein_powder", 40 ], diff --git a/data/json/itemgroups/SUS/domestic.json b/data/json/itemgroups/SUS/domestic.json index c44f48c2ad5ed..99044d22316a2 100644 --- a/data/json/itemgroups/SUS/domestic.json +++ b/data/json/itemgroups/SUS/domestic.json @@ -649,7 +649,13 @@ { "item": "eyedrops", "prob": 15 }, { "item": "pepto", "prob": 70, "charges-min": 1, "container-item": "bottle_plastic_small" }, { "item": "inhaler", "prob": 25, "charges-min": 10, "charges-max": 100 }, - { "item": "pills_sleep", "prob": 10, "charges": [ 1, 10 ] }, + { + "distribution": [ + { "item": "pills_sleep", "prob": 60, "charges": [ 1, 10 ] }, + { "item": "melatonin_tablet", "prob": 40, "charges": [ 1, 30 ] } + ], + "prob": 10 + }, { "distribution": [ { "item": "nyquil", "prob": 60, "charges-min": 1 }, { "item": "dayquil", "prob": 20, "charges-min": 1 } ], "prob": 50 diff --git a/data/json/itemgroups/collections_domestic.json b/data/json/itemgroups/collections_domestic.json index 428fa249a7c5e..e6d0c85b10325 100644 --- a/data/json/itemgroups/collections_domestic.json +++ b/data/json/itemgroups/collections_domestic.json @@ -262,6 +262,7 @@ [ "eyedrops", 10 ], [ "holy_symbol", 5 ], [ "pills_sleep", 5 ], + { "item": "melatonin_tablet", "prob": 3, "charges": [ 1, 30 ] }, { "item": "nyquil", "prob": 5, "charges": [ 1, 5 ] }, { "group": "mansion_guns", "prob": 3 }, { "group": "harddrugs", "prob": 1 }, diff --git a/data/json/itemgroups/stashes.json b/data/json/itemgroups/stashes.json index 5da370956c5bc..0eb0b6a6f639a 100644 --- a/data/json/itemgroups/stashes.json +++ b/data/json/itemgroups/stashes.json @@ -44,6 +44,7 @@ "id": "stash_drugs", "items": [ { "item": "pills_sleep", "prob": 15, "charges": [ 1, 10 ] }, + { "item": "melatonin_tablet", "prob": 5, "charges": [ 1, 30 ] }, { "item": "oxycodone", "prob": 4, "charges": [ 1, 10 ] }, { "item": "morphine", "prob": 4, "charges": [ 1, 4 ] }, { "item": "xanax", "prob": 10, "charges": [ 1, 10 ] }, diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 0b48a50938a2b..1850f95d7feed 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -1838,6 +1838,7 @@ { "type": "GENERIC", "id": "mobile_memory_card_used", + "looks_like": "mobile_memory_card", "symbol": ",", "color": "white", "name": { "str": "SD-Memory card (clean)", "str_pl": "SD-Memory cards (clean)" }, @@ -1853,6 +1854,7 @@ { "type": "GENERIC", "id": "mobile_memory_card_encrypted", + "looks_like": "mobile_memory_card", "symbol": ",", "color": "white", "name": { "str": "SD-Memory card (encrypted)", "str_pl": "SD-Memory cards (encrypted)" }, @@ -1867,6 +1869,7 @@ { "type": "GENERIC", "id": "mobile_memory_card_science", + "looks_like": "mobile_memory_card", "symbol": ",", "color": "white", "name": { "str": "Science SD-Memory card" }, diff --git a/data/json/items/vehicle/engine.json b/data/json/items/vehicle/engine.json index 4c6cc83f54191..499fff382ba4a 100644 --- a/data/json/items/vehicle/engine.json +++ b/data/json/items/vehicle/engine.json @@ -315,7 +315,8 @@ "type": "ENGINE", "name": { "str": "1900 hp gas turbine engine" }, "description": "A large gas turbine engine, usually used for military helicopters. Known for its high rate of fuel consumption.", - "weight": "1582000 g", + "weight": "400000 g", + "//": "Much lighter weight than the 1,350 HP small gas turbine. Doubled the published weight to account for a transmission.", "volume": "63 L", "price": 192000, "price_postapoc": 5000, @@ -327,7 +328,7 @@ "type": "ENGINE", "name": { "str": "6000 hp gas turbine engine" }, "description": "A massive gas turbine engine, used to power the V-22 Osprey. Known for its high rate of fuel consumption.", - "weight": "3164000 g", + "weight": "900000 g", "volume": "95 L", "price": 960000, "price_postapoc": 7500, diff --git a/data/json/mapgen/farm_stills.json b/data/json/mapgen/farm_stills.json index c89d08980f154..634b7e6828f31 100644 --- a/data/json/mapgen/farm_stills.json +++ b/data/json/mapgen/farm_stills.json @@ -297,7 +297,7 @@ "W": "f_wood_keg" }, "place_vehicles": [ { "vehicle": "bikeshop", "x": 22, "y": 19, "chance": 100, "rotation": 90 } ], - "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 1000 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 1000 ] } }, + "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 500 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 500 ] } }, "items": { "%": { "item": "wines_worthy", "chance": 70, "repeat": [ 1, 2 ] }, "0": { "item": "keg_wine_intact", "chance": 70 }, diff --git a/data/json/mapgen/isherwood_farms/farm_isherwood.json b/data/json/mapgen/isherwood_farms/farm_isherwood.json index b275ad4c5e6e0..38b63d7da9e0e 100644 --- a/data/json/mapgen/isherwood_farms/farm_isherwood.json +++ b/data/json/mapgen/isherwood_farms/farm_isherwood.json @@ -300,7 +300,7 @@ "X": "f_wood_keg", "W": "f_wood_keg" }, - "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 1000 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 1000 ] } }, + "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 500 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 500 ] } }, "items": { "a": { "item": "dry_goods", "chance": 50, "repeat": [ 2, 8 ] }, "r": { "item": "preserved_food", "chance": 50, "repeat": [ 2, 8 ] }, diff --git a/data/json/mapgen/mansion.json b/data/json/mapgen/mansion.json index 9a1b7877ff8f0..e04c172b7f8b9 100644 --- a/data/json/mapgen/mansion.json +++ b/data/json/mapgen/mansion.json @@ -2737,7 +2737,7 @@ "=": "f_machinery_old", "}": "f_generator_broken" }, - "liquids": { "!": { "liquid": "wine_chardonnay", "amount": [ 100, 1000 ] } }, + "liquids": { "!": { "liquid": "wine_chardonnay", "amount": [ 100, 500 ] } }, "place_loot": [ { "item": "deck_of_cards", "x": 16, "y": 11, "chance": 100 } ], "items": { "%": { "item": "wines_worthy", "chance": 70, "repeat": [ 1, 2 ] }, diff --git a/data/json/mapgen/nested/basement_nested.json b/data/json/mapgen/nested/basement_nested.json index c56498fb9ef7f..a21060126d096 100644 --- a/data/json/mapgen/nested/basement_nested.json +++ b/data/json/mapgen/nested/basement_nested.json @@ -1304,7 +1304,7 @@ "palettes": [ "standard_domestic_palette" ], "terrain": { "|": "t_wall_wood" }, "furniture": { "%": "f_rack_wood", "$": "f_fvat_empty", "0": "f_wood_keg", "!": "f_wood_keg" }, - "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 1000 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 1000 ] } }, + "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 500 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 500 ] } }, "items": { "%": [ { "item": "liqstore_brew", "chance": 50, "repeat": [ 2, 8 ] }, @@ -1332,7 +1332,7 @@ "palettes": [ "standard_domestic_palette" ], "terrain": { "|": "t_wall_wood" }, "furniture": { "%": "f_rack_wood", "$": "f_fvat_empty", "0": "f_wood_keg", "!": "f_wood_keg" }, - "liquids": { "0": { "liquid": "hb_beer", "amount": [ 10, 1000 ] }, "!": { "liquid": "dandelion_wine", "amount": [ 10, 1000 ] } }, + "liquids": { "0": { "liquid": "hb_beer", "amount": [ 10, 500 ] }, "!": { "liquid": "dandelion_wine", "amount": [ 10, 500 ] } }, "items": { "%": [ { "item": "liqstore_brew", "chance": 50, "repeat": [ 2, 8 ] }, @@ -1360,7 +1360,7 @@ "palettes": [ "standard_domestic_palette" ], "terrain": { "|": "t_wall_wood" }, "furniture": { "%": "f_rack_wood", "$": "f_fvat_empty", "0": "f_wood_keg", ",": "f_still", "~": "f_ash", "!": "f_wood_keg" }, - "liquids": { "0": { "liquid": "moonshine", "amount": [ 100, 1000 ] }, "!": { "liquid": "mead", "amount": [ 100, 1000 ] } }, + "liquids": { "0": { "liquid": "moonshine", "amount": [ 100, 500 ] }, "!": { "liquid": "mead", "amount": [ 100, 500 ] } }, "items": { "%": [ { "item": "liqstore_brew", "chance": 50, "repeat": [ 2, 8 ] }, @@ -1388,7 +1388,7 @@ "palettes": [ "standard_domestic_palette" ], "terrain": { "|": "t_wall_wood" }, "furniture": { "%": "f_rack_wood", "$": "f_fvat_empty", "0": "f_wood_keg", ",": "f_still", "~": "f_ash", "!": "f_wood_keg" }, - "liquids": { "0": { "liquid": "moonshine", "amount": [ 100, 1000 ] }, "!": { "liquid": "mead", "amount": [ 100, 1000 ] } }, + "liquids": { "0": { "liquid": "moonshine", "amount": [ 100, 500 ] }, "!": { "liquid": "mead", "amount": [ 100, 500 ] } }, "items": { "%": [ { "item": "liqstore_brew", "chance": 50, "repeat": [ 2, 8 ] }, @@ -1819,8 +1819,8 @@ }, "furniture": { "%": "f_rack_wood", "0": "f_wood_keg", "!": "f_wood_keg", "t": "f_table", "E": "f_armchair", "m": "f_glass_fridge" }, "liquids": { - "0": { "liquid": "wine_cabernet", "amount": [ 100, 1000 ] }, - "!": { "liquid": "wine_chardonnay", "amount": [ 100, 1000 ] } + "0": { "liquid": "wine_cabernet", "amount": [ 100, 500 ] }, + "!": { "liquid": "wine_chardonnay", "amount": [ 100, 500 ] } }, "place_loot": [ { "item": "deck_of_cards", "x": 3, "y": 3, "chance": 100 } ], "items": { @@ -1860,8 +1860,8 @@ }, "furniture": { "%": "f_rack_wood", "0": "f_wood_keg", "!": "f_wood_keg", "t": "f_table", "E": "f_armchair", "m": "f_glass_fridge" }, "liquids": { - "0": { "liquid": "wine_cabernet", "amount": [ 100, 1000 ] }, - "!": { "liquid": "wine_chardonnay", "amount": [ 100, 1000 ] } + "0": { "liquid": "wine_cabernet", "amount": [ 100, 500 ] }, + "!": { "liquid": "wine_chardonnay", "amount": [ 100, 500 ] } }, "place_loot": [ { "item": "deck_of_cards", "x": 3, "y": 3, "chance": 100 } ], "items": { @@ -1901,8 +1901,8 @@ }, "furniture": { "%": "f_rack_wood", "0": "f_wood_keg", "!": "f_wood_keg", "t": "f_table", "E": "f_armchair", "m": "f_glass_fridge" }, "liquids": { - "0": { "liquid": "wine_cabernet", "amount": [ 100, 1000 ] }, - "!": { "liquid": "wine_chardonnay", "amount": [ 100, 1000 ] } + "0": { "liquid": "wine_cabernet", "amount": [ 100, 500 ] }, + "!": { "liquid": "wine_chardonnay", "amount": [ 100, 500 ] } }, "place_loot": [ { "item": "deck_of_cards", "x": 3, "y": 3, "chance": 100 } ], "items": { @@ -1942,8 +1942,8 @@ }, "furniture": { "%": "f_rack_wood", "0": "f_wood_keg", "!": "f_wood_keg", "t": "f_table", "E": "f_armchair", "m": "f_glass_fridge" }, "liquids": { - "0": { "liquid": "wine_cabernet", "amount": [ 100, 1000 ] }, - "!": { "liquid": "wine_chardonnay", "amount": [ 100, 1000 ] } + "0": { "liquid": "wine_cabernet", "amount": [ 100, 500 ] }, + "!": { "liquid": "wine_chardonnay", "amount": [ 100, 500 ] } }, "place_loot": [ { "item": "deck_of_cards", "x": 3, "y": 3, "chance": 100 } ], "items": { diff --git a/data/json/mapgen/riverside/potters_cottage.json b/data/json/mapgen/riverside/potters_cottage.json index 4b411cd76098a..f3a0d579a16f8 100644 --- a/data/json/mapgen/riverside/potters_cottage.json +++ b/data/json/mapgen/riverside/potters_cottage.json @@ -279,7 +279,7 @@ "W": "f_wood_keg" }, "place_vehicles": [ { "vehicle": "bikeshop", "x": 22, "y": 19, "chance": 100, "rotation": 90 } ], - "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 1000 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 1000 ] } }, + "liquids": { "X": { "liquid": "hb_beer", "amount": [ 100, 500 ] }, "W": { "liquid": "dandelion_wine", "amount": [ 100, 500 ] } }, "items": { "a": { "item": "dry_goods", "chance": 50, "repeat": [ 2, 8 ] }, "r": { "item": "preserved_food", "chance": 50, "repeat": [ 2, 8 ] }, diff --git a/data/json/mutations/mutations.json b/data/json/mutations/mutations.json index 0136745a04956..c05898734bfeb 100644 --- a/data/json/mutations/mutations.json +++ b/data/json/mutations/mutations.json @@ -4168,6 +4168,7 @@ { "type": "mutation", "id": "LARGE", + "flags": [ "LARGE" ], "name": { "str": "Inconveniently Large" }, "points": 0, "visibility": 1, @@ -4186,6 +4187,7 @@ { "type": "mutation", "id": "LARGE_OK", + "flags": [ "LARGE" ], "name": { "str": "Large" }, "points": 2, "visibility": 1, @@ -4204,6 +4206,7 @@ { "type": "mutation", "id": "HUGE", + "flags": [ "HUGE" ], "name": { "str": "Freakishly Huge" }, "points": -2, "visibility": 4, @@ -4226,6 +4229,7 @@ { "type": "mutation", "id": "HUGE_OK", + "flags": [ "HUGE" ], "name": { "str": "Huge" }, "points": 2, "visibility": 4, @@ -4532,6 +4536,7 @@ { "type": "mutation", "id": "SMALL", + "flags": [ "SMALL" ], "name": { "str": "Little" }, "points": -2, "visibility": 5, @@ -4548,6 +4553,7 @@ { "type": "mutation", "id": "SMALL2", + "flags": [ "TINY" ], "name": { "str": "Tiny" }, "points": -4, "visibility": 8, @@ -4566,6 +4572,7 @@ { "type": "mutation", "id": "SMALL_OK", + "flags": [ "TINY" ], "name": { "str": "Unassuming" }, "points": 3, "mixed_effect": true, diff --git a/data/json/professions.json b/data/json/professions.json index 25e1cc25d887d..6c9f2be3cd703 100644 --- a/data/json/professions.json +++ b/data/json/professions.json @@ -1547,12 +1547,7 @@ { "item": "legpouch_large", "contents-group": "army_mags_usp9" }, { "item": "usp_9mm", "ammo-item": "9mmfmj", "charges": 15, "container-item": "holster" }, { "item": "baton-extended", "container-item": "police_belt" }, - { - "item": "ksg", - "ammo-item": "shot_00", - "charges": 7, - "contents-item": [ "shoulder_strap", "ksg_aux_shotgun" ] - } + { "item": "ksg", "ammo-item": "shot_00", "charges": 7, "contents-item": [ "shoulder_strap" ] } ] }, "male": [ "boxer_shorts" ], @@ -3777,6 +3772,10 @@ "scalpel", "syringe", "morphine", + "aspirin", + "antibiotics", + "disinfectant", + "pepto", "molle_pack" ], "entries": [ diff --git a/data/json/recipes/recipe_companion.json b/data/json/recipes/recipe_companion.json index accf5343f7c67..b21dba4feb1af 100644 --- a/data/json/recipes/recipe_companion.json +++ b/data/json/recipes/recipe_companion.json @@ -3,6 +3,7 @@ "type": "recipe", "activity_level": "fake", "result": "charcoal", + "byproducts": [ [ "charcoal", 12 ] ], "id_suffix": "npc", "category": "CC_OTHER", "subcategory": "CSC_OTHER_MATERIALS", diff --git a/data/mods/Magiclysm/items/spellbooks.json b/data/mods/Magiclysm/items/spellbooks.json index 3c371e6ef75c8..d9e9edc028a0e 100644 --- a/data/mods/Magiclysm/items/spellbooks.json +++ b/data/mods/Magiclysm/items/spellbooks.json @@ -209,6 +209,7 @@ "description": "A small tome, seemingly covered in tanned human skin.", "weight": "355 g", "volume": "500 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "red", @@ -225,6 +226,7 @@ "description": "A bark covered book.", "weight": "355 g", "volume": "500 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "green", @@ -238,6 +240,7 @@ "//": "1 technomancer, 2 animist, 1 druid, 1 earthshaper spell", "weight": "728 g", "volume": "3 L", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_blue", @@ -254,6 +257,7 @@ "description": "Your standard wizardy looking spellbook, filled with Magus combat spells. You sure lucked out!", "weight": "434 g", "volume": "750 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -270,6 +274,7 @@ "description": "This large dusty spellbook seems perpetually, well, dusty. It contains the power of the earth.", "weight": "483 g", "volume": "825 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "brown", @@ -286,6 +291,7 @@ "description": "This small lightweight book seems to almost not entirely exist, let's say it 97% does. It contains Magus spells focused on movement.", "weight": "231 g", "volume": "500 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -299,6 +305,7 @@ "description": "This looks like someone was designing a new spell, but spilled a mug of coffee on it and crumpled it up in anger. You can tell that it will definitely cast something, but you can't be sure that it will work very well.", "weight": "129 g", "volume": "100 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -312,6 +319,7 @@ "description": "This book details various ways of summoning an undead minion to fight for you. They all appear to disappear after a short time, crumbling to dust.", "weight": "788 g", "volume": "2250 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -325,6 +333,7 @@ "description": "This thick manual instructs the spellcaster on manipulating and empowering various forms of matter and energy.", "weight": "258 g", "volume": "750 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -341,6 +350,7 @@ "//": "2 Technomancer spells", "weight": "211 g", "volume": "500 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -357,6 +367,7 @@ "description": "This lab reference material book is thick and overflowing with information on combining magic with EM radiation.", "weight": "284 g", "volume": "1 L", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_gray", @@ -370,6 +381,7 @@ "description": "A small tablet of blackened stone, apparently cut from a much larger slab. Golden runes glow over its surface, and slowly shift into intelligible sentences when you stare at them.", "weight": "4000 g", "volume": "2500 ml", + "price": 5000, "material": [ "stone" ], "symbol": "?", "color": "light_gray", @@ -383,6 +395,7 @@ "description": "This book outlines in great detail how time and space are wibbly-wobbly and non-Euclidean. It also appears to have a dozen different coordinate systems that it uses nearly interchangeably, which makes it hard to follow. There's lots of jargon, but with intense study you can probably learn a thing or two about portals.", "weight": "1200 g", "volume": "2500 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "light_blue", @@ -396,6 +409,7 @@ "description": "The Human is the only creature that seeks to improve himself. This study examines different spells that can heighten various senses temporarily, in hopes to discover a more permanent solution.", "weight": "1300 g", "volume": "2500 ml", + "price": 5000, "material": [ "paper" ], "symbol": "?", "color": "yellow", diff --git a/data/mods/Magiclysm/mutations/mutations.json b/data/mods/Magiclysm/mutations/mutations.json index df0130ef3856f..08d8cc0c7f2a6 100644 --- a/data/mods/Magiclysm/mutations/mutations.json +++ b/data/mods/Magiclysm/mutations/mutations.json @@ -184,6 +184,7 @@ { "type": "mutation", "id": "LARGE_DRAGON", + "flags": [ "LARGE" ], "name": { "str": "Inconvenient Draconic Growth" }, "points": 0, "visibility": 1, @@ -202,6 +203,7 @@ { "type": "mutation", "id": "LARGE_OK_DRAGON", + "flags": [ "LARGE" ], "name": { "str": "Draconic Growth" }, "points": 2, "visibility": 1, @@ -220,6 +222,7 @@ { "type": "mutation", "id": "HUGE_DRAGON", + "flags": [ "HUGE" ], "name": { "str": "Freakish Draconic Maturity" }, "points": -2, "visibility": 4, @@ -290,6 +293,7 @@ { "type": "mutation", "id": "HUGE_OK_DRAGON", + "flags": [ "HUGE" ], "name": { "str": "Draconic Maturity" }, "points": 2, "visibility": 4, diff --git a/data/mods/Magiclysm/vehicles/summoned_vehicles.json b/data/mods/Magiclysm/vehicles/summoned_vehicles.json index b9b2bce9de018..17b3552b8660c 100644 --- a/data/mods/Magiclysm/vehicles/summoned_vehicles.json +++ b/data/mods/Magiclysm/vehicles/summoned_vehicles.json @@ -70,6 +70,11 @@ "flags": [ "INITIAL_PART", "ENGINE", "STABLE", "E_STARTS_INSTANTLY", "STEERABLE", "WHEEL", "OBSTACLE", "CARGO", "MAGIC_FOLLOW" ], "damage_reduction": { "all": 12 } }, + { + "id": "MAGIC_FOLLOW", + "type": "json_flag", + "context": [ "vehicle_part" ] + }, { "id": "mana", "name": "mana energy", diff --git a/src/consumption.cpp b/src/consumption.cpp index a56d0388a5daf..41cd803635aa5 100644 --- a/src/consumption.cpp +++ b/src/consumption.cpp @@ -866,6 +866,10 @@ static bool eat( item &food, player &you, bool force ) // Note: the block below assumes we decided to eat it // No coming back from here + if( food.is_container() ) { + food.spill_contents( you ); + } + const bool hibernate = you.has_active_mutation( trait_HIBERNATE ); const int nutr = you.nutrition_for( food ); const int quench = food.get_comestible()->quench; diff --git a/src/mutation.cpp b/src/mutation.cpp index ea289fdce0c25..6a6682642227c 100644 --- a/src/mutation.cpp +++ b/src/mutation.cpp @@ -78,6 +78,12 @@ static const trait_id trait_TREE_COMMUNION( "TREE_COMMUNION" ); static const trait_id trait_VOMITOUS( "VOMITOUS" ); static const trait_id trait_WEB_WEAVER( "WEB_WEAVER" ); +static const json_character_flag json_flag_TINY( "TINY" ); +static const json_character_flag json_flag_SMALL( "SMALL" ); +static const json_character_flag json_flag_MEDIUM( "MEDIUM" ); +static const json_character_flag json_flag_LARGE( "LARGE" ); +static const json_character_flag json_flag_HUGE( "HUGE" ); + namespace io { @@ -379,13 +385,13 @@ const resistances &mutation_branch::damage_resistance( const bodypart_id &bp ) c void Character::recalculate_size() { - if( has_trait( trait_SMALL2 ) || has_trait( trait_SMALL_OK ) ) { + if( has_trait_flag( json_flag_TINY ) ) { size_class = creature_size::tiny; - } else if( has_trait( trait_SMALL ) ) { + } else if( has_trait_flag( json_flag_SMALL ) ) { size_class = creature_size::small; - } else if( has_trait( trait_LARGE ) || has_trait( trait_LARGE_OK ) ) { + } else if( has_trait_flag( json_flag_LARGE ) ) { size_class = creature_size::large; - } else if( has_trait( trait_HUGE ) || has_trait( trait_HUGE_OK ) ) { + } else if( has_trait_flag( json_flag_HUGE ) ) { size_class = creature_size::huge; } else { size_class = creature_size::medium; diff --git a/src/veh_type.cpp b/src/veh_type.cpp index 69d274810163e..504f2875516d0 100644 --- a/src/veh_type.cpp +++ b/src/veh_type.cpp @@ -678,6 +678,11 @@ void vpart_info::check() debugmsg( "Vehicle part %s breaks into non-existent item group %s.", part.id.c_str(), part.breaks_into_group.c_str() ); } + for( const auto &f : part.get_flags() ) { + if( !json_flag::get( f ) ) { + debugmsg( "vehicle part %s has unknown flag %s", part.id.c_str(), f.c_str() ); + } + } // Default symbol is always needed in case an unknown variant is encountered if( part.sym == 0 ) { debugmsg( "vehicle part %s does not define a symbol", part.id.c_str() );