Skip to content

Commit

Permalink
Merge branch 'CleverRaven:master' into ForageSymbols
Browse files Browse the repository at this point in the history
BjoHart authored Nov 25, 2023
2 parents 2555d14 + 7560c55 commit a410859
Showing 44 changed files with 1,054 additions and 558 deletions.
24 changes: 24 additions & 0 deletions data/changelog.txt
Original file line number Diff line number Diff line change
@@ -71,6 +71,9 @@ Allow using snippets in item descriptions
Infectious diseases (cold/flu) have an invisible incubation period, and start with milder symptoms
Weapon Proficiency
Fixes NPCs being too afraid, makes swarm danger assessment more robust
Add option to switch between outfit (when available) at chargen
Animals have stomachs, digest food, and benefit from eating
Enable NPCs to reload magazines in their inventory


## Content:
@@ -124,6 +127,11 @@ Updates the Portal Dependent mechanics and introduces rewards for exploring the
Cyberhorse... CYBERHORSE!
Make nuts and bolts craftable using thread cutting tool
New map extra: civilians making a futile last stand against the horde
Adds primitive cup(s)
Add residential rolling trash cans.
Adds Long awaited Exodii Sidearms
Allow diving into water to remove Mycus spores.
New Scenario: Last Stand


## Interface:
@@ -170,6 +178,7 @@ Add spell class selecter to spell casting menu
'Learning is disabled' message on disabled skills
Update gun mod removal UI to use inventory menu instead of a prompt; prevent removal of gun mods with other mods installed on it
Show the mass of vitamins in food items
Melee weapons tell you your skill is too low to see melee values instead of just hiding them


## Mods:
@@ -230,6 +239,13 @@ XE: Add gossamer material and clothing
XE: transformation potions to top level alchemy perk
MoM: Add PSI_NULL species to interact with "ignored_monster_species" JSON parameter
[MoM] Add a new power class Photokinesis
[MoM] Add calorie cost for psionics
[MoM] Prevent psionic creatures from using powers if nullified
Make Aftershock and Aftershock: Exoplanet compatible with Defense Mode.
Allow escape pods to carry loot planetside.
[MoM] Add mi-go psions
[Innawoods] Added meadow mutable
[MoM] Drain overhaul + Power Maintenance overhaul


## Balance:
@@ -359,6 +375,13 @@ Corrects duplicates /the/ in martial arts techs messages
Gas masks only use charges on fields with gas_absorption_factor set
More background stories: actually access them
All weapon proficiencies can be learned by hitting
Fix items applying effects multiple times when transformed
The effect "corroding" should only be added when causing damage
Climate control was 3.7x stronger than it should be.
Allow sandwiches to be made using toast
Reduce NPC faction camp task slowdown & fix save data bloat bug
Fixed some items to cause multiple addictions
Allow NPCs to teleport without the player


## Performance:
@@ -372,6 +395,7 @@ Speed up new character screen, particularly when many recipes are known
Stop clearing weight carried cache unnecessarily
Precalculate visitable zones to optimize inter-monster aggression checks
Reduced wait times in high traffic areas by ~15-20%
Reduce time of selecting large amount of items in inventory menu


