From 3fc300bb61940ed9a3f3c3d68fd919fd0c7d3605 Mon Sep 17 00:00:00 2001 From: John-Candlebury Date: Fri, 8 Nov 2024 22:07:53 -0600 Subject: [PATCH 1/4] Riemann Shields --- data/mods/Aftershock/flags.json | 5 + .../itemgroups/clothing/armor_sets.json | 3 +- .../Aftershock/items/armor/energy_shield.json | 283 +++++++++++++++ data/mods/Aftershock/items/materials.json | 17 + .../augustmoon_outfitter.json | 6 +- data/mods/Aftershock/ui.json | 325 ++++++++++++++++++ 6 files changed, 637 insertions(+), 2 deletions(-) create mode 100644 data/mods/Aftershock/items/armor/energy_shield.json create mode 100644 data/mods/Aftershock/ui.json diff --git a/data/mods/Aftershock/flags.json b/data/mods/Aftershock/flags.json index 3187985c7e3e7..b89da487905ac 100644 --- a/data/mods/Aftershock/flags.json +++ b/data/mods/Aftershock/flags.json @@ -18,6 +18,11 @@ "type": "json_flag", "info": "You are immune to telepathy." }, + { + "id": "SHIELD_GENERATOR", + "type": "json_flag", + "info": "This item is capable of projecting a Riemann protective shield." + }, { "id": "HIVE_MIND", "type": "monster_flag", diff --git a/data/mods/Aftershock/itemgroups/clothing/armor_sets.json b/data/mods/Aftershock/itemgroups/clothing/armor_sets.json index fa07a9314d602..a9720e9ff3b48 100644 --- a/data/mods/Aftershock/itemgroups/clothing/armor_sets.json +++ b/data/mods/Aftershock/itemgroups/clothing/armor_sets.json @@ -64,7 +64,8 @@ "distribution": [ { "item": "tac_fullhelmet_uicas", "prob": 20 }, { "item": "tac_helmet_uicas", "prob": 1 } ], "prob": 40 }, - { "item": "afs_military_cloak", "prob": 40 } + { "item": "afs_military_cloak", "prob": 40 }, + { "item": "afs_backpack_shieldgen", "prob": 1 } ] }, { diff --git a/data/mods/Aftershock/items/armor/energy_shield.json b/data/mods/Aftershock/items/armor/energy_shield.json new file mode 100644 index 0000000000000..0b3077942482b --- /dev/null +++ b/data/mods/Aftershock/items/armor/energy_shield.json @@ -0,0 +1,283 @@ +[ + { + "id": "afs_energy_shield", + "type": "TOOL_ARMOR", + "name": { "str": "Riemann shell" }, + "description": "A thin shell of altered reality containing enormous electromagnetic potential, such that it might behave as a solid object under certain conditions. A Riemann shell can defend against a wide variety of physical and energy attacks, but can be overwhelmed and forced to collapse into deadly radiation with prolonged assault.", + "weight": "1 g", + "volume": "1 ml", + "symbol": "o", + "color": "blue", + "material": [ "riemann_space" ], + "environmental_protection": 20, + "material_thickness": 5.0, + "max_energy_shield_hp": 1200, + "flags": [ + "AURA", + "ENERGY_SHIELD", + "OVERSIZE", + "ONLY_ONE", + "TRADER_AVOID", + "NO_TAKEOFF", + "NONCONDUCTIVE", + "SPAWN_ACTIVE", + "ALLOWS_NATURAL_ATTACKS", + "SEMITANGIBLE", + "UNRESTRICTED" + ], + "tick_action": { + "type": "effect_on_conditions", + "effect_on_conditions": [ { "id": "_afs_energy_shield", "effect": { "run_eocs": "EOC_afs_do_shield" } } ] + }, + "armor": [ + { + "encumbrance": 0, + "coverage": 100, + "covers": [ "leg_l", "leg_r", "torso", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r", "mouth", "eyes" ] + } + ] + }, + { + "id": "afs_backpack_shieldgen", + "type": "TOOL_ARMOR", + "name": { "str": "SHD-1k Riemann Shield Generator" }, + "description": "A backpack mounted shield generator for infantry use, capable of fully protecting its user during prolonged bursts of kinetic and energy attacks. Standard issue for UICA breaching teams.\n\nIts high energy consumption and weight make it unsuitable for long-term use. Powered with energy cartridges.", + "weight": "10 kg", + "volume": "18000 ml", + "price": "120 kUSD", + "price_postapoc": "120 kUSD", + "ammo": [ "battery" ], + "material": [ "nylon", "aluminum" ], + "symbol": "[", + "looks_like": "backpack", + "color": "brown", + "warmth": 10, + "charges_per_use": 400, + "material_thickness": 2, + "pocket_data": [ + { + "pocket_type": "MAGAZINE_WELL", + "max_contains_volume": "20 L", + "max_contains_weight": "20 kg", + "magazine_well": "75 ml", + "item_restriction": [ "afs_cartridge", "afs_bootleg_cartridge", "afs_archeotech_cartridge" ] + } + ], + "flags": [ "BELTED", "WATERPROOF", "ONLY_ONE" ], + "use_action": { + "type": "effect_on_conditions", + "ammo_scale": 1, + "menu_text": "Activate", + "effect_on_conditions": [ + { + "id": "afs_backpack_shieldgen_activate", + "effect": { + "run_eoc_with": "EOC_start_shield", + "variables": { + "transform_target": "afs_backpack_shieldgen_on", + "shield_max_hp": "600", + "shield_regen": "1", + "shield_regen_rate": "1", + "bionic": "0", + "turn_cost": "1", + "success_message": "a", + "failure_message": "b" + } + } + } + ] + }, + "armor": [ + { + "encumbrance": [ 3, 12 ], + "volume_encumber_modifier": 0, + "coverage": 100, + "covers": [ "torso" ], + "specifically_covers": [ "torso_hanging_back", "torso_waist" ] + } + ] + }, + { + "id": "afs_backpack_shieldgen_on", + "type": "TOOL_ARMOR", + "name": { "str": "SHD-1k Riemann Shield Generator (active)", "str_pl": "SHD-1k Riemann Shield Generators (active)" }, + "copy-from": "afs_backpack_shieldgen", + "description": "A backpack mounted shield generator for infantry use, capable of fully protecting its user during prolonged bursts of kinetic and energy attacks. Standard issue for UICA breaching teams.\n\nIts high energy consumption and weight make it unsuitable for long-term use. Powered with energy cartridges.", + "power_draw": "100000 mW", + "revert_to": "afs_backpack_shieldgen", + "extend": { "flags": [ "SHIELD_GENERATOR" ] }, + "use_action": { + "type": "effect_on_conditions", + "ammo_scale": 0, + "menu_text": "Deactivate", + "effect_on_conditions": [ + { + "id": "afs_backpack_shieldgen_deactivate", + "effect": { "run_eoc_with": "EOC_stop_shield", "variables": { "transform_target": "afs_backpack_shieldgen" } } + } + ] + }, + "tick_action": { + "type": "effect_on_conditions", + "effect_on_conditions": [ + { + "id": "afs_backpack_shieldgen_tick", + "condition": "has_alpha", + "effect": { "math": [ "u_shield_power_ratio", "=", "n_val('power_percentage')" ] }, + "false_effect": { "transform_item": "afs_backpack_shieldgen" } + } + ] + } + }, + { + "id": "spawn_shield", + "type": "SPELL", + "name": "Spawn Riemann Shield", + "description": "Creates a shield.", + "valid_targets": [ "self" ], + "flags": [ "VERBAL", "NO_FAIL", "CONCENTRATE", "SOMATIC", "PERMANENT_ALL_LEVELS", "NO_EXPLOSION_SFX" ], + "min_range": 0, + "max_range": 0, + "min_damage": 1, + "max_damage": 1, + "effect": "spawn_item", + "effect_str": "afs_energy_shield", + "shape": "blast", + "max_level": 1 + }, + { + "id": "EOC_start_shield", + "type": "effect_on_condition", + "effect": [ + { + "if": "has_ammo", + "then": [ + { "turn_cost": { "context_val": "turn_cost" } }, + { "u_cast_spell": { "id": "spawn_shield", "hit_self": true } }, + { "u_message": { "context_val": "success_message" } }, + { "transform_item": { "context_val": "transform_target" }, "active": true }, + { "math": [ "_shield_uid", "=", "rand(1200)" ] }, + { "math": [ "n_shield_gen_uid", "=", "_shield_uid" ] }, + { + "if": { "math": [ "_is_bionic" ] }, + "then": [ { "math": [ "u_shield_power_ratio", "=", "u_val('power_percentage')" ] } ], + "else": [ { "math": [ "u_shield_power_ratio", "=", "n_val('power_percentage')" ] } ] + }, + { + "u_run_inv_eocs": "all", + "search_data": [ { "id": [ "afs_energy_shield" ] } ], + "true_eocs": [ + { + "id": "_SHIELD_SETUP", + "effect": [ + { "math": [ "n_shield_uid", "=", "_shield_uid" ] }, + { "math": [ "n_shield_turn", "=", "0" ] }, + { "math": [ "n_SHIELD_REGEN", "=", "0" ] }, + { "math": [ "n_SHIELD_REGEN_RATE", "=", "0" ] }, + { "math": [ "n_ENERGY_SHIELD_HP", "=", "_shield_max_hp*0.1" ] }, + { "math": [ "n_ENERGY_SHIELD_MAX_HP", "=", "_shield_max_hp" ] }, + { "math": [ "n_SHIELD_REGEN", "=", "_shield_regen" ] }, + { "math": [ "n_SHIELD_REGEN_RATE", "=", "shield_regen_rate" ] }, + { "math": [ "u_shield_ratio", "=", "n_ENERGY_SHIELD_HP/n_ENERGY_SHIELD_MAX_HP" ] } + ] + } + ] + } + ], + "else": { "u_message": { "context_val": "failure_message" } } + } + ] + }, + { + "id": "EOC_afs_do_shield", + "type": "effect_on_condition", + "effect": [ + { "math": [ "u_proceed_shield", "=", "0" ] }, + { "math": [ "_shield_uid", "=", "n_shield_uid" ] }, + { "math": [ "u_shield_ratio", "=", "n_ENERGY_SHIELD_HP/n_ENERGY_SHIELD_MAX_HP*100" ] }, + { + "//": "We check if the shield generator that made this shield is still active.", + "u_run_inv_eocs": "all", + "search_data": [ { "worn_only": true, "flags": [ "SHIELD_GENERATOR" ] } ], + "true_eocs": [ + { + "id": "_afs_actually_do_shield", + "condition": { "math": [ "_shield_uid", "==", "n_shield_gen_uid" ] }, + "effect": [ { "math": [ "u_proceed_shield", "=", "1" ] } ] + } + ] + }, + { + "if": { "math": [ "u_proceed_shield", "==", "1" ] }, + "then": [ + { "math": [ "n_shield_turn", "++" ] }, + { + "if": { + "and": [ { "math": [ "n_SHIELD_REGEN", "!=", "0" ] }, { "math": [ "n_shield_turn/n_SHIELD_REGEN_RATE", ">", "1" ] } ] + }, + "then": [ + { "math": [ "n_shield_turn", "=", "0" ] }, + { "math": [ "n_ENERGY_SHIELD_HP", "+=", "n_SHIELD_REGEN" ] }, + { + "math": [ + "n_ENERGY_SHIELD_HP", + "=", + "n_ENERGY_SHIELD_HP > n_ENERGY_SHIELD_MAX_HP ? n_ENERGY_SHIELD_MAX_HP : n_ENERGY_SHIELD_HP" + ] + } + ] + } + ], + "else": [ { "u_remove_item_with": "afs_energy_shield" }, { "math": [ "u_shield_ratio", "=", "-1" ] } ] + } + ] + }, + { + "id": "EOC_stop_shield", + "type": "effect_on_condition", + "effect": [ + { "transform_item": { "context_val": "transform_target" } }, + { "u_remove_item_with": "afs_energy_shield" }, + { "math": [ "u_shield_ratio", "=", "-1" ] } + ] + }, + { + "//": "This bit is only here to do a final update of the UI when a generator is dropped.", + "id": "EOC_check_drop_shield_gen", + "type": "effect_on_condition", + "eoc_type": "EVENT", + "required_event": "character_finished_activity", + "condition": { + "and": [ + { "compare_string": [ "ACT_DROP", { "context_val": "activity" } ] }, + { "math": [ "u_shield_power_ratio", ">=", "0" ] } + ] + }, + "effect": [ + { "math": [ "u_shield_power_ratio", "=", "-1" ] }, + { + "//": "We check if we have another shield generator to update the UI power gauge.", + "u_run_inv_eocs": "all", + "search_data": [ { "worn_only": true, "flags": [ "SHIELD_GENERATOR" ] } ], + "true_eocs": [ + { + "id": "_afs_drop_update_power", + "effect": [ { "math": [ "u_shield_power_ratio", "=", "n_val('power_percentage')" ] } ] + } + ] + } + ] + }, + { + "id": "EOC_detonate_shield", + "type": "effect_on_condition", + "eoc_type": "EVENT", + "required_event": "character_armor_destroyed", + "condition": { "and": [ { "compare_string": [ "afs_energy_shield", { "context_val": "itype" } ] } ] }, + "effect": [ + { "math": [ "u_shield_ratio", "=", "-1" ] }, + { "u_emit": "heavy_rad_glimmer", "chance_mult": 2 }, + { "u_message": "The shield blasts you with radiation as it dissipates.", "type": "bad" } + ] + } +] diff --git a/data/mods/Aftershock/items/materials.json b/data/mods/Aftershock/items/materials.json index 71ec9550567ba..c4e1c806b52c9 100644 --- a/data/mods/Aftershock/items/materials.json +++ b/data/mods/Aftershock/items/materials.json @@ -71,6 +71,23 @@ "resist": { "bash": 4, "cut": 6, "acid": 6, "heat": 2, "afs_plasma": 2, "bullet": 8, "electric": 0 }, "repair_difficulty": 9 }, + { + "type": "material", + "id": "riemann_space", + "name": "Riemann space", + "density": 1, + "specific_heat_liquid": 0.52, + "specific_heat_solid": 0.52, + "latent_heat": 5200, + "chip_resist": 100, + "breathability": "SECOND_SKIN", + "dmg_adj": [ "resonating", "cascading", "unraveling", "fractal" ], + "bash_dmg_verb": "agitated", + "cut_dmg_verb": "agitated", + "soft": true, + "//": "Impenetrable to all damage types. The material energy shields are made of.", + "resist": { "bash": 1000, "cut": 1000, "acid": 1000, "heat": 1000, "bullet": 1000, "afs_plasma": 1000, "electric": 1000 } + }, { "type": "material", "id": "clearcrete", diff --git a/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json b/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json index 073e5462e2128..d20cee692047c 100644 --- a/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json +++ b/data/mods/Aftershock/npcs/Augustmoon_Salvors/augustmoon_outfitter.json @@ -81,7 +81,11 @@ "subtype": "distribution", "ammo": 100, "magazine": 100, - "items": [ { "group": "afs_armor_military_infantry_g", "prob": 90 }, { "item": "afs_backpack_rockets", "prob": 10 } ] + "items": [ + { "group": "afs_armor_military_infantry_g", "prob": 85 }, + { "item": "afs_backpack_rockets", "prob": 10 }, + { "item": "afs_backpack_shieldgen", "prob": 5 } + ] }, { "type": "npc", diff --git a/data/mods/Aftershock/ui.json b/data/mods/Aftershock/ui.json new file mode 100644 index 0000000000000..a04a6262bcb35 --- /dev/null +++ b/data/mods/Aftershock/ui.json @@ -0,0 +1,325 @@ +[ + { + "//": "Extend with the danger widget", + "copy-from": "legacy_classic_sidebar", + "type": "widget", + "id": "legacy_classic_sidebar", + "extend": { "widgets": [ "shield_layout" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "legacy_compact_sidebar", + "type": "widget", + "id": "legacy_compact_sidebar", + "extend": { "widgets": [ "shield_layout" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "legacy_labels_narrow_sidebar", + "type": "widget", + "id": "legacy_labels_narrow_sidebar", + "extend": { "widgets": [ "shield_layout" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "legacy_labels_sidebar", + "type": "widget", + "id": "legacy_labels_sidebar", + "extend": { "widgets": [ "shield_layout" ] } + }, + { + "//": "Extend with the danger widget", + "copy-from": "structured_sidebar", + "type": "widget", + "id": "structured_sidebar", + "extend": { "widgets": [ "shield_layout" ] } + }, + { + "id": "shield_layout", + "type": "widget", + "style": "layout", + "arrange": "minimum_columns", + "label": "SHIELD", + "label_align": "right", + "text_align": "right", + "widgets": [ "shield_layout_1", "shield_layout_2" ], + "flags": [ "W_NO_PADDING" ] + }, + { + "id": "shield_layout_2", + "type": "widget", + "style": "layout", + "arrange": "rows", + "label": "SHIELD", + "widgets": [ "shield_empty", "shield_rad_warning" ] + }, + { + "id": "shield_layout_1", + "type": "widget", + "style": "layout", + "arrange": "rows", + "label": "SHIELD", + "widgets": [ "shield_title", "shield_gauge", "shield_power_gauge" ] + }, + { + "id": "shield_gauge", + "type": "widget", + "style": "text", + "label": "INTGR", + "width": 19, + "clauses": [ + { + "id": "full30", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇", + "condition": { "math": [ "u_shield_ratio", ">=", "96.67" ] } + }, + { + "id": "full29", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▅", + "condition": { "math": [ "u_shield_ratio", ">=", "93.33" ] } + }, + { + "id": "full28", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▂", + "condition": { "math": [ "u_shield_ratio", ">=", "90.00" ] } + }, + { + "id": "full27", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇  ", + "condition": { "math": [ "u_shield_ratio", ">=", "86.67" ] } + }, + { + "id": "full26", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▅  ", + "condition": { "math": [ "u_shield_ratio", ">=", "83.33" ] } + }, + { + "id": "full25", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▂  ", + "condition": { "math": [ "u_shield_ratio", ">=", "80.00" ] } + }, + { + "id": "full24", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇    ", + "condition": { "math": [ "u_shield_ratio", ">=", "76.67" ] } + }, + { + "id": "full23", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▅    ", + "condition": { "math": [ "u_shield_ratio", ">=", "73.33" ] } + }, + { + "id": "full22", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▂    ", + "condition": { "math": [ "u_shield_ratio", ">=", "70.00" ] } + }, + { + "id": "full21", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇      ", + "condition": { "math": [ "u_shield_ratio", ">=", "66.67" ] } + }, + { + "id": "full20", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▅      ", + "condition": { "math": [ "u_shield_ratio", ">=", "63.33" ] } + }, + { + "id": "full19", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▂      ", + "condition": { "math": [ "u_shield_ratio", ">=", "60.00" ] } + }, + { + "id": "full18", + "text": "▇ ▇ ▇ ▇ ▇ ▇        ", + "condition": { "math": [ "u_shield_ratio", ">=", "56.67" ] } + }, + { + "id": "full17", + "text": "▇ ▇ ▇ ▇ ▇ ▅        ", + "condition": { "math": [ "u_shield_ratio", ">=", "53.33" ] } + }, + { + "id": "full16", + "text": "▇ ▇ ▇ ▇ ▇ ▂        ", + "condition": { "math": [ "u_shield_ratio", ">=", "50.00" ] } + }, + { + "id": "full15", + "text": "▇ ▇ ▇ ▇ ▇          ", + "condition": { "math": [ "u_shield_ratio", ">=", "46.67" ] } + }, + { + "id": "full14", + "text": "▇ ▇ ▇ ▇ ▅          ", + "condition": { "math": [ "u_shield_ratio", ">=", "43.33" ] } + }, + { + "id": "full13", + "text": "▇ ▇ ▇ ▇ ▂          ", + "condition": { "math": [ "u_shield_ratio", ">=", "40.00" ] } + }, + { + "id": "full12", + "text": "▇ ▇ ▇ ▇            ", + "condition": { "math": [ "u_shield_ratio", ">=", "36.67" ] } + }, + { + "id": "full11", + "text": "▇ ▇ ▇ ▅            ", + "condition": { "math": [ "u_shield_ratio", ">=", "33.33" ] } + }, + { + "id": "full10", + "text": "▇ ▇ ▇ ▂            ", + "condition": { "math": [ "u_shield_ratio", ">=", "30.00" ] } + }, + { + "id": "full9", + "text": "▇ ▇ ▇              ", + "condition": { "math": [ "u_shield_ratio", ">=", "26.67" ] } + }, + { + "id": "full8", + "text": "▇ ▇ ▅              ", + "condition": { "math": [ "u_shield_ratio", ">=", "23.33" ] } + }, + { + "id": "full7", + "text": "▇ ▇ ▂              ", + "condition": { "math": [ "u_shield_ratio", ">=", "20.00" ] } + }, + { + "id": "full6", + "text": "▇ ▇                ", + "condition": { "math": [ "u_shield_ratio", ">=", "16.67" ] } + }, + { + "id": "full5", + "text": "▇ ▅                ", + "condition": { "math": [ "u_shield_ratio", ">=", "13.33" ] } + }, + { + "id": "full4", + "text": "▇ ▂                ", + "condition": { "math": [ "u_shield_ratio", ">=", "10.00" ] } + }, + { + "id": "full3", + "text": "▇                  ", + "condition": { "math": [ "u_shield_ratio", ">=", "6.67" ] } + }, + { + "id": "full2", + "text": "▅                  ", + "condition": { "math": [ "u_shield_ratio", ">=", "3.33" ] } + }, + { + "id": "full1", + "text": "▂                  ", + "condition": { "math": [ "u_shield_ratio", ">=", "0.00" ] } + }, + { + "id": "empty", + "text": " OFFLINE ", + "condition": { "math": [ "u_shield_ratio", "<", "0.00" ] } + } + ], + "flags": [ "W_NO_PADDING" ] + }, + { + "id": "shield_power_gauge", + "type": "widget", + "style": "text", + "label": "POWER", + "width": 19, + "clauses": [ + { + "id": "full10", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇", + "condition": { "math": [ "u_shield_power_ratio", ">=", "90" ] } + }, + { + "id": "full9", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇  ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "80" ] } + }, + { + "id": "full8", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇ ▇    ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "70" ] } + }, + { + "id": "full7", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇      ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "60" ] } + }, + { + "id": "full6", + "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇      ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "50" ] } + }, + { + "id": "full5", + "text": "▇ ▇ ▇ ▇ ▇          ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "40" ] } + }, + { + "id": "full4", + "text": "▇ ▇ ▇ ▇            ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "30" ] } + }, + { + "id": "full3", + "text": "▇ ▇ ▇              ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "20" ] } + }, + { + "id": "full2", + "text": "▇ ▇                ", + "condition": { "math": [ "u_shield_power_ratio", ">=", "10" ] } + }, + { + "id": "full1", + "text": "▇                  ", + "condition": { "math": [ "u_shield_power_ratio", ">", "0" ] } + }, + { + "id": "empty", + "text": " OFFLINE ", + "condition": { "math": [ "u_shield_power_ratio", "<=", "0" ] } + } + ], + "flags": [ "W_NO_PADDING" ] + }, + { + "id": "shield_rad_warning", + "type": "widget", + "width": 8, + "style": "text", + "clauses": [ + { + "text": " ☢DNGR☢", + "color": "red", + "condition": { "and": [ { "math": [ "u_shield_ratio", "<", "25" ] }, { "math": [ "u_shield_ratio", ">=", "0" ] } ] } + } + ], + "default_clause": { "text": " ☢DNGR☢", "color": "dark_gray" }, + "flags": [ "W_LABEL_NONE", "W_NO_PADDING" ] + }, + { + "id": "shield_title", + "type": "widget", + "width": 8, + "style": "text", + "string": "SHIELDING:", + "flags": [ "W_LABEL_NONE", "W_NO_PADDING" ] + }, + { + "id": "shield_empty", + "type": "widget", + "width": 8, + "style": "text", + "string": "", + "flags": [ "W_LABEL_NONE", "W_NO_PADDING" ] + } +] From eefd04e13cd3d2d28a3cebd6042b29f3d840e081 Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Tue, 12 Nov 2024 21:46:18 -0600 Subject: [PATCH 2/4] Update data/mods/Aftershock/ui.json Co-authored-by: Anton Burmistrov --- data/mods/Aftershock/ui.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mods/Aftershock/ui.json b/data/mods/Aftershock/ui.json index a04a6262bcb35..b30984a87b993 100644 --- a/data/mods/Aftershock/ui.json +++ b/data/mods/Aftershock/ui.json @@ -255,7 +255,7 @@ }, { "id": "full6", - "text": "▇ ▇ ▇ ▇ ▇ ▇ ▇      ", + "text": "▇ ▇ ▇ ▇ ▇ ▇       ", "condition": { "math": [ "u_shield_power_ratio", ">=", "50" ] } }, { From 10a85f4e486c0f94e0097a6206897449cd5d973b Mon Sep 17 00:00:00 2001 From: John Candlebury Date: Wed, 13 Nov 2024 07:07:38 -0600 Subject: [PATCH 3/4] Update ui.json --- data/mods/Aftershock/ui.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/ui.json b/data/mods/Aftershock/ui.json index b30984a87b993..d33a78e3e2946 100644 --- a/data/mods/Aftershock/ui.json +++ b/data/mods/Aftershock/ui.json @@ -216,12 +216,12 @@ { "id": "full1", "text": "▂                  ", - "condition": { "math": [ "u_shield_ratio", ">=", "0.00" ] } + "condition": { "math": [ "u_shield_ratio", ">", "0.00" ] } }, { "id": "empty", "text": " OFFLINE ", - "condition": { "math": [ "u_shield_ratio", "<", "0.00" ] } + "condition": { "math": [ "u_shield_ratio", "<=", "0.00" ] } } ], "flags": [ "W_NO_PADDING" ] From 20827aa97dbb0d2899f82bcb1e10bf8765d0d088 Mon Sep 17 00:00:00 2001 From: John-Candlebury Date: Wed, 13 Nov 2024 19:40:14 -0600 Subject: [PATCH 4/4] Update eoc calls --- data/mods/Aftershock/items/armor/energy_shield.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/Aftershock/items/armor/energy_shield.json b/data/mods/Aftershock/items/armor/energy_shield.json index 0b3077942482b..f10734296d158 100644 --- a/data/mods/Aftershock/items/armor/energy_shield.json +++ b/data/mods/Aftershock/items/armor/energy_shield.json @@ -72,7 +72,7 @@ { "id": "afs_backpack_shieldgen_activate", "effect": { - "run_eoc_with": "EOC_start_shield", + "run_eocs": "EOC_start_shield", "variables": { "transform_target": "afs_backpack_shieldgen_on", "shield_max_hp": "600", @@ -113,7 +113,7 @@ "effect_on_conditions": [ { "id": "afs_backpack_shieldgen_deactivate", - "effect": { "run_eoc_with": "EOC_stop_shield", "variables": { "transform_target": "afs_backpack_shieldgen" } } + "effect": { "run_eocs": "EOC_stop_shield", "variables": { "transform_target": "afs_backpack_shieldgen" } } } ] },