Skip to content

Commit c5ce2ba

Browse files
[Bombastic Perks] More perks (#83604)
* Update troubleseeker * Add Catfall * Reduce troubleseeker range * Add parkour option * Add Evasion * Add thick skin * Add Soup for the Soul * Add menu entry * Fixes * Spacing
1 parent 8e64b54 commit c5ce2ba

File tree

5 files changed

+220
-10
lines changed

5 files changed

+220
-10
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
[
2+
{
3+
"type": "effect_type",
4+
"id": "effect_perk_situational_uncanny_dodge_remover",
5+
"//": "Hidden effect, turns off Uncanny Dodge when you get hit",
6+
"name": [ "" ],
7+
"desc": [ "" ]
8+
},
9+
{
10+
"type": "effect_type",
11+
"id": "effect_perk_situational_uncanny_dodge",
12+
"//": "Hidden effect, gives you Uncanny Dodge",
13+
"name": [ "" ],
14+
"desc": [ "" ],
15+
"flags": [ "UNCANNY_DODGE" ]
16+
},
17+
{
18+
"type": "effect_on_condition",
19+
"id": "EOC_PERK_SITUATIONAL_UNCANNY_DODGE_TAKE_DAMAGE",
20+
"eoc_type": "EVENT",
21+
"required_event": "character_takes_damage",
22+
"condition": {
23+
"and": [
24+
{ "u_has_trait": "perk_situational_uncanny_dodge" },
25+
{ "not": { "u_has_effect": "effect_perk_situational_uncanny_dodge_remover" } }
26+
]
27+
},
28+
"effect": [
29+
{
30+
"u_add_effect": "effect_perk_situational_uncanny_dodge_remover",
31+
"duration": { "math": [ "180 + rand(120) + ( (u_skill('dodge') - 8) * -30)" ] }
32+
}
33+
]
34+
}
35+
]
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
[
2+
{
3+
"type": "effect_type",
4+
"id": "effect_perk_soul_for_soul_sickness_blocker",
5+
"//": "hidden effect, cures cold and flu",
6+
"name": [ "" ],
7+
"desc": [ "" ],
8+
"removes_effects": [ "pre_common_cold", "common_cold", "pre_flu", "flu" ]
9+
},
10+
{
11+
"type": "effect_on_condition",
12+
"id": "EOC_PERK_SOUP_FOR_SOUL_EFFECTS",
13+
"eoc_type": "EVENT",
14+
"required_event": "character_consumes_item",
15+
"condition": {
16+
"and": [
17+
{ "u_has_trait": "perk_soup_healing" },
18+
{
19+
"or": [
20+
{ "compare_string": [ "mre_chickennoodle", { "context_val": "itype" } ] },
21+
{ "compare_string": [ "soup_chicken", { "context_val": "itype" } ] },
22+
{ "compare_string": [ "soup_instant_chicken_noodle_prepared", { "context_val": "itype" } ] }
23+
]
24+
}
25+
]
26+
},
27+
"effect": [
28+
{ "math": [ "u_pain() -= 5" ] },
29+
{ "math": [ "u_hp('torso') += (3 + rand(4) )" ] },
30+
{ "math": [ "u_hp('head') += (3 + rand(4) )" ] },
31+
{ "math": [ "u_hp('arm_l') += (3 + rand(4) )" ] },
32+
{ "math": [ "u_hp('arm_r') += (3 + rand(4) )" ] },
33+
{ "math": [ "u_hp('leg_l') += (3 + rand(4) )" ] },
34+
{ "math": [ "u_hp('leg_r') += (3 + rand(4) )" ] },
35+
{
36+
"if": { "not": { "u_has_effect": "effect_perk_soul_for_soul_sickness_blocker" } },
37+
"then": { "u_add_effect": "effect_perk_soul_for_soul_sickness_blocker", "duration": "10 days" }
38+
},
39+
{
40+
"u_lose_effect": [ "poison", "badpoison", "venom_dmg", "venom_weaken", "venom_blind", "venom_pain", "paralyzepoison" ],
41+
"target_part": "ALL"
42+
}
43+
]
44+
}
45+
]

data/mods/BombasticPerks/perkdata/troubleseeker.json

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@
33
"type": "effect_on_condition",
44
"id": "EOC_troubleseeking",
55
"effect": [
6-
{
7-
"u_spawn_monster": "mon_zombie",
8-
"real_count": 1,
9-
"min_radius": 35,
10-
"max_radius": 50,
11-
"spawn_message": "You suddenly feel that you have found some trouble.",
12-
"spawn_message_plural": "You suddenly feel that you have found a lot of trouble."
13-
}
6+
{ "u_location_variable": { "context_val": "zombie_horde_target" } },
7+
{ "signal_hordes": { "context_val": "zombie_horde_target" }, "signal_power": { "math": [ "rand(50) + 30" ] } },
8+
{ "u_message": "You suddenly feel that you have found some trouble.", "type": "mixed" }
149
]
1510
},
1611
{

data/mods/BombasticPerks/perkmenu.json

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,25 @@
306306
],
307307
"topic": "TALK_PERK_MENU_SELECT"
308308
},
309+
{
310+
"condition": { "not": { "u_has_trait": "perk_thick_skin" } },
311+
"text": "Gain [<trait_name:perk_thick_skin>]",
312+
"effect": [
313+
{ "set_string_var": "<trait_name:perk_thick_skin>", "target_var": { "context_val": "trait_name" } },
314+
{
315+
"set_string_var": "<trait_description:perk_thick_skin>",
316+
"target_var": { "context_val": "trait_description" }
317+
},
318+
{ "set_string_var": "perk_thick_skin", "target_var": { "context_val": "trait_id" } },
319+
{
320+
"set_string_var": "Must have <trait_name:perk_built_tough>.",
321+
"target_var": { "context_val": "trait_requirement_description" },
322+
"i18n": true
323+
},
324+
{ "set_condition": "perk_condition", "condition": { "u_has_trait": "perk_built_tough" } }
325+
],
326+
"topic": "TALK_PERK_MENU_SELECT"
327+
},
309328
{
310329
"condition": { "not": { "u_has_trait": "perk_hauler" } },
311330
"text": "Gain [<trait_name:perk_hauler>]",
@@ -754,6 +773,34 @@
754773
],
755774
"topic": "TALK_PERK_MENU_SELECT"
756775
},
776+
{
777+
"condition": { "not": { "u_has_trait": "perk_reduced_falling_damage" } },
778+
"text": "Gain [<trait_name:perk_reduced_falling_damage>]",
779+
"effect": [
780+
{ "set_string_var": "<trait_name:perk_reduced_falling_damage>", "target_var": { "context_val": "trait_name" } },
781+
{
782+
"set_string_var": "<trait_description:perk_reduced_falling_damage>",
783+
"target_var": { "context_val": "trait_description" }
784+
},
785+
{ "set_string_var": "perk_reduced_falling_damage", "target_var": { "context_val": "trait_id" } },
786+
{
787+
"set_string_var": "Must have <trait_name:perk_tuck_and_roll>, the Parkour Expert proficiency, or dexterity 13.",
788+
"target_var": { "context_val": "trait_requirement_description" },
789+
"i18n": true
790+
},
791+
{
792+
"set_condition": "perk_condition",
793+
"condition": {
794+
"or": [
795+
{ "u_has_trait": "perk_tuck_and_roll" },
796+
{ "u_has_proficiency": "prof_parkour" },
797+
{ "math": [ "u_val('dexterity_base') + u_val('dexterity_bonus') >= 13" ] }
798+
]
799+
}
800+
}
801+
],
802+
"topic": "TALK_PERK_MENU_SELECT"
803+
},
757804
{
758805
"condition": { "not": { "u_has_trait": "perk_grit_your_teeth" } },
759806
"text": "Gain [<trait_name:perk_grit_your_teeth>]",
@@ -1191,6 +1238,28 @@
11911238
],
11921239
"topic": "TALK_PERK_MENU_SELECT"
11931240
},
1241+
{
1242+
"condition": { "not": { "u_has_trait": "perk_situational_uncanny_dodge" } },
1243+
"text": "Gain [<trait_name:perk_situational_uncanny_dodge>]",
1244+
"effect": [
1245+
{ "set_string_var": "<trait_name:perk_situational_uncanny_dodge>", "target_var": { "context_val": "trait_name" } },
1246+
{
1247+
"set_string_var": "<trait_description:perk_situational_uncanny_dodge>",
1248+
"target_var": { "context_val": "trait_description" }
1249+
},
1250+
{ "set_string_var": "perk_situational_uncanny_dodge", "target_var": { "context_val": "trait_id" } },
1251+
{
1252+
"set_string_var": "Requires Dodging 8 and the Lucky Dodge perk.",
1253+
"target_var": { "context_val": "trait_requirement_description" },
1254+
"i18n": true
1255+
},
1256+
{
1257+
"set_condition": "perk_condition",
1258+
"condition": { "and": [ { "math": [ "u_skill('dodge') >= 8" ] }, { "u_has_trait": "perk_lucky_dodge" } ] }
1259+
}
1260+
],
1261+
"topic": "TALK_PERK_MENU_SELECT"
1262+
},
11941263
{
11951264
"condition": { "not": { "u_has_trait": "perk_bedtime_reader" } },
11961265
"text": "Gain [<trait_name:perk_bedtime_reader>]",
@@ -1633,6 +1702,25 @@
16331702
],
16341703
"topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE"
16351704
},
1705+
{
1706+
"condition": { "not": { "u_has_trait": "perk_soup_healing" } },
1707+
"text": "Gain [<trait_name:perk_soup_healing>]",
1708+
"effect": [
1709+
{ "set_string_var": "<trait_name:perk_soup_healing>", "target_var": { "context_val": "trait_name" } },
1710+
{
1711+
"set_string_var": "<trait_description:perk_soup_healing>",
1712+
"target_var": { "context_val": "trait_description" }
1713+
},
1714+
{ "set_string_var": "perk_soup_healing", "target_var": { "context_val": "trait_id" } },
1715+
{
1716+
"set_string_var": "No Requirements",
1717+
"target_var": { "context_val": "trait_requirement_description" },
1718+
"i18n": true
1719+
},
1720+
{ "set_condition": "perk_condition", "condition": { "math": [ "0 == 0" ] } }
1721+
],
1722+
"topic": "TALK_PERK_MENU_SELECT_PLAYSTYLE"
1723+
},
16361724
{
16371725
"condition": { "not": { "u_has_trait": "perk_nocturnal" } },
16381726
"text": "Gain [<trait_name:perk_nocturnal>]",

data/mods/BombasticPerks/perks.json

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,18 @@
174174
"description": "You're like a walking tank! Take 5% less damage from all sources.",
175175
"enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "ARMOR_ALL", "multiply": -0.05 } ] } ]
176176
},
177+
{
178+
"type": "mutation",
179+
"id": "perk_thick_skin",
180+
"name": { "str": "Thick Skin" },
181+
"points": 0,
182+
"purifiable": false,
183+
"valid": false,
184+
"description": "All the beatings you've taken have toughened you up. You can walk barefoot with no penalty, develop blisters in heat much more slowly, and take slightly less bash damage.",
185+
"//": "The flesh material also protects against cut and bullets, so we need an enchant to do bash only",
186+
"enchantments": [ { "condition": "ALWAYS", "incoming_damage_mod_post_absorbed": [ { "type": "bash", "add": -2 } ] } ],
187+
"flags": [ "BARKY", "TOUGH_FEET" ]
188+
},
177189
{
178190
"type": "mutation",
179191
"id": "perk_hauler",
@@ -361,6 +373,16 @@
361373
"description": "At some point you got really good at falling off rooftops. Take 40% less fall damage.",
362374
"enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "FALL_DAMAGE", "multiply": -0.4 } ] } ]
363375
},
376+
{
377+
"type": "mutation",
378+
"id": "perk_reduced_falling_damage",
379+
"name": { "str": "Catfall" },
380+
"points": 0,
381+
"purifiable": false,
382+
"valid": false,
383+
"description": "You always land on your feet and look graceful when doing it. Reduce the number of stories by 1 when calculating fall damage.",
384+
"flags": [ "ONE_STORY_FALL" ]
385+
},
364386
{
365387
"type": "mutation",
366388
"id": "perk_grit_your_teeth",
@@ -426,6 +448,21 @@
426448
"description": "You have a persistent sense of how to move around in sharp and rough terrain. You'll never accidently snag or cut yourself on protrusions from the ground.",
427449
"flags": [ "ALL_TERRAIN_NAVIGATION" ]
428450
},
451+
{
452+
"type": "mutation",
453+
"id": "perk_situational_uncanny_dodge",
454+
"name": { "str": "Evasion" },
455+
"points": 0,
456+
"purifiable": false,
457+
"valid": false,
458+
"description": "You're so good at dodging that almost nothing can touch you as long as you're on your game. You have passive Uncanny Dodge until you take damage, after which it takes a few minutes for you to recover your poise.",
459+
"enchantments": [
460+
{
461+
"condition": { "not": { "u_has_effect": "effect_perk_situational_uncanny_dodge_remover" } },
462+
"ench_effects": [ { "effect": "effect_perk_situational_uncanny_dodge", "intensity": 1 } ]
463+
}
464+
]
465+
},
429466
{
430467
"type": "mutation",
431468
"id": "perk_bedtime_reader",
@@ -635,7 +672,7 @@
635672
"points": 0,
636673
"purifiable": false,
637674
"valid": false,
638-
"description": "As if the apocalypse itself wasn't enough, you are constantly looking for some trouble. Zombies will sometimes appear out of nowhere to attack you. Fortunately, they always appear at a good distance from you. Activate to toggle.",
675+
"description": "As if the apocalypse itself wasn't enough, you are constantly looking for some trouble. Zombies somehow sometimes sense your presence and approach you. Fortunately, they always appear at a good distance from you. Activate to toggle.",
639676
"active": true,
640677
"activated_is_setup": true,
641678
"activated_eocs": [ "EOC_troubleseek_on" ],
@@ -698,7 +735,7 @@
698735
{
699736
"type": "mutation",
700737
"id": "perk_lucky_dodge",
701-
"name": { "str": "Lucky dodge" },
738+
"name": { "str": "Lucky Dodge" },
702739
"points": 0,
703740
"purifiable": false,
704741
"valid": false,
@@ -997,6 +1034,16 @@
9971034
}
9981035
]
9991036
},
1037+
{
1038+
"type": "mutation",
1039+
"id": "perk_soup_healing",
1040+
"name": { "str": "Soup for the Soul" },
1041+
"points": 0,
1042+
"purifiable": false,
1043+
"valid": false,
1044+
"description": "Just like mama used to make and it tastes just as good too. When you eat chicken noodle soup, you heal a small amount of HP on all limbs and cure any cold, flu, and poisoning you're suffering from.",
1045+
"category": [ "perk" ]
1046+
},
10001047
{
10011048
"type": "mutation",
10021049
"id": "perk_nocturnal",

0 commit comments

Comments
 (0)