## Infrastructure:
108 changes: 102 additions & 6 deletions data/json/items/ammo/270win.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
[
{
"id": "270win_jsp",
"abstract": "270win_fmj",
"type": "AMMO",
"name": { "str_sp": ".270 Winchester JSP" },
"description": ".270 Winchester ammunition with a 130gr soft point bullet. The .270 round was not initially successful, but over a few decades it became one of the most popular rifle cartridges for hunting and silhouette shooting. It is a powerful round capable of taking down large targets with ease.",
"name": { "str_sp": ".270 Winchester abstract" },
"//": "This is .270 FMJ. 270 win is so exclusively used for hunting that FMJ ammo basically doesn't exist. This is just here for the BBTI data.",
"ascii_picture": "270win_jsp",
"weight": "20 g",
"volume": "189 ml",
"longest_side": "85 mm",
"price": 170,
"price_postapoc": 600,
"weight": "20 g",
"volume": "189 ml",
"flags": [ "IRREPLACEABLE_CONSUMABLE" ],
"material": [ "brass", "lead", "powder" ],
"symbol": "=",
@@ -19,11 +19,82 @@
"ammo_type": "270win",
"casing": "270win_casing",
"range": 65,
"damage": { "damage_type": "bullet", "amount": 64, "armor_penetration": 4 },
"//2": ".270 Win. (CIP) .277 100gr Nosler AccuBond 57845, 54.0 gr Alliant Reloder-15 *C ",
"damage": {
"damage_type": "bullet",
"amount": 55,
"armor_penetration": 8,
"barrels": [
{ "barrel_length": "27 mm", "amount": 14 },
{ "barrel_length": "30 mm", "amount": 15 },
{ "barrel_length": "32 mm", "amount": 16 },
{ "barrel_length": "37 mm", "amount": 17 },
{ "barrel_length": "40 mm", "amount": 18 },
{ "barrel_length": "44 mm", "amount": 19 },
{ "barrel_length": "47 mm", "amount": 20 },
{ "barrel_length": "50 mm", "amount": 21 },
{ "barrel_length": "55 mm", "amount": 22 },
{ "barrel_length": "59 mm", "amount": 23 },
{ "barrel_length": "63 mm", "amount": 24 },
{ "barrel_length": "67 mm", "amount": 25 },
{ "barrel_length": "71 mm", "amount": 26 },
{ "barrel_length": "75 mm", "amount": 27 },
{ "barrel_length": "83 mm", "amount": 28 },
{ "barrel_length": "88 mm", "amount": 29 },
{ "barrel_length": "93 mm", "amount": 30 },
{ "barrel_length": "98 mm", "amount": 31 },
{ "barrel_length": "104 mm", "amount": 32 },
{ "barrel_length": "110 mm", "amount": 33 },
{ "barrel_length": "117 mm", "amount": 34 },
{ "barrel_length": "124 mm", "amount": 35 },
{ "barrel_length": "131 mm", "amount": 36 },
{ "barrel_length": "138 mm", "amount": 37 },
{ "barrel_length": "146 mm", "amount": 38 },
{ "barrel_length": "155 mm", "amount": 39 },
{ "barrel_length": "168 mm", "amount": 40 },
{ "barrel_length": "178 mm", "amount": 41 },
{ "barrel_length": "188 mm", "amount": 42 },
{ "barrel_length": "199 mm", "amount": 43 },
{ "barrel_length": "211 mm", "amount": 44 },
{ "barrel_length": "223 mm", "amount": 45 },
{ "barrel_length": "237 mm", "amount": 46 },
{ "barrel_length": "251 mm", "amount": 47 },
{ "barrel_length": "266 mm", "amount": 48 },
{ "barrel_length": "282 mm", "amount": 49 },
{ "barrel_length": "300 mm", "amount": 50 },
{ "barrel_length": "329 mm", "amount": 51 },
{ "barrel_length": "350 mm", "amount": 52 },
{ "barrel_length": "372 mm", "amount": 53 },
{ "barrel_length": "397 mm", "amount": 54 },
{ "barrel_length": "423 mm", "amount": 55 },
{ "barrel_length": "452 mm", "amount": 56 },
{ "barrel_length": "483 mm", "amount": 57 },
{ "barrel_length": "518 mm", "amount": 58 },
{ "barrel_length": "555 mm", "amount": 59 },
{ "barrel_length": "596 mm", "amount": 60 },
{ "barrel_length": "641 mm", "amount": 61 },
{ "barrel_length": "691 mm", "amount": 62 },
{ "barrel_length": "775 mm", "amount": 63 },
{ "barrel_length": "839 mm", "amount": 64 },
{ "barrel_length": "906 mm", "amount": 65 },
{ "barrel_length": "1003 mm", "amount": 66 },
{ "barrel_length": "1076 mm", "amount": 67 },
{ "barrel_length": "1197 mm", "amount": 68 },
{ "barrel_length": "1212 mm", "amount": 69 }
]
},
"dispersion": 10,
"recoil": 3800,
"effects": [ "COOKOFF", "NEVER_MISFIRES" ]
},
{
"id": "270win_jsp",
"copy-from": "270win_fmj",
"type": "AMMO",
"name": { "str_sp": ".270 Winchester JSP" },
"description": ".270 Winchester ammunition with a 130gr soft point bullet. The .270 round was not initially successful, but over a few decades it became one of the most popular rifle cartridges for hunting and silhouette shooting. It is a powerful round capable of taking down large targets with ease.",
"relative": { "damage": { "damage_type": "bullet", "amount": 4, "armor_penetration": -4 } }
},
{
"id": "bp_270win_jsp",
"copy-from": "270win_jsp",
@@ -48,5 +119,30 @@
"proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
"extend": { "effects": [ "RECYCLED" ] },
"delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
},
{
"id": "reloaded_270win_fmj",
"copy-from": "270win_fmj",
"type": "AMMO",
"name": { "str_sp": ".270 Winchester FMJ, reloaded" },
"description": ".270 Winchester ammunition with a 130gr full metal jacket bullet. It is a powerful round capable of taking down large targets with ease. This one has been hand-reloaded by a survivor or perhaps a pre-Cataclysm hobbyist, leading to slightly inferior performance compared to factory-produced ammo.",
"proportional": { "price": 0.7, "damage": { "damage_type": "bullet", "amount": 0.9 }, "dispersion": 1.1 },
"extend": { "effects": [ "RECYCLED" ] },
"delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
},
{
"id": "bp_270win_fmj",
"copy-from": "reloaded_270win_fmj",
"type": "AMMO",
"name": { "str_sp": ".270 Winchester FMJ, black powder" },
"description": ".270 Winchester ammunition with a 130gr full metal jacket bullet. It is a powerful round capable of taking down large targets with ease, but someone was down on their luck when they hand-reloaded this one - it's filled with black powder instead of smokeless powder. Expect lower velocity, muzzle smoke, and a dirtier barrel if you shoot it.",
"proportional": {
"price": 0.3,
"damage": { "damage_type": "bullet", "amount": 0.76, "armor_penetration": 0.5 },
"recoil": 0.76,
"dispersion": 1.2
},
"extend": { "effects": [ "RECYCLED", "BLACKPOWDER", "MUZZLE_SMOKE" ] },
"delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] }
}
]
2 changes: 1 addition & 1 deletion data/json/items/comestibles/junkfood.json
Original file line number Diff line number Diff line change
@@ -569,7 +569,7 @@
"symbol": "%",
"quench": -1,
"addiction_potential": 2,
"calories": 140,
"calories": 160,
"description": "Roasted coffee beans coated with dark chocolate, a natural source of concentrated caffeine.",
"price": "10 cent",
"price_postapoc": "10 cent",
1 change: 1 addition & 0 deletions data/json/items/gun/270win.json
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@
"blackpowder_tolerance": 24,
"clip_size": 4,
"barrel_volume": "750 ml",
"barrel_length": "610 mm",
"flags": [ "RELOAD_ONE", "NEVER_JAMS", "EASY_CLEAN" ],
"valid_mod_locations": [
[ "barrel", 1 ],
80 changes: 80 additions & 0 deletions data/json/monster_weakpoints/slime_weakpoints.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
[
{
"type": "weakpoint_set",
"id": "wps_slime",
"weakpoints": [
{
"id": "body",
"name": "the body",
"crit_mult": { "all": 0.75 },
"difficulty": { "ranged": 4, "melee": 3 },
"coverage_mult": { "point": 0.75 },
"effects": [
{ "effect": "staggered", "chance": 15, "message": "The %s is knocked off-balance!", "damage_required": [ 10, 30 ] },
{
"effect": "staggered",
"chance": 25,
"message": "The %s is knocked off-balance!",
"damage_required": [ 31, 100 ]
}
],
"coverage": 6
},
{
"id": "insensitive_spot",
"name": "a spot with virtually nothing to damage",
"armor_mult": { "all": 1.25 },
"crit_mult": { "all": 0.75 },
"coverage_mult": { "melee": 0.75 },
"coverage": 3
},
{
"id": "organ",
"name": "an organ inside the slime, causing the slime to freeze up briefly as it reconstitutes it",
"crit_mult": { "all": 0.75 },
"difficulty": { "melee": 3, "ranged": 5 },
"coverage_mult": { "melee": 0.75 },
"effects": [
{
"effect": "stunned",
"duration": [ 1, 2 ],
"chance": 5,
"message": "The %s is stunned!",
"damage_required": [ 1, 10 ]
},
{
"effect": "stunned",
"duration": [ 1, 2 ],
"chance": 25,
"message": "The %s is stunned!",
"damage_required": [ 11, 50 ]
},
{
"effect": "stunned",
"duration": [ 1, 2 ],
"chance": 45,
"message": "The %s is stunned!",
"damage_required": [ 51, 100 ]
}
],
"coverage": 3
},
{
"id": "fragment",
"name": "the body, separating a fragment that you manage to keep from rejoining the slime until the fragment melts away",
"crit_mult": { "all": 0.75 },
"difficulty": { "ranged": 3, "melee": 1 },
"coverage_mult": { "point": 0.75 },
"coverage": 5
},
{
"id": "pseudopod",
"name": "a pseudopod reaching out to strike you when you deftly counter strike it",
"crit_mult": { "all": 0.75 },
"difficulty": { "ranged": 7, "melee": 5 },
"coverage_mult": { "point": 0.75 },
"coverage": 5
}
]
}
]
14 changes: 14 additions & 0 deletions data/json/monsters/slimes.json
Original file line number Diff line number Diff line change
@@ -23,6 +23,8 @@
"melee_dice_sides": 4,
"melee_damage": [ { "damage_type": "cut", "amount": 0 } ],
"bleed_rate": 30,
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"special_attacks": [ [ "FORMBLOB", 30 ] ],
"death_function": {
@@ -57,6 +59,8 @@
"melee_dice_sides": 4,
"melee_damage": [ { "damage_type": "cut", "amount": 0 } ],
"bleed_rate": 20,
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"special_attacks": [ [ "CALLBLOBS", 0 ] ],
"death_function": {
@@ -92,6 +96,8 @@
"melee_dice_sides": 6,
"melee_damage": [ { "damage_type": "cut", "amount": 0 } ],
"bleed_rate": 30,
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"special_attacks": [ [ "FORMBLOB", 20 ] ],
"death_function": {
@@ -125,6 +131,8 @@
"melee_dice": 1,
"melee_dice_sides": 4,
"melee_damage": [ { "damage_type": "cut", "amount": 0 } ],
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"death_function": { "message": "The %s's body melts away.", "corpse_type": "NO_CORPSE" },
"death_drops": "mon_blob_small_deathdrops",
@@ -152,6 +160,8 @@
"melee_dice": 2,
"melee_dice_sides": 3,
"melee_damage": [ { "damage_type": "cut", "amount": 0 } ],
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"death_drops": "slime_sample_small",
"special_attacks": [ [ "FORMBLOB", 4 ] ],
@@ -185,6 +195,8 @@
"dodge": 1,
"vision_day": 16,
"vision_night": 10,
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"special_attacks": [ [ "SLIMESPRING", 15 ] ],
"fear_triggers": [ "FIRE" ],
@@ -221,6 +233,8 @@
"melee_damage": [ { "damage_type": "cut", "amount": 0 } ],
"vision_day": 30,
"vision_night": 10,
"weakpoint_sets": [ "wps_slime" ],
"families": [ "prof_intro_biology", "prof_wp_slime_basic", "prof_wp_slime_advanced" ],
"harvest": "exempt",
"special_attacks": [ { "id": "tentacle", "throw_strength": 10 } ],
"death_function": {
24 changes: 24 additions & 0 deletions data/json/proficiencies/weakpoints.json
Original file line number Diff line number Diff line change
@@ -300,5 +300,29 @@
"required_proficiencies": [ "prof_wp_power_leech_basic" ],
"default_weakpoint_bonus": 2,
"default_weakpoint_penalty": -2
},
{
"type": "proficiency",
"id": "prof_wp_slime_basic",
"category": "prof_weakpoint",
"name": { "str": "Slime basic weaknesses" },
"description": "After having engaged slimes to a significant extent you have started to get better at exploiting weaknesses in their behavior and, for lack of better terms, \"physiology\".",
"can_learn": true,
"required_proficiencies": [ "prof_intro_biology" ],
"time_to_learn": "6 h",
"default_weakpoint_bonus": 1,
"default_weakpoint_penalty": -2
},
{
"type": "proficiency",
"id": "prof_wp_slime_advanced",
"category": "prof_weakpoint",
"name": { "str": "Slime detailed weaknesses" },
"description": "You've probably reached the pinnacle of slime weakness exploitation, but it has taken an enormous amount of combat to acquire it.",
"can_learn": true,
"time_to_learn": "24 h",
"required_proficiencies": [ "prof_wp_slime_basic" ],
"default_weakpoint_bonus": 2,
"default_weakpoint_penalty": -2
}
]
Loading

0 comments on commit a410859

Please sign in to comment.