Skip to content

Commit

Permalink
[Isolation Protocol] Add Bionic Vampire class (#76621)
Browse files Browse the repository at this point in the history
* Initial commit

* Update data/mods/Isolation-Protocol/Player/Perks/perks.json

Co-authored-by: TheShadowFerret <[email protected]>

* Add proficiencies, give bionic vampire a gun

* Rework conditions for gaining bionic power

* Don't give such a massive bonus for PUSH_MON

* More tweaks

* Add some more bionics to provide more choices of how to use power

* Increase power return from Nether monsters, add more power from Migo

* Reaching a safe zone restores 500 power

* Remove debug message

* Simplify power restoration EoC

---------

Co-authored-by: TheShadowFerret <[email protected]>
  • Loading branch information
Standing-Storm and TheShadowFerret authored Sep 28, 2024
1 parent ef9b9e6 commit 82c06b0
Show file tree
Hide file tree
Showing 6 changed files with 147 additions and 2 deletions.
2 changes: 1 addition & 1 deletion data/mods/Isolation-Protocol/EOC/elevator_eoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"type": "effect_on_condition",
"id": "EOC_ISO_DECIDE_LEVEL",
"condition": { "math": [ "ISO_CURRENT_LEVEL % SAFEPOINT_INTERVAL", "==", "0" ] },
"effect": [ { "run_eocs": [ "EOC_ISO_MICROLAB_SAFE_TP" ] } ],
"effect": [ { "run_eocs": [ "EOC_ISO_MICROLAB_SAFE_TP", "EOC_ISO_BIONIC_VAMPIRE_POWER_RESTORE" ] } ],
"false_effect": [
{
"switch": { "math": [ "rand(1)" ] },
Expand Down
16 changes: 16 additions & 0 deletions data/mods/Isolation-Protocol/Player/Perks/enchantments.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,21 @@
{ "value": "MELEE_DAMAGE", "multiply": 0.15 },
{ "value": "STAMINA_REGEN_MOD", "add": 1 }
]
},
{
"type": "enchantment",
"id": "iso_bionic_vampire_buff",
"name": { "str": "Assassin's Drive" },
"description": "Hey man, it's just business.",
"condition": {
"not": {
"or": [
{ "u_at_om_location": "iso_elevator_safe" },
{ "u_at_om_location": "iso_hallway_safe" },
{ "u_at_om_location": "iso_next_level_elevator" }
]
}
},
"values": [ { "value": "POWER_TRICKLE", "add": -5000 } ]
}
]
50 changes: 50 additions & 0 deletions data/mods/Isolation-Protocol/Player/Perks/perk_eoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,55 @@
},
{ "math": [ "u_old_distance", "=", "distance('u', 'npc')" ] }
]
},
{
"type": "effect_on_condition",
"id": "EOC_ISO_BIO_VAMPIRE_RESTORE",
"eoc_type": "EVENT",
"required_event": "character_kills_monster",
"condition": { "and": [ { "math": [ "u_bionic_in_melee", "==", "1" ] }, { "u_has_trait": "iso_bionic_vampire" } ] },
"//": "* in math is so the number before the * is kJ of bionic power restored",
"effect": [
{ "math": [ "u_val('power')", "+=", "1.75 * 1000000" ] },
{ "if": { "npc_has_flag": "PUSH_VEH" }, "then": { "math": [ "u_val('power')", "+=", "50 * 1000000" ] } },
{
"if": { "npc_has_flag": "CORNERED_FIGHTER " },
"then": { "math": [ "u_val('power')", "+=", "0.5 * 1000000" ] }
},
{
"if": { "npc_has_flag": "PRIORITIZE_TARGETS " },
"then": { "math": [ "u_val('power')", "+=", "15 * 1000000" ] }
},
{ "if": { "npc_has_flag": "DROPS_AMMO" }, "then": { "math": [ "u_val('power')", "+=", "35 * 1000000" ] } },
{ "if": { "npc_has_flag": "STUN_IMMUNE" }, "then": { "math": [ "u_val('power')", "+=", "2 * 1000000" ] } },
{ "if": { "npc_has_flag": "HAS_MIND" }, "then": { "math": [ "u_val('power')", "+=", "10 * 1000000" ] } },
{ "if": { "npc_has_flag": "ELECTRIC" }, "then": { "math": [ "u_val('power')", "+=", "5 * 1000000" ] } },
{ "if": { "npc_has_flag": "HARDTOSHOOT" }, "then": { "math": [ "u_val('power')", "+=", "20 * 1000000" ] } },
{ "if": { "npc_has_species": "NETHER" }, "then": { "math": [ "u_val('power')", "+=", "25 * 1000000" ] } },
{ "if": { "npc_has_species": "MIGO" }, "then": { "math": [ "u_val('power')", "+=", "20 * 1000000" ] } },
{ "if": { "npc_has_species": "ROBOT" }, "then": { "math": [ "u_val('power')", "+=", "5 * 1000000" ] } }
]
},
{
"type": "effect_on_condition",
"id": "EOC_ISO_BIO_VAMPIRE_RESTORE_IN_MELEE",
"eoc_type": "EVENT",
"required_event": "character_melee_attacks_monster",
"condition": { "u_has_trait": "iso_bionic_vampire" },
"effect": [ { "math": [ "u_bionic_in_melee", "=", "1" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_ISO_BIO_VAMPIRE_RESTORE_AT_RANGE",
"eoc_type": "EVENT",
"required_event": "character_ranged_attacks_monster",
"condition": { "u_has_trait": "iso_bionic_vampire" },
"effect": [ { "math": [ "u_bionic_in_melee", "=", "0" ] } ]
},
{
"type": "effect_on_condition",
"id": "EOC_ISO_BIONIC_VAMPIRE_POWER_RESTORE",
"condition": { "u_has_trait": "iso_bionic_vampire" },
"effect": { "math": [ "u_val('power')", "+=", "500 * 1000000" ] }
}
]
13 changes: 13 additions & 0 deletions data/mods/Isolation-Protocol/Player/Perks/perks.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,18 @@
"enchantments": [ "iso_ench_geas_buff" ],
"purifiable": false,
"valid": false
},
{
"type": "mutation",
"id": "iso_bionic_vampire",
"name": { "str": "Power Drain" },
"points": 0,
"description": "Your cybernetic implants are constantly losing power, but a quirk of their design allows you regain power through murder.\n\nYou lose bionic power every second, but melee kills restore power, scaling with the danger level of your target.",
"category": [ "iso_start_perk" ],
"enchantments": [ "iso_bionic_vampire_buff" ],
"purifiable": false,
"valid": false,
"//": "Idea here is they can't have any NEW bionics because they're full up (and so they can't just cheat by finding fuel bionics)",
"no_cbm_on_bp": [ "torso", "head", "eyes", "mouth", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r" ]
}
]
66 changes: 66 additions & 0 deletions data/mods/Isolation-Protocol/Player/profession.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,5 +172,71 @@
},
"female": { "entries": [ { "item": "undershirt" } ] }
}
},
{
"type": "profession",
"id": "iso_bionic_vampire",
"name": "Bionic Vampire",
"description": "An assassin more metal than meat, driven onward by their faulty cybernetics.",
"points": 6,
"proficiencies": [ "prof_gross_anatomy", "prof_bionic_swords_familiar", "prof_bionic_swords_pro" ],
"//": "Once it's possible, this guy should have fully-cybernetic arms. Right now, bio_armor_arms + bio_hydraulics will have to do.",
"CBMs": [
"bio_blade",
"bio_tattoo_led",
"bio_ar",
"bio_watch",
"bio_armor_eyes",
"bio_hydraulics",
"bio_shock",
"bio_climate",
"bio_weight",
"bio_armor_arms",
"bio_targeting",
"bio_uncanny_dodge",
"bio_adrenaline",
"bio_night_vision",
"bio_blood_filter",
"bio_ads",
"bio_ods",
"bio_soporific",
"bio_faraday",
"bio_power_storage_mkII",
"bio_power_storage_mkII",
"bio_power_storage_mkII",
"bio_power_storage_mkII",
"bio_power_storage_mkII",
"bio_power_storage_mkII",
"bio_power_storage_mkII",
"bio_power_storage_mkII"
],
"traits": [ "iso_trait", "iso_bionic_vampire" ],
"skills": [
{ "level": 3, "name": "melee" },
{ "level": 3, "name": "cutting" },
{ "level": 3, "name": "dodge" },
{ "level": 3, "name": "gun" },
{ "level": 2, "name": "firstaid" }
],
"items": {
"both": {
"entries": [
{ "item": "socks" },
{ "item": "tank_top" },
{ "item": "jacket_leather" },
{ "item": "pants_leather" },
{ "item": "boots" },
{ "item": "gloves_fingerless" },
{ "item": "wristwatch" },
{ "item": "gum" },
{ "group": "charged_smart_phone" },
{ "item": "ruby_gold_earring" },
{ "item": "glock_19", "ammo-item": "9mm", "container-item": "holster", "charges": 15 },
{ "item": "glockmag", "ammo-item": "9mm", "charges": 15 }
]
},
"male": { "entries": [ { "item": "briefs" } ] },
"female": { "entries": [ { "item": "sports_bra" }, { "item": "boy_shorts" } ] }
}
}
]
2 changes: 1 addition & 1 deletion data/mods/Isolation-Protocol/scenarios.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"points": 0,
"description": "Room by room and level by level the facility drills into depths beyond the logical. An endless mode where the only goal is to reach the lowest level possible.",
"allowed_locs": [ "iso_entry_setpiece" ],
"professions": [ "iso_deliveryboy", "iso_cop", "iso_paramedic", "iso_hacker", "iso_geas_knight" ],
"professions": [ "iso_deliveryboy", "iso_cop", "iso_paramedic", "iso_hacker", "iso_geas_knight", "iso_bionic_vampire" ],
"flags": [ "LONE_START" ],
"start_name": "Facility Lobby",
"forbidden_traits": [ "ROBUST", "XS", "XXXL", "CHAOTIC_BAD", "QUICK", "NOMAD", "WAYFARER", "NYCTOPHOBIA" ],
Expand Down

0 comments on commit 82c06b0

Please sign in to comment.