diff --git a/data/json/effects.json b/data/json/effects.json index fb08b9c0515f3..f2b9089897a45 100644 --- a/data/json/effects.json +++ b/data/json/effects.json @@ -607,7 +607,7 @@ "name": [ "Unstable Footing" ], "desc": [ "Your footing is unstable. It's more difficult to fight while standing here." ], "apply_message": "You try to keep your balance.", - "resist_traits": [ "GASTROPOD_BALANCE" ], + "resist_traits": [ "GASTROPOD_BALANCE", "BIRD_LEGS" ], "rating": "bad", "limb_score_mods": [ { "limb_score": "balance", "modifier": 0.75 }, { "limb_score": "footing", "modifier": 0.4 } ], "flags": [ "EFFECT_LIMB_SCORE_MOD" ] diff --git a/data/json/furniture_and_terrain/terrain-flora.json b/data/json/furniture_and_terrain/terrain-flora.json index 30c8e711d4972..54d30985f998c 100644 --- a/data/json/furniture_and_terrain/terrain-flora.json +++ b/data/json/furniture_and_terrain/terrain-flora.json @@ -8,7 +8,8 @@ "color": [ "green", "green", "yellow_yellow", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_walnut_harvested", "examine_action": "harvest_ter", "looks_like": "t_tree_hickory", @@ -31,7 +32,8 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_walnut", "looks_like": "t_tree_hickory_harvested", "bash": { @@ -56,7 +58,8 @@ "color": [ "green", "green", "yellow_yellow", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_walnut_harvested", "examine_action": "harvest_ter", "looks_like": "t_tree_blackjack", @@ -79,7 +82,8 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_butternut", "looks_like": "t_tree_blackjack_harvested", "bash": { @@ -105,7 +109,8 @@ "color": "yellow", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_blackjack_harvested", "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "id": "blackjack_harv" } ], @@ -132,7 +137,8 @@ "color": "brown", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_blackjack", "bash": { "str_min": 80, @@ -156,10 +162,11 @@ "color": [ "green", "green", "yellow_yellow", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_alder_harvested", "examine_action": "harvest_ter", "looks_like": "t_tree_hickory", + "roof": "t_treetop", "harvest_by_season": [ { "seasons": [ "spring", "autumn" ], "id": "alder_harv" } ], "bash": { "str_min": 80, @@ -183,9 +190,10 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_alder", "looks_like": "t_tree_hickory_harvested", + "roof": "t_treetop", "bash": { "str_min": 80, "str_max": 180, @@ -208,10 +216,11 @@ "color": [ "green", "green", "green_yellow", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_chestnut_harvested", "examine_action": "harvest_ter", "looks_like": "t_tree_hickory", + "roof": "t_treetop", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "chestnut_harv" } ], "bash": { "str_min": 80, @@ -235,8 +244,9 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_chestnut", + "roof": "t_treetop", "looks_like": "t_tree_hickory_harvested", "bash": { "str_min": 80, @@ -260,10 +270,11 @@ "color": [ "green", "green", "black_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_beech_harvested", "examine_action": "harvest_ter", "looks_like": "t_tree_hickory", + "roof": "t_treetop", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "beech_harv" } ], "bash": { "str_min": 80, @@ -287,7 +298,8 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_beech", "looks_like": "t_tree_hickory_harvested", "bash": { @@ -312,10 +324,11 @@ "color": [ "green", "green", "light_green_yellow", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_hazelnut_harvested", "examine_action": "harvest_ter", "looks_like": "t_tree_hickory", + "roof": "t_treetop", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "hazelnut_harv" } ], "bash": { "str_min": 80, @@ -339,8 +352,9 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_hazelnut", + "roof": "t_treetop", "looks_like": "t_tree_hickory_harvested", "bash": { "str_min": 80, @@ -365,9 +379,10 @@ "//": "barren in winter", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_harvested", "examine_action": "harvest_ter", + "roof": "t_treetop", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "oak_harv" } ], "bash": { "str_min": 80, @@ -392,8 +407,9 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree", + "roof": "t_treetop", "bash": { "str_min": 80, "str_max": 180, @@ -417,10 +433,11 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, + "roof": "t_treetop", "examine_action": "harvest_ter_nectar", "transforms_into": "t_tree_basswood_harvested", "harvest_by_season": [ { "seasons": [ "spring" ], "id": "young_leaves_harv" } ], - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "bash": { "str_min": 80, "str_max": 180, @@ -444,8 +461,9 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, + "roof": "t_treetop", "transforms_into": "t_tree_basswood", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 80, "str_max": 180, @@ -470,7 +488,8 @@ "//": "Do something cool with this and have it spread cotton around the area or something.", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_cottonwood_harvested", "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn" ], "id": "cottonwood_harv" } ], @@ -498,7 +517,8 @@ "//": "Do something cool with this and have it spread cotton around the area or something.", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_cottonwood", "bash": { "str_min": 80, @@ -523,7 +543,8 @@ "color": [ "green", "green", "green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 80, "str_max": 180, @@ -547,11 +568,12 @@ "color": "brown", "move_cost": 0, "coverage": 80, + "roof": "t_treetop_dead", "examine_action": "harvest_ter", "//": "gives a maximum of ~15L and ~8.5kg of wood between sticks and twigs", "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "id": "tree_dead_harv" } ], "transforms_into": "t_tree_very_dead", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 70, "str_max": 140, @@ -567,13 +589,14 @@ "//": "we must avoid copy-from here so that the dead tree cannot regrow and be harvested again", "name": "dead tree", "looks_like": "t_tree_dead", + "roof": "t_treetop_dead", "description": "An indiscernible tree that has withered away due to weather, fire, or otherworldly causes. Someone or something has broken most of its dead branches, leaving little but its gnarled trunk.", "symbol": "7", "color": "brown", "move_cost": 0, "coverage": 80, "examine_action": "harvested_plant", - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 70, "str_max": 140, @@ -603,7 +626,7 @@ "color": [ "green", "green", "green", "brown" ], "//": "barren in winter", "move_cost": 4, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "YOUNG", "REDUCE_SCENT" ], + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "YOUNG", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 4, "str_max": 50, @@ -628,7 +651,8 @@ "color": [ "red_green", "red_green", "red_green", "brown" ], "//": "barren in winter", "move_cost": 4, - "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "YOUNG", "REDUCE_SCENT" ], + "roof": "t_treetop_mega_fern", + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "NOITEM", "YOUNG", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 4, "str_max": 50, @@ -643,13 +667,14 @@ "id": "t_tree_apple", "name": "apple tree", "looks_like": "t_tree", + "roof": "t_treetop", "description": "This tree is a member of the 'Malus' genus, producing fruit commonly known as apples. If you examined the branches more closely, you could probably find a few mature ones in autumn.", "symbol": "7", "color": [ "light_green", "light_green", "red_green", "brown" ], "//": "barren in winter, fruits in autumn", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_apple_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "apple_harv" } ], @@ -671,13 +696,14 @@ "id": "t_tree_apple_harvested", "name": "apple tree", "looks_like": "t_tree_dead", + "roof": "t_treetop", "description": "This tree is a member of the 'Malus' genus, producing fruit commonly known as apples. There do not appear to be any ripe apples now.", "symbol": "7", "color": [ "light_green", "light_green", "light_green", "brown" ], "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_apple", "bash": { @@ -698,13 +724,14 @@ "id": "t_tree_pear", "name": "pear tree", "looks_like": "t_tree_apple", + "roof": "t_treetop", "description": "This is 'Pyrus communis', or the common pear tree, which produces fruit in the fall. If you examined the branches more closely, you could probably find a few mature ones.", "symbol": "7", "color": [ "light_green", "light_green", "light_green_green", "brown" ], "//": "barren in winter, fruits in autumn", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_pear_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "pear_harv" } ], @@ -726,13 +753,14 @@ "id": "t_tree_pear_harvested", "name": "pear tree", "looks_like": "t_tree_apple_harvested", + "roof": "t_treetop", "description": "This is 'Pyrus communis', or the common pear tree, which produces fruit in the fall. Looks like all the ripe pears have been picked.", "symbol": "7", "color": [ "light_green", "light_green", "light_green", "brown" ], "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_pear", "bash": { @@ -758,7 +786,8 @@ "//": "barren in winter, fruits in autumn", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_coffee_harvested", "looks_like": "t_tree_plum", "examine_action": "harvest_ter_nectar", @@ -786,7 +815,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_coffee", "looks_like": "t_tree_plum_harvested", @@ -814,7 +844,8 @@ "//": "barren in winter, fruits in summer", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_cherry_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "summer" ], "id": "cherry_harv" } ], @@ -842,7 +873,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_cherry", "bash": { @@ -869,7 +901,8 @@ "//": "Can be picked at any point in the third year assuming the berries have turned blue. But it takes a long time to regrow.", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_juniper_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "juniper_harv" } ], @@ -893,7 +926,8 @@ "//": "Will take three years to regrow, in reality.", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_juniper", "bash": { @@ -916,7 +950,8 @@ "//": "barren in winter, fruits in summer", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_peach_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "summer" ], "id": "peach_harv" } ], @@ -944,7 +979,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_peach", "bash": { @@ -971,7 +1007,8 @@ "//": "barren in winter, fruits in summer", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_apricot_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "summer" ], "id": "apricot_harv" } ], @@ -999,7 +1036,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_apricot", "bash": { @@ -1026,7 +1064,8 @@ "//": "barren in winter, fruits in summer", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_plum_harvested", "examine_action": "harvest_ter_nectar", "harvest_by_season": [ { "seasons": [ "summer" ], "id": "plum_harv" } ], @@ -1054,7 +1093,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_plum", "bash": { @@ -1080,7 +1120,8 @@ "//": "barren in winter, fruits in summer", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_mulberry_harvested", "examine_action": "harvest_ter_nectar", "looks_like": "t_tree_apple", @@ -1108,7 +1149,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_mulberry", "looks_like": "t_tree_apple_harvested", @@ -1135,7 +1177,8 @@ "//": "barren in winter, fruits in summer", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_elderberry_harvested", "examine_action": "harvest_ter_nectar", "looks_like": "t_tree_plum", @@ -1163,7 +1206,8 @@ "//": "barren in winter, no fruits anymore", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_elderberry", "looks_like": "t_tree_plum_harvested", @@ -1190,7 +1234,8 @@ "color": "green", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop_evergreen", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_pine_harvested", "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "id": "pine_harv" } ], @@ -1210,6 +1255,7 @@ "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. Some of the branches and resin clumps have been stripped away and many of the pinecones aren't developed fully yet, but given a season, it could be harvestable again.", "symbol": "4", "color": "brown", + "roof": "t_treetop_evergreen", "copy-from": "t_tree_pine", "looks_like": "t_tree_deadpine", "transforms_into": "t_tree_pine", @@ -1220,12 +1266,13 @@ "id": "t_tree_deadpine", "name": "dead pine tree", "looks_like": "t_tree_dead", + "roof": "t_treetop_dead", "description": "A towering coniferous tree that belongs to the 'Pinus' genus, with the New England species varying from 'P. strobus', 'P. resinosa' and 'P. rigida'. This tree's branches are bare, and it appears to be dead.", "symbol": "4", "color": "brown", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 60, "str_max": 120, @@ -1250,13 +1297,14 @@ "id": "t_tree_birch", "name": "birch tree", "looks_like": "t_tree", + "roof": "t_treetop", "description": "A tall deciduous tree of the 'Betula' genus, with the characteristic peeling bark. Species like 'B. alleghaniensis', 'B. papyrifera', and 'B. populifolia' are the most common in the New England region. You could tear off some strips of bark if you examined the tree more closely.", "symbol": "7", "color": "white", "//": "barren in winter, harvestable all year round", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "examine_action": "harvest_ter", "transforms_into": "t_tree_birch_harvested", "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "id": "birch_harv" } ], @@ -1278,13 +1326,14 @@ "id": "t_tree_birch_harvested", "name": "birch tree", "looks_like": "t_tree_harvested", + "roof": "t_treetop", "description": "A tall deciduous tree of the 'Betula' genus, with the characteristic peeling bark. Species like 'B. alleghaniensis', 'B. papyrifera', and 'B. populifolia' are the most common in the New England region. Looks like there isn't enough rhytidome to peel off yet.", "symbol": "7", "color": "green", "//": "dead, not harvestable", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 80, "str_max": 180, @@ -1303,13 +1352,14 @@ "id": "t_tree_willow", "name": "willow tree", "looks_like": "t_tree", + "roof": "t_treetop", "description": "A tall, wide deciduous tree of the 'Salix' genus, with long, thin, leafy branches that hang down like curtains. You could tear off some bark.", "symbol": "4", "color": [ "light_green", "light_green", "light_green", "brown" ], "//": "barren in winter, harvestable all year round", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "examine_action": "harvest_ter", "transforms_into": "t_tree_willow_harvested", "harvest_by_season": [ { "seasons": [ "spring", "summer", "autumn", "winter" ], "id": "willow_harv" } ], @@ -1333,11 +1383,12 @@ "looks_like": "t_tree_harvested", "description": "A tall, wide deciduous tree of the 'Salix' genus, with long, thin, leafy branches that hang down like curtains. Looks like all usable bark has been torn off, and new rhytidomes have not formed yet.", "symbol": "4", + "roof": "t_treetop", "color": [ "brown", "brown", "brown", "brown" ], "//": "barren in winter, not harvestable", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 80, "str_max": 180, @@ -1356,12 +1407,13 @@ "id": "t_tree_maple", "name": "maple tree", "looks_like": "t_tree", + "roof": "t_treetop", "description": "A large deciduous tree of the 'Acer' genus. The leaves are distinctively shaped with five prongs. It could be tapped in order to extract maple sap.", "symbol": "7", "color": [ "red", "light_green", "light_green", "red" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "examine_action": "tree_maple", "bash": { "str_min": 80, @@ -1381,12 +1433,13 @@ "id": "t_tree_maple_tapped", "name": "maple tree", "looks_like": "t_tree_maple", + "roof": "t_treetop", "description": "A large deciduous tree of the 'Acer' genus. The leaves are distinctively shaped with five prongs. A spigot is wedged into the trunk, and sweet maple sap can be extracted.", "symbol": "7", "color": [ "red", "light_green", "light_green", "red" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "SEALED", "PLACE_ITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "LIQUIDCONT" ], + "flags": [ "FLAMMABLE_ASH", "SEALED", "PLACE_ITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "LIQUIDCONT", "CLIMB_ADJACENT" ], "examine_action": "tree_maple_tapped", "bash": { "str_min": 80, @@ -1406,13 +1459,14 @@ "id": "t_tree_hickory", "name": "hickory tree", "looks_like": "t_tree", + "roof": "t_treetop", "description": "A tall deciduous tree of the 'Carya' genus. You could look for hickory nuts if you examined the tree more closely.", "symbol": "7", "color": [ "light_green", "light_green", "i_light_green", "brown" ], "//": "barren in winter, harvestable in autumn", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "examine_action": "tree_hickory", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "hickory_harv" } ], "transforms_into": "t_tree_hickory_harvested", @@ -1440,7 +1494,8 @@ "//": "barren in winter, kind of harvestable", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "tree_hickory", "transforms_into": "t_tree_hickory", "bash": { @@ -1467,7 +1522,8 @@ "color": [ "light_green", "light_green", "brown_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "pistachio_harv" } ], "transforms_into": "t_tree_pistachio_harvested", @@ -1490,11 +1546,12 @@ "name": "pistachio tree", "description": "A deciduous tree of the 'Pistacia' genus. This is a cultivated tree, and is not native to this region. Unfortunately, it looks like it has been picked clean of pistachio nuts.", "looks_like": "t_tree_hickory_harvested", + "roof": "t_treetop", "symbol": "7", "color": [ "light_green", "light_green", "light_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_pistachio", "bash": { @@ -1518,10 +1575,11 @@ "looks_like": "t_tree_hickory", "//": "Almond tree is not a local native and is only used in specific locations like orchards and gardens.", "symbol": "7", + "roof": "t_treetop", "color": [ "light_green", "light_green", "brown_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "almond_harv" } ], "transforms_into": "t_tree_almond_harvested", @@ -1545,10 +1603,11 @@ "name": "almond tree", "looks_like": "t_tree_hickory_harvested", "symbol": "7", + "roof": "t_treetop", "color": [ "light_green", "light_green", "light_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_almond", "bash": { @@ -1575,7 +1634,8 @@ "color": [ "light_green", "light_green", "brown_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "BROWSABLE", "CLIMB_ADJACENT" ], "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "autumn" ], "id": "pecan_harv" } ], "transforms_into": "t_tree_pecan_harvested", @@ -1602,7 +1662,8 @@ "color": [ "light_green", "light_green", "light_green", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "BROWSABLE" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "BROWSABLE", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_pecan", "bash": { @@ -1629,7 +1690,8 @@ "//": "dead, not usable at all", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "roof": "t_treetop_dead", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "bash": { "str_min": 60, "str_max": 120, @@ -1644,12 +1706,13 @@ "id": "t_tree_sassafras", "name": "sassafras tree", "looks_like": "t_tree_mulberry", + "roof": "t_treetop", "description": "This tree is a member of the 'Sassafras' genus, known for its aromatic qualities. In the winter and spring, the sap rich roots can be harvested to make a sweet beverage.", "symbol": "7", "color": [ "light_green", "light_green_yellow", "yellow_red", "brown" ], "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT" ], + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "CLIMB_ADJACENT" ], "transforms_into": "t_tree_sassafras_harvested", "examine_action": "harvest_ter", "harvest_by_season": [ { "seasons": [ "winter", "spring" ], "id": "sassafras_harv" } ], @@ -1676,7 +1739,8 @@ "//": "Cannot be harvested", "move_cost": 0, "coverage": 80, - "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED" ], + "roof": "t_treetop", + "flags": [ "FLAMMABLE_ASH", "NOITEM", "SUPPORTS_ROOF", "TREE", "REDUCE_SCENT", "HARVESTED", "CLIMB_ADJACENT" ], "examine_action": "harvested_plant", "transforms_into": "t_tree_sassafras", "looks_like": "t_tree_mulberry_harvested", diff --git a/data/json/furniture_and_terrain/terrain-roofs.json b/data/json/furniture_and_terrain/terrain-roofs.json index 8b0b0711aae2c..7e1d970b65dd7 100644 --- a/data/json/furniture_and_terrain/terrain-roofs.json +++ b/data/json/furniture_and_terrain/terrain-roofs.json @@ -329,5 +329,45 @@ "move_cost": 2, "flags": [ "TRANSPARENT", "FLAT", "ROAD" ], "bash": { "str_min": 48, "str_max": 80, "sound": "crash!", "sound_fail": "whump!", "ter_set": "t_hole", "bash_below": false } + }, + { + "type": "terrain", + "id": "t_treetop", + "name": "treetop", + "description": "The upper branches of a tree. There's just enough room to perch here.", + "symbol": "#", + "color": [ "light_green", "green", "yellow_yellow", "brown" ], + "move_cost": 6, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "UNSTABLE", "CLIMBABLE", "SINGLE_SUPPORT" ] + }, + { + "type": "terrain", + "id": "t_treetop_evergreen", + "name": "treetop", + "description": "The upper branches of a tree. There's just enough room to perch here.", + "symbol": "#", + "color": [ "green" ], + "move_cost": 6, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "UNSTABLE", "CLIMBABLE", "SINGLE_SUPPORT" ] + }, + { + "type": "terrain", + "id": "t_treetop_dead", + "name": "dead treetop", + "description": "The bare upper branches of a dead tree. There's just enough room to perch here.", + "symbol": "#", + "color": "brown", + "move_cost": 6, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SINGLE_SUPPORT" ] + }, + { + "type": "terrain", + "id": "t_treetop_giant_fern", + "name": "giant fern top", + "description": "The top of some unearthly gigantic fern. There is enough room to perch up here, but only just.", + "symbol": "#", + "color": "green", + "move_cost": 6, + "flags": [ "TRANSPARENT", "FLAMMABLE_ASH", "SINGLE_SUPPORT" ] } ] diff --git a/data/json/mutations/mutations.json b/data/json/mutations/mutations.json index 3bb85dfa4c121..ce402f54495da 100644 --- a/data/json/mutations/mutations.json +++ b/data/json/mutations/mutations.json @@ -4670,7 +4670,7 @@ "visibility": 4, "ugliness": 2, "mixed_effect": true, - "description": "Your legs and feet have become bird-like. Instead of toes you now have three long talons at the front and one at the back, ending in wicked claws and preventing you from wearing shoes. Fortunately they don't impede your movement.", + "description": "Your legs and feet have become bird-like, with long talons arranged three ahead and one behind. They probably won't fit in human shoes, but they're perfect for gripping onto precarious perches.", "active": true, "activated_is_setup": false, "activated_eocs": [ "EOC_AVIAN_LEAP" ], diff --git a/src/activity_actor.cpp b/src/activity_actor.cpp index f06058f5d1b7d..fdae871ee1e21 100644 --- a/src/activity_actor.cpp +++ b/src/activity_actor.cpp @@ -6170,6 +6170,7 @@ void chop_tree_activity_actor::finish( player_activity &act, Character &who ) here.ter_set( pos, t_stump ); who.add_msg_if_player( m_good, _( "You finish chopping down a tree." ) ); // sound of falling tree + here.collapse_at( pos, false, true, false ); sfx::play_variant_sound( "misc", "timber", sfx::get_heard_volume( here.getlocal( act.placement ) ) ); get_event_bus().send( who.getID() ); diff --git a/src/faction_camp.cpp b/src/faction_camp.cpp index 222544dcbd4ad..254d4824b88d6 100644 --- a/src/faction_camp.cpp +++ b/src/faction_camp.cpp @@ -4584,7 +4584,7 @@ int om_cutdown_trees( const tripoint_abs_omt &omt_tgt, int chance, bool estimate int harvested = 0; int total = 0; tripoint mapmin = tripoint( 0, 0, omt_tgt.z() ); - tripoint mapmax = tripoint( 2 * SEEX - 1, 2 * SEEY - 1, omt_tgt.z() ); + tripoint mapmax = tripoint( 2 * SEEX - 1, 2 * SEEY - 1, omt_tgt.z() + 1 ); for( const tripoint &p : target_bay.points_in_rectangle( mapmin, mapmax ) ) { if( target_bay.ter( p ).obj().has_flag( ter_furn_flag::TFLAG_TREE ) && rng( 0, 100 ) < chance ) { total++; @@ -4596,6 +4596,10 @@ int om_cutdown_trees( const tripoint_abs_omt &omt_tgt, int chance, bool estimate tripoint to = p + tripoint( dir, omt_tgt.z() ); std::vector tree = line_to( p, to, rng( 1, 8 ) ); for( tripoint &elem : tree ) { + const tripoint &treetop = tripoint( elem.xy(), elem.z + 1 ); + if( target_bay.ter( treetop ).obj().has_flag( ter_furn_flag::TFLAG_SINGLE_SUPPORT ) ) { + target_bay.destroy( treetop ); + } target_bay.destroy( elem ); target_bay.ter_set( elem, t_trunk ); } diff --git a/src/game.cpp b/src/game.cpp index 835f1f0fd266c..eea5c44217af1 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -11774,9 +11774,15 @@ void game::vertical_move( int movez, bool force, bool peeking ) int move_cost = 100; tripoint stairs( u.posx(), u.posy(), u.posz() + movez ); bool wall_cling = u.has_flag( json_flag_WALL_CLING ); + bool adjacent_climb = false; if( !force && movez == 1 && !here.has_flag( ter_furn_flag::TFLAG_GOES_UP, u.pos() ) && !u.is_underwater() ) { // Climbing + for( const tripoint &p : here.points_in_radius( u.pos(), 2 ) ) { + if( here.has_flag( ter_furn_flag::TFLAG_CLIMB_ADJACENT, p ) ) { + adjacent_climb = true; + } + } if( here.has_floor_or_support( stairs ) ) { add_msg( m_info, _( "You can't climb here - there's a ceiling above your head." ) ); return; @@ -11791,7 +11797,7 @@ void game::vertical_move( int movez, bool force, bool peeking ) add_msg_debug( debugmode::DF_GAME, "Climb cost %d", cost ); const bool can_climb_here = cost > 0 || u.has_flag( json_flag_CLIMB_NO_LADDER ) || wall_cling; - if( !can_climb_here ) { + if( !can_climb_here && !adjacent_climb ) { add_msg( m_info, _( "You can't climb here - you need walls and/or furniture to brace against." ) ); return; } diff --git a/src/map.cpp b/src/map.cpp index 5b8fdfc4e48d3..938d8b385b26e 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -3657,6 +3657,9 @@ int map::collapse_check( const tripoint &p ) const if( tbelow == pbelow ) { num_supports += 2; } + if( has_flag( ter_furn_flag::TFLAG_SINGLE_SUPPORT, p ) ) { + num_supports = 0; + } } } } @@ -3681,6 +3684,9 @@ int map::collapse_check( const tripoint &p ) const } } } + if( has_flag( ter_furn_flag::TFLAG_SINGLE_SUPPORT, p ) ) { + num_supports = 0; + } } return 1.7 * num_supports; diff --git a/src/mapdata.cpp b/src/mapdata.cpp index f1c06b3632dc8..f0b7c58a368b4 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -266,6 +266,8 @@ std::string enum_to_string( ter_furn_flag data ) case ter_furn_flag::TFLAG_GRAZER_INEDIBLE: return "GRAZER_INEDIBLE"; case ter_furn_flag::TFLAG_BROWSABLE: return "BROWSABLE"; case ter_furn_flag::TFLAG_MUTANT_TREE: return "MUTANT_TREE"; + case ter_furn_flag::TFLAG_SINGLE_SUPPORT: return "SINGLE_SUPPORT"; + case ter_furn_flag::TFLAG_CLIMB_ADJACENT: return "CLIMB_ADJACENT"; // *INDENT-ON* case ter_furn_flag::NUM_TFLAG_FLAGS: diff --git a/src/mapdata.h b/src/mapdata.h index fa3d44da61fe8..b50df78ad9acf 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -316,6 +316,8 @@ enum class ter_furn_flag : int { TFLAG_SMALL_HIDE, TFLAG_NO_FLOOR_WATER, TFLAG_MUTANT_TREE, + TFLAG_SINGLE_SUPPORT, + TFLAG_CLIMB_ADJACENT, NUM_TFLAG_FLAGS };