diff --git a/data/mods/Isolation-Protocol/EOC/elevator_eoc.json b/data/mods/Isolation-Protocol/EOC/elevator_eoc.json index af0d071d47ac1..fdac4bdf8071f 100644 --- a/data/mods/Isolation-Protocol/EOC/elevator_eoc.json +++ b/data/mods/Isolation-Protocol/EOC/elevator_eoc.json @@ -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)" ] }, diff --git a/data/mods/Isolation-Protocol/Player/Perks/enchantments.json b/data/mods/Isolation-Protocol/Player/Perks/enchantments.json index b9e03412a6960..e1f448f55188a 100644 --- a/data/mods/Isolation-Protocol/Player/Perks/enchantments.json +++ b/data/mods/Isolation-Protocol/Player/Perks/enchantments.json @@ -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 } ] } ] diff --git a/data/mods/Isolation-Protocol/Player/Perks/perk_eoc.json b/data/mods/Isolation-Protocol/Player/Perks/perk_eoc.json index 47403fc710200..0c7f7cfed9b78 100644 --- a/data/mods/Isolation-Protocol/Player/Perks/perk_eoc.json +++ b/data/mods/Isolation-Protocol/Player/Perks/perk_eoc.json @@ -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" ] } } ] diff --git a/data/mods/Isolation-Protocol/Player/Perks/perks.json b/data/mods/Isolation-Protocol/Player/Perks/perks.json index 025f00c23e802..868ec5d864201 100644 --- a/data/mods/Isolation-Protocol/Player/Perks/perks.json +++ b/data/mods/Isolation-Protocol/Player/Perks/perks.json @@ -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" ] } ] diff --git a/data/mods/Isolation-Protocol/Player/profession.json b/data/mods/Isolation-Protocol/Player/profession.json index 7c990294448eb..7585e6f7359bc 100644 --- a/data/mods/Isolation-Protocol/Player/profession.json +++ b/data/mods/Isolation-Protocol/Player/profession.json @@ -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" } ] } + } } ] diff --git a/data/mods/Isolation-Protocol/scenarios.json b/data/mods/Isolation-Protocol/scenarios.json index 74853d2ffdaf8..2c0cb87f94b1f 100644 --- a/data/mods/Isolation-Protocol/scenarios.json +++ b/data/mods/Isolation-Protocol/scenarios.json @@ -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" ],