diff --git a/data/json/effects_on_condition/nether_eocs/LIXA_EOCs_spells_traps.json b/data/json/effects_on_condition/nether_eocs/LIXA_EOCs_spells_traps.json new file mode 100644 index 0000000000000..2cc252c2f9ee7 --- /dev/null +++ b/data/json/effects_on_condition/nether_eocs/LIXA_EOCs_spells_traps.json @@ -0,0 +1,2226 @@ +[ + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_1", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_1" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_2", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_2" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_3", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_3" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_4", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_4" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_5", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_5" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_6", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_6" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_7", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_7" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_8", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_8" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_9", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_9" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_10", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_10" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_11", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_11" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_12", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_12" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_13", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_13" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_14", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_14" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_15", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_15" } + }, + { + "type": "trap", + "id": "tr_LIXA_unfold_entry_16", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE" ], + "spell_data": { "id": "spell_LIXA_unfold_enter_16" } + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_1", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_1" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_2", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_2" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_3", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_3" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_4", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_4" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_5", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_5" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_6", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_6" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_7", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_7" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_8", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_8" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_9", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_9" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_10", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_10" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_11", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_11" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_12", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_12" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_13", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_13" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_14", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_14" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_15", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_15" + }, + { + "type": "SPELL", + "id": "spell_LIXA_unfold_enter_16", + "name": "LIXA Unfold Entry", + "description": "Teleports the victim to the unfolded chamber.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_UNFOLD_ENTRY_SETUP_16" + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_1", + "effect": [ { "math": [ "u_LIXA_entry", "=", "1" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_2", + "effect": [ { "math": [ "u_LIXA_entry", "=", "2" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_3", + "effect": [ { "math": [ "u_LIXA_entry", "=", "3" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_4", + "effect": [ { "math": [ "u_LIXA_entry", "=", "4" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_5", + "effect": [ { "math": [ "u_LIXA_entry", "=", "5" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_6", + "effect": [ { "math": [ "u_LIXA_entry", "=", "6" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_7", + "effect": [ { "math": [ "u_LIXA_entry", "=", "7" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_8", + "effect": [ { "math": [ "u_LIXA_entry", "=", "8" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_9", + "effect": [ { "math": [ "u_LIXA_entry", "=", "9" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_10", + "effect": [ { "math": [ "u_LIXA_entry", "=", "10" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_11", + "effect": [ { "math": [ "u_LIXA_entry", "=", "11" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_12", + "effect": [ { "math": [ "u_LIXA_entry", "=", "12" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_13", + "effect": [ { "math": [ "u_LIXA_entry", "=", "13" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_14", + "effect": [ { "math": [ "u_LIXA_entry", "=", "14" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_15", + "effect": [ { "math": [ "u_LIXA_entry", "=", "15" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY_SETUP_16", + "effect": [ { "math": [ "u_LIXA_entry", "=", "16" ] }, { "run_eocs": "EOC_LIXA_UNFOLD_ENTRY" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_ENTRY", + "effect": [ + { + "place_override": { "global_val": "place_name", "default_str": "Infinite Corridor" }, + "length": "1 day", + "key": "LIXA_escape_key" + }, + { "u_add_effect": "LIXA_unfolded_eff", "duration": "PERMANENT", "intensity": 1 }, + { + "switch": { "math": [ "u_LIXA_entry" ] }, + "cases": [ + { "case": 1, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_1" }, "force": true } }, + { "case": 2, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_2" }, "force": true } }, + { "case": 3, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_3" }, "force": true } }, + { "case": 4, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_4" }, "force": true } }, + { "case": 5, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_5" }, "force": true } }, + { "case": 6, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_6" }, "force": true } }, + { "case": 7, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_7" }, "force": true } }, + { "case": 8, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_8" }, "force": true } }, + { "case": 9, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_9" }, "force": true } }, + { "case": 10, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_10" }, "force": true } }, + { "case": 11, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_11" }, "force": true } }, + { "case": 12, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_12" }, "force": true } }, + { "case": 13, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_13" }, "force": true } }, + { "case": 14, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_14" }, "force": true } }, + { "case": 15, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_15" }, "force": true } }, + { "case": 16, "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_16" }, "force": true } } + ] + }, + { + "u_message": "You step into a space that unfolds around you, becoming endless and completely flat. Every side of every surface is on display. You look down at your hands; you can see the front, the back, the insides and outsides of every vein and bone, all in the same place on one surface. You can't imagine what has happened to your eyes to let you understand what you are seeing. Or your brain.", + "popup": true + }, + { "math": [ "u_LIXA_unfold_level", "=", "0" ] }, + { "math": [ "u_LIXA_hallway_direction", "=", "2" ] }, + { + "u_location_variable": { "global_val": "LIXA_unfold_A" }, + "target_params": { "om_terrain": "LIXA_device_unfolded_A", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -8, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_unfold_B" }, + "target_params": { "om_terrain": "LIXA_device_unfolded_B", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -8, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_chamber_1" }, + "target_params": { "om_terrain": "LIXA_device_1", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -4, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_chamber_2" }, + "target_params": { "om_terrain": "LIXA_device_2", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -4, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_chamber_3" }, + "target_params": { "om_terrain": "LIXA_device_3", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -4, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_workfloor_NW" }, + "target_params": { "om_terrain": "LIXA_workfloor_1a", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -4, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_workfloor_NE" }, + "target_params": { "om_terrain": "LIXA_workfloor_2a", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -3, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_workfloor_SW" }, + "target_params": { "om_terrain": "LIXA_workfloor_1b", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -3, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_workfloor_SE" }, + "target_params": { "om_terrain": "LIXA_workfloor_2b", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": -3, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_surface_NW" }, + "target_params": { "om_terrain": "LIXA_surface_1a", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": 0, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_surface_NE" }, + "target_params": { "om_terrain": "LIXA_surface_1b", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": 0, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_surface_SW" }, + "target_params": { "om_terrain": "LIXA_surface_2a", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": 0, + "z_override": true + }, + { + "u_location_variable": { "global_val": "LIXA_surface_SE" }, + "target_params": { "om_terrain": "LIXA_surface_2b", "search_range": 400, "min_distance": 0, "z": 0 }, + "z_adjust": 0, + "z_override": true + } + ] + }, + { + "type": "trap", + "id": "tr_LIXA_back_1", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_1" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_1", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_1" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_2", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_2" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_2", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_2" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_3", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_3" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_3", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_3" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_4", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_4" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_4", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_4" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_5", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_5" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_5", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_5" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_6", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_6" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_6", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_6" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_7", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_7" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_7", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_7" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_8", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_8" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_8", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_8" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_9", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_9" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_9", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_9" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_10", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_10" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_10", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_10" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_11", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_11" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_11", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_11" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_12", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_12" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_12", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_12" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_13", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_13" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_13", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_13" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_14", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_14" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_14", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_14" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_15", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_15" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_15", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_15" } + }, + { + "type": "trap", + "id": "tr_LIXA_back_16", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_back_16" } + }, + { + "type": "trap", + "id": "tr_LIXA_forward_16", + "name": "", + "color": "green", + "symbol": "#", + "visibility": 99, + "always_invisible": true, + "avoidance": 99, + "difficulty": 99, + "trap_radius": 0, + "action": "spell", + "flags": [ "UNDODGEABLE", "UNCONSUMED" ], + "spell_data": { "id": "spell_LIXA_forward_16" } + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_1", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_1" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_1", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_1" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_2", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_2" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_2", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_2" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_3", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_3" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_3", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_3" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_4", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_4" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_4", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_4" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_5", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_5" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_5", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_5" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_6", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_6" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_6", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_6" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_7", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_7" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_7", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_7" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_8", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_8" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_8", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_8" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_9", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_9" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_9", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_9" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_10", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_10" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_10", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_10" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_11", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_11" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_11", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_11" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_12", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_12" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_12", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_12" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_13", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_13" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_13", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_13" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_14", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_14" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_14", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_14" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_15", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_15" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_15", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_15" + }, + { + "type": "SPELL", + "id": "spell_LIXA_back_16", + "name": "LIXA Back Teleport", + "description": "Teleports the victim backwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_BACK_SETUP_16" + }, + { + "type": "SPELL", + "id": "spell_LIXA_forward_16", + "name": "LIXA Forward Teleport", + "description": "Teleports the victim forwards.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "base_casting_time": 1, + "shape": "blast", + "min_range": 0, + "min_aoe": 1, + "max_aoe": 1, + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_FORWARD_SETUP_16" + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_1", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "1" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_1", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "1" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_2", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "2" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_2", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "2" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_3", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "3" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_3", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "3" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_4", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "4" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_4", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "4" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_5", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "5" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_5", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "5" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_6", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "6" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_6", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "6" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_7", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "7" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_7", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "7" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_8", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "8" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_8", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "8" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_9", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "9" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_9", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "9" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_10", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "10" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_10", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "10" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_11", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "11" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_11", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "11" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_12", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "12" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_12", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "12" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_13", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "13" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_13", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "13" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_14", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "14" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_14", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "14" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_15", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "15" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_15", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "15" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK_SETUP_16", + "effect": [ { "math": [ "u_LIXA_tp_back", "=", "16" ] }, { "run_eocs": "EOC_LIXA_BACK" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD_SETUP_16", + "effect": [ { "math": [ "u_LIXA_tp_forward", "=", "16" ] }, { "run_eocs": "EOC_LIXA_FORWARD" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_BACK", + "effect": [ + { + "switch": { "math": [ "u_LIXA_tp_back" ] }, + "cases": [ + { + "case": 1, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_1" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 2, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_2" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 3, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_3" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 4, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_4" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 5, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_5" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 6, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_6" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 7, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_7" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 8, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_8" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 9, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_9" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 10, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_10" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 11, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_11" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 12, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_12" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 13, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_13" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 14, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_14" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 15, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_15" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 16, + "effect": { "u_teleport": { "global_val": "LIXA_back_tp_16" }, "force": true, "success_message": "You walk for a long while." } + } + ] + }, + { + "run_eocs": [ + { + "id": "EOC_LIXA_back_check", + "condition": { "math": [ "u_LIXA_hallway_direction", "==", "1" ] }, + "effect": [ { "run_eocs": "EOC_LIXA_UNFOLD_SHIFT" } ] + } + ] + }, + { "math": [ "u_LIXA_hallway_direction", "=", "1" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_FORWARD", + "effect": [ + { + "switch": { "math": [ "u_LIXA_tp_forward" ] }, + "cases": [ + { + "case": 1, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_1" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 2, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_2" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 3, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_3" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 4, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_4" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 5, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_5" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 6, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_6" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 7, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_7" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 8, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_8" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 9, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_9" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 10, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_10" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 11, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_11" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 12, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_12" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 13, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_13" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 14, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_14" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 15, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_15" }, "force": true, "success_message": "You walk for a long while." } + }, + { + "case": 16, + "effect": { "u_teleport": { "global_val": "LIXA_forward_tp_16" }, "force": true, "success_message": "You walk for a long while." } + } + ] + }, + { + "run_eocs": [ + { + "id": "EOC_LIXA_forward_check", + "condition": { "math": [ "u_LIXA_hallway_direction", "==", "2" ] }, + "effect": [ { "run_eocs": "EOC_LIXA_UNFOLD_SHIFT" } ] + } + ] + }, + { "math": [ "u_LIXA_hallway_direction", "=", "2" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_spawn_goodbye_cards", + "condition": { "math": [ "u_LIXA_entry", "!=", "0" ] }, + "effect": [ + { "mapgen_update": "LIXA_goodbye_cards", "target_var": { "global_val": "LIXA_chamber_3" } }, + { "math": [ "u_LIXA_unfold_level", "=", "0" ] }, + { "math": [ "u_LIXA_tp_forward", "=", "0" ] }, + { "math": [ "u_LIXA_tp_back", "=", "0" ] }, + { "math": [ "u_LIXA_entry", "=", "0" ] } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_return", + "effect": [ + { "queue_eocs": "EOC_LIXA_unfold_spawn_goodbye_cards", "time_in_future": "0 seconds" }, + { "alter_timed_events": "LIXA_escape_key" }, + { "u_lose_effect": "LIXA_unfolded_eff" }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_chamber_1" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_chamber_2" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_chamber_3" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_workfloor_1a" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_workfloor_1b" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_workfloor_2a" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_workfloor_2b" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_surface_1a" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_surface_1b" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_surface_2a" } }, + { "mapgen_update": "turn_off_LIXA", "target_var": { "global_val": "LIXA_surface_2b" } }, + { + "u_message": "There is a soft sound, like a champaigne cork popping in an empty concert hall. The world is as it was again. The LIXA device still hums quietly as it finishes powering down.", + "popup": true + }, + { "u_teleport": { "global_val": "LIXA_return_tp" }, "force": true } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_UNFOLD_SHIFT", + "effect": [ + { + "switch": { "math": [ "u_LIXA_unfold_level" ] }, + "cases": [ + { "case": 0, "effect": { "queue_eocs": "EOC_LIXA_unfold_shift_0", "time_in_future": "2 seconds" } }, + { + "case": 1, + "effect": { + "run_eocs": [ + { + "id": "EOC_LIXA_unfold_shift_1_setup", + "effect": [ + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_B" } }, + { "queue_eocs": "EOC_LIXA_unfold_shift_1", "time_in_future": "2 seconds" } + ] + } + ] + } + }, + { + "case": 2, + "effect": { + "run_eocs": [ + { + "id": "EOC_LIXA_unfold_shift_2_setup", + "effect": [ + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_B" } }, + { "queue_eocs": "EOC_LIXA_unfold_shift_2", "time_in_future": "2 seconds" } + ] + } + ] + } + }, + { + "case": 3, + "effect": { + "run_eocs": [ + { + "id": "EOC_LIXA_unfold_shift_3_setup", + "effect": [ + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_B" } }, + { "queue_eocs": "EOC_LIXA_unfold_shift_3", "time_in_future": "2 seconds" } + ] + } + ] + } + }, + { + "case": 4, + "effect": { + "run_eocs": [ + { + "id": "EOC_LIXA_unfold_shift_4_setup", + "effect": [ + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_B" } }, + { "queue_eocs": "EOC_LIXA_unfold_shift_4", "time_in_future": "2 seconds" } + ] + } + ] + } + }, + { + "case": 5, + "effect": { + "run_eocs": [ + { + "id": "EOC_LIXA_unfold_shift_5_setup", + "effect": [ + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_B" } }, + { "queue_eocs": "EOC_LIXA_unfold_shift_5", "time_in_future": "2 seconds" } + ] + } + ] + } + }, + { + "case": 6, + "effect": { + "run_eocs": [ + { + "id": "EOC_LIXA_unfold_shift_6_setup", + "effect": [ + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "cleanup_LIXA", "target_var": { "global_val": "LIXA_unfold_B" } }, + { "queue_eocs": "EOC_LIXA_unfold_shift_6", "time_in_future": "2 seconds" } + ] + } + ] + } + } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_0", + "effect": [ { "math": [ "u_LIXA_unfold_level", "=", "1" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_1", + "effect": [ + { "math": [ "u_LIXA_unfold_level", "=", "2" ] }, + { "mapgen_update": "spawn_LIXA_1a", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "spawn_LIXA_1b", "target_var": { "global_val": "LIXA_unfold_B" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_2", + "effect": [ + { "math": [ "u_LIXA_unfold_level", "=", "3" ] }, + { "mapgen_update": "spawn_LIXA_2a", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "spawn_LIXA_2b", "target_var": { "global_val": "LIXA_unfold_B" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_3", + "effect": [ + { "math": [ "u_LIXA_unfold_level", "=", "4" ] }, + { "mapgen_update": "spawn_LIXA_3a", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "spawn_LIXA_3b", "target_var": { "global_val": "LIXA_unfold_B" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_4", + "effect": [ + { "math": [ "u_LIXA_unfold_level", "=", "5" ] }, + { "mapgen_update": "spawn_LIXA_4a", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "spawn_LIXA_4b", "target_var": { "global_val": "LIXA_unfold_B" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_5", + "effect": [ + { "math": [ "u_LIXA_unfold_level", "=", "6" ] }, + { "mapgen_update": "spawn_LIXA_5a", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "spawn_LIXA_5b", "target_var": { "global_val": "LIXA_unfold_B" } } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_LIXA_unfold_shift_6", + "effect": [ + { "math": [ "u_LIXA_unfold_level", "=", "6" ] }, + { "mapgen_update": "spawn_LIXA_6a", "target_var": { "global_val": "LIXA_unfold_A" } }, + { "mapgen_update": "spawn_LIXA_6b", "target_var": { "global_val": "LIXA_unfold_B" } } + ] + }, + { + "type": "effect_on_condition", + "id": "unfolded_death", + "eoc_type": "AVATAR_DEATH", + "condition": { "u_has_effect": "LIXA_unfolded_eff" }, + "effect": { + "u_message": "You don't die. Death is something that happens in the plane of time, and now that you are part of this place, you will never see that plane again. You will very quickly come to wish you had died instead.", + "snippet": true, + "type": "bad" + } + } +] diff --git a/data/json/field_type.json b/data/json/field_type.json index f21c236689002..0abab4410196b 100644 --- a/data/json/field_type.json +++ b/data/json/field_type.json @@ -1919,5 +1919,168 @@ "priority": 1, "display_field": true, "looks_like": "fd_shadow" + }, + { + "id": "fd_congealed_light", + "type": "field_type", + "mopsafe": false, + "intensity_levels": [ + { + "name": "smear of congealed light", + "sym": "5", + "color": "magenta", + "dangerous": true, + "effects": [ + { + "effect_id": "LIXA_illuminated", + "min_duration": "2 seconds", + "max_duration": "2 seconds", + "intensity": 1, + "immune_in_vehicle": true, + "is_environmental": false + } + ], + "light_emitted": 5 + }, + { + "name": "streak of congealed light", + "color": "pink", + "effects": [ + { + "effect_id": "LIXA_illuminated", + "min_duration": "4 seconds", + "max_duration": "4 seconds", + "intensity": 2, + "immune_in_vehicle": true, + "is_environmental": false + } + ], + "light_emitted": 15 + }, + { + "name": "pool of congealed light", + "color": "white", + "effects": [ + { + "effect_id": "LIXA_illuminated", + "min_duration": "6 seconds", + "max_duration": "6 seconds", + "intensity": 3, + "immune_in_vehicle": true, + "is_environmental": false + } + ], + "light_emitted": 30 + } + ], + "description_affix": "covered_in", + "is_splattering": true, + "priority": 2, + "half_life": "10 seconds", + "phase": "liquid", + "display_field": true, + "looks_like": "fd_bile" + }, + { + "id": "emit_congealed_light", + "type": "emit", + "field": "fd_congealed_light", + "intensity": 1, + "qty": 30, + "chance": 85 + }, + { + "type": "effect_type", + "id": "LIXA_illuminated", + "name": [ "illuminated" ], + "desc": [ "You're covered in congealed light!" ], + "apply_message": "The sticky globs of light cover you, and begin to burn!", + "rating": "bad", + "max_duration": "6 seconds", + "max_intensity": 3, + "int_dur_factor": "2 seconds", + "base_mods": { "hurt_min": [ 2 ], "hurt_chance": [ 1 ] }, + "scaling_mods": { "hurt_min": [ 2 ] }, + "show_in_info": true + }, + { + "type": "effect_type", + "id": "LIXA_decompressed", + "name": [ "In Decompressed Space" ], + "desc": [ "For an instant, every inch of this infinite space is itself infinite, slowing you drastically." ], + "apply_message": "Space unfolds and extends around you!", + "rating": "bad", + "miss_messages": [ [ "You cannot make any progress in all this vastness.", 4 ] ], + "max_intensity": 3, + "int_dur_factor": "2 seconds", + "base_mods": { "speed_mod": [ -33 ] }, + "scaling_mods": { "speed_mod": [ -33 ], "hit_mod": [ -1 ], "dodge_mod": [ -1 ] }, + "show_in_info": true + }, + { + "id": "fd_LIXA_decompression", + "type": "field_type", + "legacy_enum_id": 19, + "intensity_levels": [ + { + "name": "decompressed space", + "effects": [ + { + "effect_id": "LIXA_decompressed", + "min_duration": "2 seconds", + "max_duration": "2 seconds", + "intensity": 1, + "immune_in_vehicle": true, + "is_environmental": false + } + ], + "light_emitted": 5 + }, + { + "name": "decompressed space", + "effects": [ + { + "effect_id": "LIXA_decompressed", + "min_duration": "4 seconds", + "max_duration": "4 seconds", + "intensity": 2, + "immune_in_vehicle": true, + "is_environmental": false + } + ], + "light_emitted": 15 + }, + { + "name": "decompressed space", + "effects": [ + { + "effect_id": "LIXA_decompressed", + "min_duration": "6 seconds", + "max_duration": "6 seconds", + "intensity": 3, + "immune_in_vehicle": true, + "is_environmental": false + } + ], + "light_emitted": 30 + } + ], + "priority": 2, + "half_life": "5 seconds", + "phase": "plasma", + "display_field": true, + "looks_like": "fd_fog" + }, + { + "type": "effect_type", + "id": "LIXA_unfolded_eff", + "name": [ "Unfolded" ], + "desc": [ + "There is no longer an inside or outside of you. It is all one side; flat, infinite, and everything you have ever been. You wonder if you're having no trouble understanding it because your brain works better spread out like this." + ], + "max_intensity": 1, + "limb_score_mods": [ { "limb_score": "reaction", "modifier": 0.0 } ], + "flags": [ "EFFECT_LIMB_SCORE_MOD" ], + "show_in_info": true } ] diff --git a/data/json/flags.json b/data/json/flags.json index e02c5bc90ba33..45b40448f735c 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -2437,6 +2437,26 @@ "type": "json_flag", "//": "This character treats received sounds as half as loud for the purposes of determing hearing damage." }, + { + "id": "LIXA_SCIENCE_CARD", + "type": "json_flag", + "info": "This grants access to the LIXA facility." + }, + { + "id": "LIXA_SCIENCE_CARD_2", + "type": "json_flag", + "info": "This grants access to the experiment chamber of the LIXA facility." + }, + { + "id": "LIXA_SCIENCE_CARD_3", + "type": "json_flag", + "info": "This grants access to the experiment chamber and PPE lockup for the LIXA facility." + }, + { + "id": "LIXA_MILITARY_CARD", + "type": "json_flag", + "info": "This grants access to locked-down areas of the LIXA facility." + }, { "id": "BILE_AFFLICTED", "type": "json_flag", diff --git a/data/json/furniture_and_terrain/LIXA_furniture_and_terrain.json b/data/json/furniture_and_terrain/LIXA_furniture_and_terrain.json new file mode 100644 index 0000000000000..6f80da14f91bd --- /dev/null +++ b/data/json/furniture_and_terrain/LIXA_furniture_and_terrain.json @@ -0,0 +1,372 @@ +[ + { + "type": "terrain", + "id": "t_carpet_concrete_green_olight", + "name": "industrial green carpet", + "description": "Firm, low-pile, high-durability carpet in a green color, for laying down on bare concrete, with a still-functioning light attached to the ceiling above.", + "symbol": ".", + "color": "green", + "move_cost": 2, + "light_emitted": 120, + "looks_like": "t_carpet_green", + "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG", "EASY_DECONSTRUCT" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_carpet_concrete_green", + "items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ] + }, + "shoot": { "chance_to_hit": 50, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 2, 8 ] } + }, + { + "type": "terrain", + "id": "t_LIXA_tube", + "name": "laser chamber", + "looks_like": "t_sewage_pipe", + "description": "A large section of metal tubing, balanced on spring supports to prevent any vibration from affecting the laser inside.", + "symbol": "1", + "color": "light_gray", + "move_cost": 3, + "coverage": 50, + "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "THIN_OBSTACLE", "MINEABLE", "UNSTABLE", "INDOORS" ], + "bash": { + "str_min": 30, + "str_max": 210, + "sound": "metal screeching!", + "sound_fail": "clang!", + "ter_set": "t_thconc_floor", + "items": [ { "item": "scrap", "count": [ 6, 10 ] }, { "item": "spring", "count": [ 10, 20 ] } ] + }, + "shoot": { "chance_to_hit": 100, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 10, 15 ] } + }, + { + "type": "terrain", + "id": "t_LIXA_portal_pulse", + "name": "spacial compressor", + "description": "A dizzyingly complex series of devices and readouts is on the outside of this machine's casing. You imagine the inside would be incomprehensible.", + "symbol": "{", + "color": "light_gray", + "looks_like": "f_machinery_electronic", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "INDOORS", "PERMEABLE" ], + "bash": { + "str_min": 20, + "str_max": 150, + "explosive": 7, + "ter_set": "t_thconc_floor", + "sound_fail": "clang!", + "items": [ + { "item": "processor", "prob": 25 }, + { "item": "RAM", "count": [ 4, 6 ], "prob": 50 }, + { "item": "cable", "charges": [ 1, 2 ], "prob": 50 }, + { "item": "small_lcd_screen", "prob": 25 }, + { "item": "e_scrap", "count": [ 1, 4 ], "prob": 50 }, + { "item": "circuit", "count": [ 0, 2 ], "prob": 50 }, + { "item": "power_supply", "prob": 25 }, + { "item": "amplifier", "prob": 25 }, + { "item": "plastic_chunk", "count": [ 4, 10 ], "prob": 50 }, + { "item": "scrap", "count": [ 2, 6 ], "prob": 50 } + ] + }, + "shoot": { "chance_to_hit": 100, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 20, 30 ] } + }, + { + "type": "terrain", + "id": "t_LIXA_unfolded_portal_pulse", + "name": "fractal compressor", + "description": "This space is infinite, and has no beginning or end. But you can see both right here, in this churning mass of angles.", + "symbol": "{", + "color": "light_gray", + "light_emitted": 120, + "looks_like": "f_machinery_electronic", + "move_cost": 0, + "coverage": 50, + "flags": [ "TRANSPARENT", "NOITEM", "WALL", "INDOORS", "PERMEABLE" ], + "bash": { "str_min": 5, "str_max": 15, "explosive": 10, "ter_set": "t_LIXA_thconc_floor", "sound_fail": "clang!" }, + "shoot": { "chance_to_hit": 100, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 20, 30 ] } + }, + { + "type": "terrain", + "id": "t_LIXA_unfolded_tube", + "name": "unfolded laser chamber", + "looks_like": "t_sewage_pipe", + "description": "You can see the inside surface of this tube, and what it contains. Thick, slimy red light oozes within it.", + "symbol": "1", + "color": "light_gray", + "move_cost": 3, + "coverage": 50, + "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "INDOORS", "THIN_OBSTACLE", "UNSTABLE", "MINEABLE" ], + "bash": { + "str_min": 7, + "str_max": 17, + "sound": "geometry crackling!", + "sound_fail": "nothing.", + "ter_set": "t_LIXA_unfolded_tube_broken" + }, + "shoot": { "chance_to_hit": 100, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 10, 15 ] } + }, + { + "type": "terrain", + "id": "t_LIXA_unfolded_tube_broken", + "name": "leaking laser chamber", + "looks_like": "t_sewage_pipe", + "description": "Gobbets of congealed light drip from the gash in the side of this chamber like hot marmalade.", + "symbol": "1", + "color": "light_gray", + "light_emitted": 120, + "move_cost": 2, + "coverage": 50, + "flags": [ "TRANSPARENT", "MOUNTABLE", "PERMEABLE", "INDOORS", "THIN_OBSTACLE", "UNSTABLE", "MINEABLE" ], + "emissions": [ "emit_congealed_light" ] + }, + { + "type": "terrain", + "id": "t_LIXA_thconc_floor", + "name": "concrete floor", + "looks_like": "t_thconc_floor", + "description": "You can see every side of every crack in this worn concrete, all the way down. You can't look at it for too long.", + "symbol": ".", + "color": "cyan", + "move_cost": 2, + "roof": "t_concrete_roof", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "ROAD" ], + "connect_groups": "CONCRETE", + "connects_to": "CONCRETE" + }, + { + "type": "terrain", + "id": "t_LIXA_strconc_wall", + "name": "reinforced concrete wall", + "looks_like": "t_concrete_wall", + "description": "You can see every side of every crack in this worn concrete, all the way down. You can't look at it for too long.", + "symbol": "LINE_OXOX", + "color": "light_gray", + "move_cost": 0, + "coverage": 100, + "roof": "t_concrete_roof", + "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "BLOCK_WIND" ] + }, + { + "type": "terrain", + "id": "t_card_LIXA", + "name": "card reader", + "description": "A smartcard reader. It bears the letters LIXA in proud silver.", + "//": "Science", + "symbol": "6", + "color": "pink", + "looks_like": "t_card_science", + "move_cost": 0, + "roof": "t_metal_roof", + "flags": [ "NOITEM", "CONNECT_WITH_WALL", "INDOORS" ], + "examine_action": { + "type": "cardreader", + "flags": [ "LIXA_SCIENCE_CARD" ], + "consume_card": false, + "allow_hacking": true, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query_msg": "Swipe your ID card?", + "success_msg": "You insert your ID card.\nThe nearby doors unlock.", + "redundant_msg": "The nearby doors are already opened." + }, + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_LIXA_2", + "name": "rewired card reader", + "description": "A smartcard reader. The casing is damaged, and repaired with tape.", + "//": "Science", + "symbol": "6", + "color": "pink", + "looks_like": "t_card_science", + "move_cost": 0, + "roof": "t_metal_roof", + "flags": [ "NOITEM", "INDOORS", "CONNECT_WITH_WALL" ], + "examine_action": { + "type": "cardreader", + "flags": [ "LIXA_SCIENCE_CARD_2" ], + "consume_card": false, + "allow_hacking": false, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query_msg": "Swipe your ID card?", + "success_msg": "You insert your ID card.\nThe nearby doors unlock.", + "redundant_msg": "The nearby doors are already opened." + }, + "bash": { + "str_min": 14, + "str_max": 140, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_LIXA_3", + "name": "PPE lockup card reader", + "description": "A smartcard reader. The label above it reads 'SECURE PPE LOCKER'.", + "//": "Science", + "symbol": "6", + "color": "pink", + "looks_like": "t_card_science", + "move_cost": 0, + "roof": "t_metal_roof", + "flags": [ "NOITEM", "INDOORS", "CONNECT_WITH_WALL" ], + "examine_action": { + "type": "cardreader", + "flags": [ "LIXA_SCIENCE_CARD_3" ], + "consume_card": false, + "allow_hacking": false, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query_msg": "Swipe your ID card?", + "success_msg": "You insert your ID card.\nThe nearby doors unlock.", + "redundant_msg": "The nearby doors are already opened." + }, + "bash": { + "str_min": 14, + "str_max": 140, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_card_LIXA_mil", + "name": "card reader", + "description": "A smartcard reader. Ii is a forbidding black, with no symbols of any sort to identify it.", + "//": "Science", + "symbol": "6", + "color": "dark_gray", + "looks_like": "t_card_military", + "move_cost": 0, + "roof": "t_metal_roof", + "flags": [ "NOITEM", "INDOORS", "CONNECT_WITH_WALL" ], + "examine_action": { + "type": "cardreader", + "flags": [ "LIXA_MILITARY_CARD" ], + "consume_card": false, + "allow_hacking": false, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query_msg": "Swipe your ID card?", + "success_msg": "You insert your ID card.\nThe nearby doors unlock.", + "redundant_msg": "The nearby doors are already opened." + }, + "bash": { + "str_min": 18, + "str_max": 180, + "sound": "crunch!", + "sound_fail": "whack!", + "ter_set": "t_card_reader_broken", + "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] + } + }, + { + "type": "terrain", + "id": "t_LIXA_laser", + "name": "precision laser emitter", + "description": "A huge casing for a device that generates and focuses a laser of incredible wavelength purity and precision.", + "symbol": "$", + "color": "yellow", + "looks_like": "t_machinery_electronic", + "move_cost": 3, + "roof": "t_metal_roof", + "flags": [ "TRANSPARENT", "FLAMMABLE", "FLAT" ], + "deconstruct": { + "ter_set": "t_metal_floor", + "items": [ + { "item": "wire", "count": [ 1, 3 ] }, + { "item": "pipe", "count": [ 1, 2 ] }, + { "item": "steel_chunk", "count": [ 1, 4 ] }, + { "item": "processor", "count": 1 }, + { "item": "RAM", "count": [ 1, 4 ] }, + { "item": "cable", "charges": [ 1, 4 ] }, + { "item": "lens", "count": 8 }, + { "item": "e_scrap", "count": [ 5, 10 ] }, + { "item": "circuit", "count": [ 3, 8 ] }, + { "item": "power_supply", "count": [ 1, 3 ] }, + { "item": "amplifier", "count": [ 1, 3 ] }, + { "item": "plastic_chunk", "count": [ 2, 8 ] }, + { "item": "scrap", "count": [ 1, 5 ] } + ] + } + }, + { + "type": "furniture", + "id": "f_LIXA_unfold_barrier", + "name": "wall of flat space", + "looks_like": "fd_fatigue", + "description": "From a distance, this looks like where the chamber ends; a flat wall, with a very detailed painting of a tunnel behind it. But as you get closer, you can see how it ripples, like lazy water, and notice angles of the space beyond that a flat image could never give.", + "symbol": "@", + "color": "light_gray", + "move_cost_mod": 1, + "coverage": 0, + "required_str": -1, + "flags": [ "TRANSPARENT" ] + }, + { + "type": "furniture", + "id": "f_LIXA_machinery_electronic", + "name": "unfolded machinery", + "looks_like": "t_machinery_electronic", + "description": "This inscrutable device is filled with wires, boards, and connections. You can see every one of them, and it gives you a headache.", + "symbol": "$", + "color": "yellow", + "move_cost_mod": 8, + "coverage": 55, + "required_str": -1, + "flags": [ "TRANSPARENT", "CONTAINER", "SEALED", "FLAMMABLE", "PLACE_ITEM" ] + }, + { + "type": "furniture", + "id": "f_LIXA_electrical_conduit", + "name": "photonic conduit", + "looks_like": "f_electrical_conduit", + "description": "You can see through the metal casing of this tube, into the blazing light coursing through it.", + "symbol": "|", + "color": "light_gray", + "move_cost_mod": 1, + "required_str": -1, + "flags": [ "TRANSPARENT", "NOCOLLIDE" ] + }, + { + "type": "furniture", + "id": "f_lixa_whiteboard", + "name": "whiteboard", + "description": "A wide space of whiteboard, for writing on with washable markers. No one has washed it in a long time, though; it is covered in dense scrawls of equations and waveform diagarams.", + "symbol": "6", + "color": "blue", + "looks_like": "f_bulletin", + "move_cost_mod": -1, + "coverage": 75, + "required_str": -1, + "flags": [ "FLAMMABLE", "ORGANIC", "TRANSPARENT" ], + "max_volume": "120 ml", + "deconstruct": { "items": [ { "item": "2x4", "count": 4 }, { "item": "nail", "charges": [ 4, 8 ] } ] }, + "bash": { + "str_min": 3, + "str_max": 40, + "sound": "crunch!", + "sound_fail": "whump.", + "items": [ + { "item": "2x4", "count": [ 0, 3 ] }, + { "item": "nail", "charges": [ 4, 6 ] }, + { "item": "splinter", "count": [ 1, 4 ] } + ] + } + } +] diff --git a/data/json/items/fluff.json b/data/json/items/fluff.json index 80e1f688fd77e..689d3cbabe1be 100644 --- a/data/json/items/fluff.json +++ b/data/json/items/fluff.json @@ -1505,6 +1505,49 @@ "symbol": "_", "color": "brown" }, + { + "type": "GENERIC", + "id": "LIXA_lab_file", + "symbol": ",", + "color": "white", + "name": { "str": "LIXA on-site staff notice" }, + "snippet_category": "LIXA_lab_files", + "copy-from": "file", + "description": "A brief with the word LIXA on the official letterhead, for distribution to the onsite staff." + }, + { + "type": "GENERIC", + "id": "LIXA_generic_file", + "symbol": ",", + "color": "white", + "name": { "str": "LIXA data file" }, + "copy-from": "file", + "description": "A sheaf of papers containing a truly dizzying assortment of graphs, diagrams, and equations, on LIXA letterhead." + }, + { + "type": "GENERIC", + "id": "LIXA_mil_file", + "symbol": ",", + "color": "white", + "name": { "str": "LIXA military notice" }, + "snippet_category": "LIXA_mil_files", + "copy-from": "file", + "description": "A signed and serialed notice distributed to LIXA's onsite military police." + }, + { + "type": "GENERIC", + "id": "LIXA_lab_postit", + "symbol": ",", + "color": "white", + "name": { "str": "post-it note" }, + "snippet_category": "LIXA_lab_notes", + "description": "A cyan post-it note.", + "price": 0, + "price_postapoc": 0, + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "copy-from": "lab_postit_bio" + }, { "id": "glass_book", "type": "GENERIC", diff --git a/data/json/items/id_cards.json b/data/json/items/id_cards.json index d87726561fb05..b7e6e09a6d4d1 100644 --- a/data/json/items/id_cards.json +++ b/data/json/items/id_cards.json @@ -212,6 +212,111 @@ "description": "An employee badge for a system's supervisor. The reverse side describes the protocol for using it; this could grant access through white zone card readers.", "flags": [ "SCIENCE_CARD_MU_UNIVERSAL", "CREDIT_CARD_SHAPED" ] }, + { + "type": "GENERIC", + "id": "id_LIXA", + "symbol": ",", + "looks_like": "id_science", + "name": { "str": "LIXA ID badge" }, + "description": "An ID badge for the LIXA facility, with a photo of an awkwardly smiling scientist on the front. Instructions on the back explain that this will grant you access to the LIXA experiment floor.", + "flags": [ "LIXA_SCIENCE_CARD", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_LIXA_2", + "symbol": ",", + "looks_like": "id_science", + "name": { "str": "defaced LIXA ID badge" }, + "description": "An ID badge for the LIXA facility, with a photo of an awkwardly smiling scientist on the front. It is heavily scratched, and there is a line on the back in black marker.", + "flags": [ "LIXA_SCIENCE_CARD", "LIXA_SCIENCE_CARD_2", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_LIXA_najma", + "symbol": ",", + "looks_like": "id_science", + "name": { "str": "LIXA ID badge: Dr. Najma Saed", "str_pl": "LIXA ID badges: Dr. Najma Saed" }, + "description": "An ID badge for the LIXA facility. The photo is of a pleasantly smiling woman in a hijab.", + "flags": [ "LIXA_SCIENCE_CARD", "LIXA_SCIENCE_CARD_2", "LIXA_SCIENCE_CARD_3", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_LIXA_jason", + "symbol": ",", + "looks_like": "id_science", + "name": { "str": "LIXA ID badge: Dr. Jason Mitchell", "str_pl": "LIXA ID badges: Dr. Jason Mitchell" }, + "description": "An ID badge for the LIXA facility. The photo is of a confidently smiling young man.", + "flags": [ "LIXA_SCIENCE_CARD", "LIXA_SCIENCE_CARD_2", "LIXA_SCIENCE_CARD_3", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_LIXA_kai_mei", + "symbol": ",", + "looks_like": "id_science", + "name": { "str": "LIXA ID badge: Dr. Kai-Mei Luo", "str_pl": "LIXA ID badges: Dr. Kai-Mei Luo" }, + "description": "An ID badge for the LIXA facility. The photo is of an awkwardly smiling woman, who blinked during the picture.", + "flags": [ "LIXA_SCIENCE_CARD", "LIXA_SCIENCE_CARD_2", "LIXA_SCIENCE_CARD_3", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_LIXA_rich", + "symbol": ",", + "looks_like": "id_science", + "name": { "str": "LIXA ID badge: Dr. Richard Raimes", "str_pl": "LIXA ID badges: Dr. Richard Raimes" }, + "description": "An ID badge for the LIXA facility. The photo is of a gently smiling older man, with kind eyes.", + "flags": [ "LIXA_SCIENCE_CARD", "LIXA_SCIENCE_CARD_2", "LIXA_SCIENCE_CARD_3", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_LIXA_mil", + "symbol": ",", + "looks_like": "id_LIXA_mil", + "name": { "str": "LIXA military police badge" }, + "description": "An id card bearing the name, rank, and serial number of a soldier stationed at LIXA.", + "flags": [ "LIXA_MILITARY_CARD", "LIXA_SCIENCE_CARD", "PRESERVE_SPAWN_OMT", "CREDIT_CARD_SHAPED" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "3 g", + "volume": "5 ml", + "category": "keys", + "to_hit": -3 + }, { "type": "GENERIC", "id": "warehouse_rebooter", diff --git a/data/json/mapgen/LIXA_mapgen.json b/data/json/mapgen/LIXA_mapgen.json new file mode 100644 index 0000000000000..fafe35a6c7fc9 --- /dev/null +++ b/data/json/mapgen/LIXA_mapgen.json @@ -0,0 +1,1965 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "LIXA_surface_1a", "LIXA_surface_1b" ], [ "LIXA_surface_2a", "LIXA_surface_2b" ] ], + "object": { + "fill_ter": "t_pavement", + "rows": [ + "////////////////////////////////////////////////", + "/>D /", + "//6 /", + "/ /", + "/ /", + "/ ////////////////////// /", + "/ Z...Z /T/T/S|,/____/,|S/T/T/ /", + "/ ..... /+/+/.+,/____/,+./+/+/ /", + "/ ..... /..i..|,/____/,|..i../ /", + "/ ..... /||||||,//DD//,||||||/ /", + "/ Z...Z /$$$$$|,,,,,5,,|0BBB./ /", + "/ /,,j,,+,j,,,,j,|,,j,,w /", + "/ /$$.$k|,,,,,,,,|,,:,,w /", + "/ /||+|||,,,,h,,,|,h:h,/ /", + "/ /'#.#'|,,####,,|,h:h,/ /", + "/ wh,,,h|,j,,,,j,|,h:h,/ //////////", + "/ w',j,,+,,,,,,,,+,h:h,w /l.!!!!.l/", + "/ wh,,,h|,,,,,,,,|,,h,,w /l......l/", + "/ /'#,#'|,,,,,,,,|,,j,,/ /l.i..i.l/", + "/ //ww//////dd/////ww/// /......../", + "/ P /......../", + "/ ////DD////", + "/ /l.6...KK/", + "/ /l......./", + "/////d///// /l..i..KK/", + "/ e/ /l......./", + "/C /l.....KK/", + "/ /l......./", + "/C /l.....KK/", + "/ w...i..../", + "/ /......KK/", + "/? ____/ +......../", + "/? ____/ /////+////", + "/? ____/ /RRcc..../", + "/? ____/ w......../", + "/ D /...t...A/", + "/ D /..it...A/", + "/C D +...t...A/", + "/ D /......../", + "/ D w.H;;;.../", + "/ VV e/ /.H;;;H../", + "/////////// ////////+/", + "/ ///S.S.../", + "/ ///// /T+.....l/", + "/ //d//DDDDDD/e../ ///..i.../", + "/ / w{../ ///....../", + "/ / w{H.d /T+.l/L/L/", + "//////////////// //////////////////////" + ], + "palettes": [ "LIXA_ground_palette" ], + "items": { + "l": [ { "item": "army_personal_locker", "chance": 50, "repeat": [ 5, 10 ] }, { "item": "mil_base_coats", "chance": 10 } ], + "K": [ { "item": "army_bed", "chance": 30, "repeat": [ 1, 2 ] } ], + "!": [ + { "item": "military_standard_assault_rifles", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "military_ballistic_vest_light", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "military_patrol_food", "chance": 40, "repeat": [ 3, 6 ] }, + { "item": "military_patrol_food", "chance": 40, "repeat": [ 3, 6 ] } + ], + "R": [ + { "item": "military_patrol_food", "chance": 40, "repeat": [ 5, 7 ] }, + { "item": "foodintincan", "chance": 40, "repeat": [ 2, 4 ] }, + { "item": "softdrinks_canned", "chance": 40, "repeat": [ 3, 6 ] }, + { "item": "salty_snacks", "chance": 40, "repeat": [ 3, 6 ] }, + { "item": "alcohol_bottled_canned", "chance": 40, "repeat": [ 3, 6 ] } + ], + "?": [ + { "item": "tools_workshop", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "supplies_electronics", "chance": 40, "repeat": [ 1, 2 ] } + ], + "C": [ + { "item": "tools_workshop", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "supplies_electronics", "chance": 40, "repeat": [ 1, 2 ] }, + { "item": "military_patrol_food", "chance": 40, "repeat": [ 5, 7 ] }, + { "item": "foodintincan", "chance": 40, "repeat": [ 2, 4 ] } + ] + }, + "item": { + "$": [ + { "item": "LIXA_generic_file", "chance": 3, "repeat": [ 4, 8 ] }, + { "item": "LIXA_lab_file", "chance": 5 }, + { "item": "id_LIXA", "chance": 6 } + ], + "k": [ + { "item": "LIXA_generic_file", "chance": 3, "repeat": [ 4, 8 ] }, + { "item": "LIXA_lab_file", "chance": 5 }, + { "item": "id_LIXA" } + ], + "!": [ { "item": "id_LIXA_mil", "chance": 10 } ], + "l": [ { "item": "LIXA_mil_file", "chance": 8 } ] + }, + "computers": { + "0": { + "name": "Presentation Computer", + "eocs": [ "EOC_LIXA_presentation_computer" ], + "chat_topics": [ "LIXA_presentation_computer_main" ] + } + }, + "place_item": [ { "item": "microwave", "x": 41, "y": 33, "chance": 1 }, { "item": "id_LIXA", "x": 14, "y": 14, "chance": 1 } ], + "place_monsters": [ + { "monster": "GROUP_MIL_STRONG", "x": [ 1, 13 ], "y": [ 14, 23 ], "density": 0.1 }, + { "monster": "GROUP_MIL_STRONG", "x": [ 35, 45 ], "y": [ 4, 15 ], "density": 0.1 }, + { "monster": "GROUP_MIL_STRONG", "x": [ 25, 37 ], "y": [ 25, 42 ], "density": 0.1 }, + { "monster": "GROUP_MIL_STRONG", "x": [ 40, 46 ], "y": [ 25, 32 ], "density": 0.1 }, + { "monster": "GROUP_MIL_STRONG", "x": [ 40, 46 ], "y": [ 35, 42 ], "density": 0.1 }, + { "monster": "GROUP_MIL_STRONG", "x": [ 3, 10 ], "y": [ 28, 41 ], "density": 0.1 }, + { "monster": "GROUP_CIVILIAN_NO_FERAL", "x": [ 14, 23 ], "y": [ 13, 21 ], "density": 0.1 } + ], + "signs": { "P": { "signage": "LIXA" } }, + "place_vehicles": [ { "vehicle": "military_cargo_truck", "x": 14, "y": 36, "chance": 100, "rotation": 270 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "LIXA_entry_1", "LIXA_entry_2" ] ], + "object": { + "fill_ter": "t_region_groundcover", + "rows": [ + " ...... ", + " ...... ", + " ...... ", + " ////.................... ", + " /ll/.................... ", + " /,,/.................... ", + " /,,w.................... ", + " /,hw.................... ", + " /,,/.................... ", + " /,,w.................... ", + " /,hw.................... ", + " /,,/.................... ", + " /d//.................... ", + " ........................ ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... " + ], + "palettes": [ "LIXA_ground_palette" ], + "terrain": { + ".": "t_pavement", + "y": "t_pavement_y", + ",": "t_thconc_floor", + "h": "t_thconc_floor", + "l": "t_thconc_floor", + "/": "t_strconc_wall", + "w": "t_window_bars", + "d": [ "t_door_metal_c", "t_door_metal_o" ] + }, + "items": { + "l": [ { "item": "army_personal_locker", "chance": 50, "repeat": [ 5, 10 ] }, { "item": "mil_base_coats", "chance": 10 } ] + } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "LIXA_road_guard", + "object": { + "fill_ter": "t_region_groundcover", + "rows": [ + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " /////d///yy........./ ", + " /T/ll,,e/DDDDDDDDDDD/ ", + " /,/,,,,,/yy........./ ", + " /,d,,,,hwyy.........P ", + " /S/,,,,,wyy......... ", + " //////ww/yy......... ", + " ....P....yy......... ", + " .........yy......... ", + " .........yy......... " + ], + "palettes": [ "LIXA_ground_palette" ], + "terrain": { + ".": "t_pavement", + "y": "t_pavement_y", + ",": "t_thconc_floor", + "h": "t_thconc_floor", + "l": "t_thconc_floor", + "s": "t_thconc_floor", + "T": "t_thconc_floor", + "/": "t_strconc_wall", + "w": "t_window_bars", + "e": "t_gates_mech_control", + "D": "t_door_metal_locked", + "d": [ "t_door_metal_c", "t_door_metal_o" ] + }, + "items": { + "l": [ { "item": "army_personal_locker", "chance": 50, "repeat": [ 5, 10 ] }, { "item": "mil_base_coats", "chance": 10 } ] + }, + "signs": { "P": { "signage": "NO TRESPASSING: By order of the United States Department of Energy" } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "LIXA_road", + "object": { + "fill_ter": "t_region_groundcover", + "rows": [ + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... ", + " .........yy......... " + ], + "terrain": { ".": "t_pavement", "y": "t_pavement_y" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "LIXA_stairshaft_1a", "LIXA_stairshaft_1b" ], [ "LIXA_stairshaft_1c", "LIXA_stairshaft_1d" ] ], + "object": { + "fill_ter": "t_soil", + "rows": [ + "//// ", + "/<>/ ", + "//// ", + " ", + " ", + " ////// ", + " /____/ ", + " /____/ ", + " /____/ ", + " ////// ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ////// ", + " /____/ ", + " /____/ ", + " /____/ ", + " /____/ ", + " ////// ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { "<": "t_stairs_up", ">": "t_stairs_down", "/": "t_strconc_wall", "_": "t_open_air" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "LIXA_stairshaft_2a", "LIXA_stairshaft_2b" ], [ "LIXA_stairshaft_2c", "LIXA_stairshaft_2d" ] ], + "object": { + "fill_ter": "t_rock", + "rows": [ + "//// ", + "/<>/ ", + "//// ", + " ", + " ", + " ////// ", + " /____/ ", + " /____/ ", + " /____/ ", + " ////// ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ////// ", + " /____/ ", + " /____/ ", + " /____/ ", + " /____/ ", + " ////// ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " " + ], + "terrain": { "<": "t_stairs_up", ">": "t_stairs_down", "/": "t_strconc_wall", "_": "t_open_air" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "LIXA_roof_1a", "LIXA_roof_1b" ], [ "LIXA_roof_2a", "LIXA_roof_2b" ] ], + "object": { + "rows": [ + "ffffffffffffffffffffffffffffffffffffffffffffffff", + "f.. f", + "f.. f", + "f f", + "f f", + "f ...................... f", + "f Z Z ...................... f", + "f ...................... f", + "f ...................... f", + "f ...................... f", + "f Z Z ...................... f", + "f ...................... f", + "f ...................... f", + "f ...................... f", + "f ...................... f", + "f ...................... .........f", + "f ...................... .........f", + "f ...................... .........f", + "f ...................... .........f", + "f ...................... .........f", + "f .........f", + "f .........f", + "f .........f", + "f .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f.......... .........f", + "f ..... .........f", + "f f ..... .........f", + "f f ..... .........f", + "f f ..... .........f", + "f f ..... .........f", + "ffffffffffffffffffff ffffffffffffffffffffff" + ], + "terrain": { " ": "t_open_air", "f": "t_fence_barbed", ".": "t_flat_roof", "Z": "t_radio_tower" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ [ "LIXA_workfloor_1a", "LIXA_workfloor_1b" ], [ "LIXA_workfloor_2a", "LIXA_workfloor_2b" ] ], + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "////////////////////// ", + "/-----------//", + " /....u/*****D...........;__//____>-----------//", + " /V...u/7DD///////////////////________________//", + " /V.i......../ //________________//", + " /V........../ //________________//", + " /...//..e/../ //________________//", + " /////@@@@//// //________________//", + " /@@@@// //________________//", + " /@@@@/ //________________//", + " /@@@X/ //________________//", + " ////// //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//", + " //________________//" + ], + "palettes": [ "LIXA_workfloor_palette" ], + "place_nested": [ + { "chunks": [ [ "null", 30 ], [ "LIXA_sad_graffiti", 70 ] ], "x": 21, "y": 7 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_sad_graffiti", 50 ] ], "x": 13, "y": 18 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_sad_graffiti", 50 ] ], "x": 14, "y": 14 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_sad_graffiti", 50 ] ], "x": 21, "y": 14 }, + { "chunks": [ [ "null", 20 ], [ "LIXA_sad_graffiti", 80 ] ], "x": 14, "y": 27 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_sad_graffiti", 50 ] ], "x": 14, "y": 22 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_sad_graffiti", 50 ] ], "x": 26, "y": 21 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_sad_graffiti", 50 ] ], "x": 1, "y": 21 }, + { "chunks": [ [ "null", 30 ], [ "LIXA_bored_graffiti", 70 ] ], "x": 26, "y": 11 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 22, "y": 9 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 19, "y": 14 }, + { "chunks": [ [ "null", 30 ], [ "LIXA_bored_graffiti", 70 ] ], "x": 21, "y": 18 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 11, "y": 23 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 26, "y": 10 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 13, "y": 14 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 17, "y": 22 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 19, "y": 22 }, + { "chunks": [ [ "null", 50 ], [ "LIXA_bored_graffiti", 50 ] ], "x": 21, "y": 19 }, + { "chunks": [ [ "null", 25 ], [ "LIXA_raving_graffiti", 75 ] ], "x": 29, "y": 21 }, + { "chunks": [ [ "null", 25 ], [ "LIXA_raving_graffiti", 75 ] ], "x": 32, "y": 21 }, + { "chunks": [ [ "null", 25 ], [ "LIXA_raving_graffiti", 75 ] ], "x": 34, "y": 16 }, + { "chunks": [ [ "null", 25 ], [ "LIXA_raving_graffiti", 75 ] ], "x": 30, "y": 21 }, + { "chunks": [ [ "null", 25 ], [ "LIXA_raving_graffiti", 75 ] ], "x": 45, "y": 19 }, + { "chunks": [ [ "null", 25 ], [ "LIXA_raving_graffiti", 75 ] ], "x": 46, "y": 24 }, + { "chunks": [ [ "LIXA_goodbye_graffiti", 100 ] ], "x": 34, "y": 21 } + ], + "items": { + "B": [ { "item": "lab_bookshelves", "chance": 80 } ], + "K": [ { "item": "bed", "chance": 40 } ], + "F": [ { "item": "SUS_fridge_bachelor", "chance": 70 } ], + "f": [ { "item": "SUS_fridge_bachelor", "chance": 70 } ], + "#": [ { "item": "SUS_office_desk", "chance": 60 } ], + "u": [ + { "item": "electronics", "chance": 70, "repeat": [ 1, 2 ] }, + { "item": "tools_robotics", "chance": 30, "repeat": [ 1, 2 ] } + ], + "V": [ { "item": "tools_robotics", "chance": 30 } ], + "l": [ { "item": "decontamination_room", "chance": 60 } ], + "c": [ + { "item": "SUS_dishes", "chance": 100 }, + { "item": "SUS_silverware", "chance": 100 }, + { "item": "SUS_cookware", "chance": 100 } + ], + "E": [ { "item": "entertainment_center_loot", "chance": 100 } ] + }, + "item": { + "f": [ { "item": "rootbeer", "chance": 1, "amount": [ 8, 15 ] } ], + "$": [ + { "item": "LIXA_generic_file", "chance": 80, "repeat": [ 4, 8 ] }, + { "item": "LIXA_lab_file", "chance": 50, "repeat": 2 } + ], + "#": [ + { "item": "LIXA_lab_postit", "chance": 3, "repeat": 1 }, + { "item": "LIXA_lab_file", "chance": 7, "repeat": 2 }, + { "item": "software_math", "chance": 3, "repeat": 1 }, + { "item": "software_lab_data", "chance": 2, "repeat": 4 }, + { "item": "software_electronics_reference", "chance": 4, "repeat": 2 } + ], + "q": [ { "item": "adderall", "amount": [ 2, 5 ] } ], + "E": [ { "item": "television", "amount": 1 } ], + "R": [ { "item": "rm13_armor", "amount": 1 }, { "item": "id_LIXA_mil", "amount": 1 } ], + "O": [ { "item": "phase_immersion_suit", "amount": 1 } ] + }, + "place_item": [ + { "item": "heroin", "x": 11, "y": 11, "amount": [ 3, 7 ] }, + { "item": "syringe", "x": 11, "y": 11, "amount": [ 1, 3 ] }, + { "item": "headscarf", "x": 8, "y": 9, "amount": 3 }, + { "item": "teddy_bear", "x": 16, "y": 1, "amount": 1 }, + { "item": "holybook_quran", "x": 11, "y": 9, "amount": 1 }, + { "item": "holybook_hadith", "x": 12, "y": 7, "amount": 1 }, + { "item": "pride_flag", "variant": "transgender_pride_flag", "x": 18, "y": 1, "amount": 1 }, + { "item": "long_knit_scarf", "x": 18, "y": 1, "amount": 1 }, + { "item": "knit_scarf", "x": 18, "y": 1, "amount": 2 }, + { "item": "laptop", "x": 18, "y": 5, "amount": 1 }, + { "item": "software_useless", "x": 18, "y": 5, "amount": [ 4, 7 ] }, + { "item": "knitting_needles", "x": 18, "y": 5, "amount": [ 4, 8 ] }, + { "item": "yarn", "x": 18, "y": 5, "amount": [ 20, 40 ] }, + { "item": "laptop", "x": 14, "y": 1, "amount": 1 }, + { "item": "software_useless", "x": 14, "y": 1, "amount": [ 4, 7 ] }, + { "item": "paint_brush", "x": 14, "y": 1, "amount": 4 }, + { "item": "pen", "x": 14, "y": 1, "amount": 2 }, + { "item": "permanent_marker", "x": 14, "y": 1, "amount": 6 }, + { "item": "paper", "x": 14, "y": 1, "amount": [ 20, 30 ] }, + { "item": "id_LIXA_2", "x": 10, "y": 15, "amount": 1 }, + { "item": "id_LIXA_2", "x": 20, "y": 1, "amount": 1 }, + { "item": "dnd", "x": 17, "y": 10, "amount": 2 }, + { "item": "dnd_handbook", "x": 17, "y": 10, "amount": 1 }, + { "item": "character_sheet", "x": 17, "y": 10, "amount": 4 }, + { "item": "RPG_die", "x": 17, "y": 10, "amount": [ 6, 12 ] } + ], + "place_items": [ + { "item": "SUS_book_nonf_hard", "x": 8, "y": 12, "repeat": [ 1, 2 ] }, + { "item": "SUS_book_nonf_hard", "x": 12, "y": 7 }, + { "item": "SUS_book_fict_soft_scifi", "x": 14, "y": 5 }, + { "item": "SUS_fiction_bookcase", "x": 20, "y": 5 }, + { "item": "SUS_dresser_mens", "x": 9, "y": 13 }, + { "item": "SUS_dresser_womens", "x": 9, "y": 9 }, + { "item": "jar_weed", "x": 19, "y": 1, "repeat": 1 }, + { "item": "stoner", "x": 19, "y": 5, "repeat": [ 1, 3 ] }, + { "item": "SUS_dresser_mens", "x": 19, "y": 1 }, + { "item": "stoner", "x": 15, "y": 1, "chance": 1, "repeat": [ 2, 4 ] }, + { "item": "SUS_dresser_womens", "x": 17, "y": 5 } + ], + "traps": { "Q": "tr_rollmat" }, + "computers": { + "!": { + "name": "Personal Computer", + "access_denied": "Credentials Unrecognized.", + "security": 2, + "eocs": [ "EOC_LIXA_personal_computer" ], + "chat_topics": [ "LIXA_personal_computer_main" ] + }, + "0": { + "name": "Experiment Control Computer", + "eocs": [ "EOC_LIXA_experiment_computer" ], + "chat_topics": [ "LIXA_experiment_computer_main" ] + } + }, + "place_monsters": [ + { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 2, 6 ], "y": [ 19, 23 ], "density": 0.1 }, + { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 2, 6 ], "y": [ 25, 33 ], "density": 0.1 }, + { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 15, 21 ], "y": [ 18, 21 ], "density": 0.1 } + ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "LIXA_device_1", + "object": { + "fill_ter": "t_rock", + "rows": [ + "////////////////////////", + "/;........": "t_stairs_down" + }, + "furniture": { + "H": "f_chair_folding", + "{": "f_desk", + "L": "f_shower", + "S": "f_sink", + "l": "f_locker", + "k": "f_filing_cabinet", + "K": "f_bunkbed", + "R": "f_fridge", + ";": "f_table", + "A": "f_sofa", + "t": "f_coffee_table", + "V": "f_workbench", + "?": "f_warehouse_shelf", + "!": "f_warehouse_shelf", + "C": [ "f_crate_c", "f_crate_o" ], + "#": "f_desk", + "h": "f_chair_black", + ":": "f_table", + "B": "f_lixa_whiteboard", + "$": "f_filing_cabinet", + "'": "f_console_broken", + "c": "f_counter" + }, + "toilets": { "T": { } } + }, + { + "type": "palette", + "id": "LIXA_workfloor_palette", + "terrain": { + " ": "t_rock", + "/": "t_strconc_wall", + "i": "t_thconc_floor_olight", + ".": "t_thconc_floor", + "H": "t_thconc_floor", + "V": "t_thconc_floor", + "u": "t_thconc_floor", + "L": "t_thconc_floor", + "S": "t_thconc_floor", + "l": "t_thconc_floor", + "0": "t_thconc_floor", + "@": "t_metal_floor_no_roof", + "M": "t_thconc_floor", + "w": "t_thconc_floor", + "j": "t_carpet_concrete_green_olight", + ",": "t_carpet_concrete_green", + "P": "t_carpet_concrete_green", + "B": "t_carpet_concrete_green", + "K": "t_carpet_concrete_green", + "#": "t_carpet_concrete_green", + "h": "t_carpet_concrete_green", + "a": "t_carpet_concrete_green", + "A": "t_carpet_concrete_green", + "c": "t_carpet_concrete_green", + "F": "t_carpet_concrete_green", + "T": "t_carpet_concrete_green", + "$": "t_carpet_concrete_green", + "!": "t_carpet_concrete_green", + "f": "t_carpet_concrete_green", + "o": "t_carpet_concrete_green", + "4": "t_carpet_concrete_green", + "E": "t_carpet_concrete_green", + "t": "t_carpet_concrete_green", + "_": "t_open_air_rooved", + "-": "t_metal_floor", + "*": "t_linoleum_white", + ">": "t_stairs_down", + "<": "t_stairs_up", + ";": "t_ramp_down_low", + "d": "t_door_metal_c", + "D": "t_door_metal_locked", + "G": "t_door_metal_locked", + "+": "t_door_c", + "e": "t_card_LIXA", + "6": "t_card_LIXA_mil", + "7": "t_card_LIXA_2", + "9": "t_card_LIXA_3", + "8": "t_metal_floor_no_roof", + "X": "t_elevator_control_off" + }, + "furniture": { + "K": "f_bed", + "#": "f_desk", + "h": "f_chair_black", + "H": "f_chair_black", + "a": "f_armchair", + "A": "f_sofa", + "B": "f_bookcase", + "q": "f_locker", + "c": "f_cupboard", + "o": "f_oven", + "E": "f_entertainment_center", + "T": "f_table", + "t": "f_table", + "4": "f_dishwasher", + "$": "f_filing_cabinet", + "M": "f_machinery_heavy", + "l": "f_locker", + "u": "f_utility_shelf", + "V": "f_workbench", + "w": "f_machinery_electronic", + "0": "f_console", + "!": "f_console", + "P": "f_punching_bag", + "L": "f_shower", + "S": "f_sink", + "F": "f_fridge", + "C": "f_control_station", + "f": "f_fridge", + "R": "f_locker", + "O": "f_locker", + "b": "f_bench" + }, + "toilets": { "T": { } } + }, + { + "type": "palette", + "id": "LIXA_device_palette", + "terrain": { + "/": "t_strconc_wall", + "i": "t_thconc_floor_olight", + ".": "t_thconc_floor", + "Q": "t_thconc_floor", + "L": "t_thconc_floor", + "w": "t_thconc_floor", + "-": "t_metal_floor", + "C": "t_metal_floor", + "G": "t_LIXA_laser", + ";": "t_ramp_up_high", + "<": "t_stairs_up", + "T": "t_LIXA_tube", + "W": "t_potential_trans", + "E": "t_LIXA_portal_pulse" + }, + "furniture": { "Q": "f_capacitor", "L": "f_machinery_electronic", "C": "f_control_station", "w": "f_electrical_conduit" } + }, + { + "type": "palette", + "id": "LIXA_unfolded_palette", + "terrain": { + " ": "t_rock", + "/": "t_LIXA_strconc_wall", + ".": "t_LIXA_thconc_floor", + "Q": "t_LIXA_thconc_floor", + "L": "t_LIXA_thconc_floor", + "w": "t_LIXA_thconc_floor", + "-": "t_LIXA_thconc_floor", + "C": "t_LIXA_thconc_floor", + "G": "t_LIXA_thconc_floor", + "W": "t_LIXA_thconc_floor", + "T": "t_LIXA_unfolded_tube", + "2": "t_LIXA_unfolded_tube", + "3": "t_LIXA_unfolded_tube", + "E": "t_LIXA_unfolded_portal_pulse" + }, + "furniture": { "Q": "f_LIXA_machinery_electronic", "W": "f_LIXA_machinery_electronic", "w": "f_LIXA_electrical_conduit" } + } +] diff --git a/data/json/monsters/LIXA_monsters.json b/data/json/monsters/LIXA_monsters.json new file mode 100644 index 0000000000000..630040169c365 --- /dev/null +++ b/data/json/monsters/LIXA_monsters.json @@ -0,0 +1,371 @@ +[ + { + "id": "LIXA_spit_light", + "type": "GUN", + "copy-from": "fake_item", + "name": { "str": "photonic gun" }, + "description": "Horks up a glob of congealed light.", + "flags": [ "NEVER_JAMS", "NO_TURRET" ], + "ammo_effects": [ "BLINDS_EYES", "NEVER_MISFIRES", "NO_DAMAGE_SCALING", "NO_PENETRATE_OBSTACLES" ], + "skill": "rifle", + "durability": 10, + "range": 100, + "dispersion": 1000, + "ranged_damage": { "damage_type": "pure", "amount": 4 } + }, + { + "type": "SPELL", + "id": "LIXA_spread_light", + "name": { "str": "Spread Light" }, + "description": "Splashes congealed light along the ground in a cone.", + "valid_targets": [ "hostile", "ground" ], + "max_level": 1, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS", "NO_EXPLOSION_SFX" ], + "min_aoe": 45, + "max_aoe": 45, + "base_casting_time": 75, + "min_range": 4, + "max_range": 4, + "effect": "attack", + "shape": "cone", + "field_id": "fd_congealed_light", + "field_chance": 2, + "min_field_intensity": 2, + "max_field_intensity": 2 + }, + { + "id": "LIXA_photonic_death", + "type": "SPELL", + "name": { "str": "Photonic Death" }, + "description": "Puddle o' light.", + "valid_targets": [ "ground", "self", "hostile" ], + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ], + "shape": "blast", + "effect": "attack", + "effect_str": "LIXA_illuminated", + "field_id": "fd_congealed_light", + "min_aoe": 1, + "max_aoe": 2, + "aoe_increment": 1, + "min_field_intensity": 3, + "max_field_intensity": 3, + "field_chance": 1 + }, + { + "type": "SPELL", + "id": "LIXA_spawn_copy", + "name": { "str": "Summon Eigenspectre Copy" }, + "description": "Ripping off the hounds of tindalos!", + "flags": [ "HOSTILE_SUMMON", "RANDOM_DAMAGE", "PERMANENT", "NO_EXPLOSION_SFX" ], + "valid_targets": [ "ground", "self" ], + "min_damage": 1, + "max_damage": 1, + "min_aoe": 3, + "max_aoe": 3, + "base_casting_time": 100, + "shape": "blast", + "effect": "summon", + "effect_str": "LIXA_eigenspectre_3_echo" + }, + { + "id": "LIXA_vector_volley", + "type": "GUN", + "copy-from": "fake_item", + "name": { "str": "coordinate rotation volley" }, + "description": "Fake gun that fires, uh. Coordinate transform matrices?", + "flags": [ "NEVER_JAMS", "NO_TURRET" ], + "modes": [ [ "DEFAULT", "auto", 3 ] ], + "ammo_effects": [ "BLINDS_EYES", "NO_PENETRATE_OBSTACLES", "NEVER_MISFIRES", "NO_DAMAGE_SCALING" ], + "skill": "rifle", + "durability": 10, + "range": 100, + "dispersion": 5000, + "ranged_damage": [ { "damage_type": "pure", "amount": 8 } ] + }, + { + "type": "SPELL", + "id": "LIXA_reshuffle_cone", + "name": { "str": "an arc of coordinate reassignment" }, + "description": "Spawns LIXA reshuffle.", + "effect": "attack", + "shape": "cone", + "valid_targets": [ "hostile", "ground" ], + "max_level": 5, + "min_damage": 0, + "max_damage": 0, + "min_aoe": 10, + "max_aoe": 15, + "aoe_increment": 1, + "min_range": 8, + "max_range": 16, + "range_increment": 2, + "base_casting_time": 50, + "field_id": "fd_LIXA_decompression", + "min_field_intensity": 1, + "max_field_intensity": 3, + "field_intensity_increment": 1, + "field_intensity_variance": 1, + "field_chance": 4, + "sound_type": "combat", + "sound_id": "fire_gun", + "sound_variant": "bio_lightning", + "sound_description": "snapping geometry" + }, + { + "type": "SPELL", + "id": "mon_LIXA_vector_death", + "name": { "str": "Unfold Collapse" }, + "description": "Ends the fight.", + "valid_targets": [ "self", "hostile", "ally" ], + "max_level": 1, + "flags": [ "SILENT", "NO_HANDS", "NO_LEGS" ], + "base_casting_time": 1, + "min_range": 30, + "max_range": 30, + "min_aoe": 60, + "max_aoe": 60, + "shape": "blast", + "effect": "effect_on_condition", + "effect_str": "EOC_LIXA_unfold_return" + }, + { + "id": "LIXA_eigenspectre_1", + "type": "MONSTER", + "name": { "str": "eigenspectre" }, + "description": "This is the opposite of a human silhouette; every facet of every detail on display, with no shape to make sense of them. You can see both sides of an ID badge on a white labcoat. You can see every muscle and nerve in eyes blown wide with horror.", + "default_faction": "nether_player_hate", + "species": [ "NETHER_EMANATION" ], + "bodytype": "human", + "looks_like": "mon_memory", + "volume": "62500 ml", + "weight": "2 kg", + "hp": 120, + "speed": 130, + "material": [ "flesh" ], + "symbol": "E", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "pure", "amount": 0, "armor_penetration": 1 } ], + "dodge": 7, + "vision_day": 50, + "vision_night": 3, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s becomes part of the endless chamber." }, + "flags": [ "SEES", "HEARS", "WARM", "NO_BREATHE", "PUSH_MON", "HIT_AND_RUN", "HARDTOSHOOT" ], + "armor": { "electric": 1 } + }, + { + "id": "LIXA_eigenspectre_2", + "type": "MONSTER", + "name": { "str": "photonic eigenspectre" }, + "description": "The endless details of this figure are mercifully obscured by the viscous light coursing 'through' it. It cannot contain anything, but the smears of light follow the shapes of stomach and intestines, and are splattered across what must be the lips and chin.", + "default_faction": "nether_player_hate", + "species": [ "NETHER_EMANATION" ], + "bodytype": "human", + "looks_like": "mon_memory", + "volume": "62500 ml", + "weight": "2 kg", + "hp": 130, + "speed": 70, + "material": [ "flesh" ], + "symbol": "E", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "pure", "amount": 0, "armor_penetration": 1 } ], + "special_attacks": [ + { + "type": "spell", + "spell_data": { "id": "LIXA_spread_light", "min_level": 1 }, + "cooldown": 28, + "monster_message": "The %s emits a torrent of congealed light!" + }, + { + "type": "gun", + "cooldown": 5, + "move_cost": 50, + "gun_type": "LIXA_spit_light", + "fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ], + "fake_dex": 8, + "fake_per": 8, + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "The %s flings a gobbet of congealed light!", + "ranges": [ [ 2, 10, "DEFAULT" ] ] + } + ], + "dodge": 4, + "vision_day": 50, + "vision_night": 3, + "harvest": "exempt", + "death_function": { + "corpse_type": "NO_CORPSE", + "message": "The %s becomes part of the endless chamber, and congealed light splashes away from the spot it occupied.", + "effect": { "id": "LIXA_photonic_death", "hit_self": true } + }, + "flags": [ "SEES", "HEARS", "WARM", "RANGED_ATTACKER", "NO_BREATHE", "PUSH_MON", "HARDTOSHOOT" ], + "armor": { "electric": 1 } + }, + { + "id": "LIXA_eigenspectre_3", + "type": "MONSTER", + "name": { "str": "shifting eigenspectre" }, + "description": "This distorted figure is a kaliadescope of borders. Every part of a human, flattened into place, warps wildly from second to second. The word your mind conjures to describe it is 'rotating', though you're not sure why.", + "default_faction": "nether_player_hate", + "species": [ "NETHER_EMANATION" ], + "bodytype": "human", + "looks_like": "mon_memory", + "volume": "62500 ml", + "weight": "2 kg", + "hp": 120, + "speed": 150, + "material": [ "flesh" ], + "symbol": "E", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 5, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "pure", "amount": 0, "armor_penetration": 1 } ], + "special_attacks": [ + { + "type": "spell", + "spell_data": { "id": "LIXA_spawn_copy", "hit_self": true }, + "cooldown": 20, + "monster_message": "The %s is in two places at once, and leaves something of itself behind." + } + ], + "dodge": 7, + "vision_day": 50, + "vision_night": 3, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s becomes part of the endless chamber." }, + "flags": [ "SEES", "HEARS", "WARM", "NO_BREATHE", "PUSH_MON", "HIT_AND_RUN", "HARDTOSHOOT" ], + "armor": { "electric": 1 } + }, + { + "id": "LIXA_eigenspectre_3_echo", + "type": "MONSTER", + "name": { "str": "shifting eigenspectre" }, + "description": "This distorted figure is a kaliadescope of borders. Every part of a human, flattened into place, warps wildly from second to second. The word your mind conjures to describe it is 'rotating', though you're not sure why.", + "default_faction": "nether_player_hate", + "species": [ "NETHER_EMANATION" ], + "bodytype": "human", + "looks_like": "mon_memory", + "volume": "62500 ml", + "weight": "2 kg", + "hp": 40, + "speed": 150, + "material": [ "flesh" ], + "symbol": "E", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 3, + "melee_damage": [ { "damage_type": "pure", "amount": 0, "armor_penetration": 1 } ], + "special_attacks": [ + { + "type": "spell", + "spell_data": { "id": "LIXA_spawn_copy", "hit_self": true }, + "cooldown": 30, + "monster_message": "The %s is in two places at once, and leaves something of itself behind." + }, + [ "DISAPPEAR", 5 ] + ], + "dodge": 7, + "vision_day": 50, + "vision_night": 3, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s becomes part of the endless chamber." }, + "flags": [ "SEES", "HEARS", "WARM", "NO_BREATHE", "PUSH_MON", "HIT_AND_RUN", "HARDTOSHOOT" ], + "armor": { "electric": 1 } + }, + { + "id": "LIXA_eigenspectre_4", + "type": "MONSTER", + "name": { "str": "titanic eigenspectre" }, + "description": "There is somehow more of this figure than the others. Every side of every surface is on display, but each of those seems like the thin edge of a larger shape. There is an eternity here, where a scientist used to be.", + "default_faction": "nether_player_hate", + "species": [ "NETHER_EMANATION" ], + "bodytype": "human", + "looks_like": "mon_memory", + "volume": "72500 ml", + "weight": "2 kg", + "hp": 200, + "speed": 90, + "material": [ "flesh" ], + "symbol": "E", + "color": "light_gray", + "aggression": 100, + "morale": 100, + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 8, + "melee_damage": [ { "damage_type": "pure", "amount": 0, "armor_penetration": 1 } ], + "special_attacks": [ + { "id": "smash", "move_cost": 100, "cooldown": 8, "min_mul": 0.8, "throw_strength": 50 }, + { "id": "slam", "cooldown": 10, "damage_max_instance": [ { "damage_type": "bash", "amount": 12 } ] }, + [ "LUNGE", 10 ] + ], + "dodge": 7, + "vision_day": 50, + "vision_night": 3, + "harvest": "exempt", + "death_function": { "corpse_type": "NO_CORPSE", "message": "The %s becomes part of the endless chamber." }, + "flags": [ "SEES", "HEARS", "WARM", "NO_BREATHE", "PUSH_MON", "HARDTOSHOOT" ], + "armor": { "electric": 1 } + }, + { + "id": "LIXA_living_vector", + "type": "MONSTER", + "name": { "str": "unfolded impossibility", "str_pl": "unfolded impossibilities" }, + "description": "This is the entirety of the infinite chamber you are in, which perfectly contains itself. If you look very closely, you might see yourself looking back. You are sure that at any other time, seeing this would crack your brain like an eggshell. But you understand it just fine right now. And you can see it breathing.", + "default_faction": "nether_player_hate", + "species": [ "NETHER_EMANATION" ], + "looks_like": "mon_impossible_shape", + "volume": "62500 ml", + "weight": "0 g", + "speed": 120, + "hp": 200, + "symbol": "X", + "color": "white", + "aggression": 100, + "morale": 100, + "dodge": 8, + "special_attacks": [ + { + "type": "gun", + "cooldown": 7, + "move_cost": 50, + "gun_type": "LIXA_vector_volley", + "fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ], + "fake_dex": 8, + "fake_per": 8, + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "The %s rapidly rearranges the coordinates of the infinite chamber.", + "ranges": [ [ 2, 20, "DEFAULT" ] ] + }, + { + "type": "spell", + "id": "LIXA_reshuffle_cone", + "spell_data": { "id": "LIXA_reshuffle_cone", "min_level": 1 }, + "monster_message": "The %s rearranges the parts of itself you occupy, dialating them around you.", + "cooldown": 20 + } + ], + "death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "mon_LIXA_vector_death", "hit_self": true } }, + "flags": [ "FLIES", "NO_BREATHE", "SEES", "RANGED_ATTACKER", "HARDTOSHOOT", "HIT_AND_RUN" ], + "armor": { "bash": 6, "cut": 12, "bullet": 10 } + } +] diff --git a/data/json/npcs/LIXA_talk.json b/data/json/npcs/LIXA_talk.json new file mode 100644 index 0000000000000..5c0cfa812a38a --- /dev/null +++ b/data/json/npcs/LIXA_talk.json @@ -0,0 +1,255 @@ +[ + { + "id": "EOC_LIXA_presentation_computer", + "type": "effect_on_condition", + "effect": { "open_dialogue": { "topic": "LIXA_presentation_computer_main" } } + }, + { + "type": "talk_topic", + "id": "LIXA_presentation_computer_main", + "dynamic_line": "This computer is somehow still powered; an alarming buzz eminates from its wall plug. The desktop is cluttered with dozens of unsorted powerpoint files. After some investigation, you find one labeled \"LAYMAN BRIEFING\".", + "responses": [ { "text": "Open LAYMAN BRIEFING.", "topic": "LIXA_LAYMAN_BRIEFING" }, { "text": "Leave.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "LIXA_LAYMAN_BRIEFING", + "dynamic_line": "The screen bears the letters LIXA in big bold font. Underneath it, in smaller letters, are the words \"Laser Interferometer eXospacial resonance Array\". The slides are neatly tabulated under grouped headers down the side.", + "responses": [ + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_1", + "dynamic_line": "\"LIXA, or 'Liza' as we like to call her, is the forefront of exospacial research. It has been confirmed that matter from our local n-space (the 4d coordinates in which we exist) can transit through exodimensions. But it cannot do it safely! To understand the behavior of exospace, we must first learn about how it works.\"", + "responses": [ + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_2", + "dynamic_line": "\"LIXA is based off a proposition for a device called LIGO (Laser Interferometer Gravitational wave Observatory). It was originally designed to confirm the existence of Gravitational Waves, a spreading distortion in spacetime caused by ultramassive events. The design has been repurposed for the exciting field of exospacial research, where we already know we can find spacial distortions!\"", + "responses": [ + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_3a", + "dynamic_line": "\"Laser interferometry is the technique LIXA uses to measure changes in local exospace. The principle is simple! A laser is directed down a long, vacuum-sealed chamber for an exact multiple of its wavelength. It strikes a mirror and returns down another chamber. If the spacetime through which the laser moved has not changed, the waveforms will be IN PHASE, and the signal will be at full amplitutde!\" Here there is a diagram of two waves, with peaks at the same places, and a third wave beneath them.", + "responses": [ + { "text": "The next slide is titled \"But what if?\"", "topic": "LIXA_briefing_3b" }, + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_3b", + "dynamic_line": "\"BUT, if the spacetime through which the laser has distorted with effects parallel to the beam, the waveforms will be OUT OF PHASE, and the signal amplitude will be lower than normal!\" There is a diagram of two waves which do not synch up, and a third wave underneath it that is smaller than either of them.", + "responses": [ + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_4", + "dynamic_line": "\"LIXA works using the principle of LOCAL EXODIMENSIONAL FLUX, the phenomenon in which ambient spacetime around exospacial breaches moves through the \"portal\". LIXA is equipped with several LOCAL DIMENSIONAL COMPRESSORS. These devices turn 'portals' on and off hundreds of times a second, which results in the FLUX repeatedly drawing tiny segments of our local n-space into exospace. This creates a compression effect, 'storing' an enormous amount of 4d-space in those segments in the neighboring exospace.\"", + "responses": [ + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_5", + "dynamic_line": "\"The compressed n-space 'stored' in local exospace is in segments too small for any exospace flux, but is still IN exospace. Through repeated frequency alterations, we can 'rotate' the n-space through the infinite n-planes of exospace, and detect the way in which they shift relative to each other. This is the first step towards countermeasures, and may one day lead to actual safe transit!!!\"", + "responses": [ + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"LIXA funding.\"", "topic": "LIXA_briefing_6" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_briefing_6", + "dynamic_line": "This is a series of several slides. All of them contain financial data so full of references to other projects and definitions that it is basically incomprehensible. It all adds up to a very large amount of money.", + "responses": [ + { "text": "Title slide.", "topic": "LIXA_LAYMAN_BRIEFING" }, + { "text": "\"What is LIXA?\"", "topic": "LIXA_briefing_1" }, + { "text": "\"LIGO and spacial compression.\"", "topic": "LIXA_briefing_2" }, + { "text": "\"What is laser interferometry?\"", "topic": "LIXA_briefing_3a" }, + { "text": "\"How does LIXA work?\"", "topic": "LIXA_briefing_4" }, + { "text": "\"But what are we measuring???\"", "topic": "LIXA_briefing_5" }, + { "text": "Close the presentation.", "topic": "TALK_DONE" } + ] + }, + { + "id": "EOC_LIXA_personal_computer", + "type": "effect_on_condition", + "effect": { "open_dialogue": { "topic": "LIXA_personal_computer_main" } } + }, + { + "type": "talk_topic", + "id": "LIXA_personal_computer_main", + "dynamic_line": "This is a personal computer, the frame around the screen decorated with whale stickers. It has undergone a severe fault, and its file structure is completely scrambled.", + "responses": [ + { + "text": "Attempt to open a file.", + "trial": { "type": "SKILL_CHECK", "difficulty": 3, "skill_required": "computer" }, + "success": { "topic": "LIXA_personal_success_1" }, + "failure": { "topic": "LIXA_personal_failure" } + }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_personal_success_1", + "dynamic_line": "", + "responses": [ + { + "text": "Attempt to open a file.", + "trial": { "type": "SKILL_CHECK", "difficulty": 3, "skill_required": "computer" }, + "success": { "topic": "LIXA_personal_success_2" }, + "failure": { "topic": "LIXA_personal_failure" } + }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_personal_success_2", + "dynamic_line": "", + "responses": [ + { + "text": "Attempt to open a file.", + "trial": { "type": "SKILL_CHECK", "difficulty": 3, "skill_required": "computer" }, + "success": { "topic": "LIXA_personal_success_3" }, + "failure": { "topic": "LIXA_personal_failure" } + }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_personal_success_3", + "dynamic_line": "", + "responses": [ + { + "text": "Attempt to open a file.", + "trial": { "type": "SKILL_CHECK", "difficulty": 3, "skill_required": "computer" }, + "success": { "topic": "LIXA_personal_success_4" }, + "failure": { "topic": "LIXA_personal_failure" } + }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_personal_success_4", + "dynamic_line": "", + "responses": [ + { + "text": "Attempt to open a file.", + "trial": { "type": "SKILL_CHECK", "difficulty": 3, "skill_required": "computer" }, + "success": { "topic": "LIXA_personal_success_1" }, + "failure": { "topic": "LIXA_personal_failure" } + }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_personal_failure", + "dynamic_line": "\"ERROR: file path corrupted. Please contact your sysadmin.\" The computer then freezes, and reboots.", + "responses": [ { "text": "Leave.", "topic": "TALK_DONE" } ] + }, + { + "id": "EOC_LIXA_experiment_computer", + "type": "effect_on_condition", + "effect": { "open_dialogue": { "topic": "LIXA_experiment_computer_main" } } + }, + { + "type": "talk_topic", + "id": "LIXA_experiment_computer_main", + "dynamic_line": "WARNING: multiple system faults detected! SHUT DOWN IMMEDIATELY.", + "responses": [ + { "text": "ERROR: Flux Limiters", "topic": "LIXA_experiment_flux_limiters" }, + { "text": "ERROR: Power Draw", "topic": "LIXA_experiment_power_draw" }, + { "text": "SYSTEM SHUTDOWN", "topic": "LIXA_experiment_system_shutdown" }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_experiment_flux_limiters", + "dynamic_line": "Safe exodimensional flux threshold exceeded! Current flux compression: ERROR STACK OVERFLOW m/s", + "responses": [ + { "text": "ERROR: Power Draw", "topic": "LIXA_experiment_power_draw" }, + { "text": "SYSTEM SHUTDOWN", "topic": "LIXA_experiment_system_shutdown" }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_experiment_power_draw", + "dynamic_line": "Power draw experiencing instability. Current power input: negative ERROR STACK OVERFLOW kJ/s.", + "responses": [ + { "text": "ERROR: Flux Limiters", "topic": "LIXA_experiment_flux_limiters" }, + { "text": "SYSTEM SHUTDOWN", "topic": "LIXA_experiment_system_shutdown" }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "LIXA_experiment_system_shutdown", + "dynamic_line": "Emergency shutdown halted: ERROR unsafe power discharge, ERROR active compressors", + "responses": [ + { "text": "ERROR: Flux Limiters", "topic": "LIXA_experiment_flux_limiters" }, + { "text": "ERROR: Power Draw", "topic": "LIXA_experiment_power_draw" }, + { "text": "SYSTEM SHUTDOWN", "topic": "LIXA_experiment_system_shutdown" }, + { "text": "Leave.", "topic": "TALK_DONE" } + ] + } +] diff --git a/data/json/overmap/overmap_special/specials.json b/data/json/overmap/overmap_special/specials.json index cc7eab69ad8fa..2af029bd7a569 100644 --- a/data/json/overmap/overmap_special/specials.json +++ b/data/json/overmap/overmap_special/specials.json @@ -7434,5 +7434,57 @@ "city_distance": [ 10, 40 ], "city_sizes": [ 5, -1 ], "flags": [ "CLASSIC", "MAN_MADE", "UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "physics_lab_LIXA", + "locations": [ "wilderness" ], + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "LIXA_surface_1a_north" }, + { "point": [ 1, 0, 0 ], "overmap": "LIXA_surface_1b_north" }, + { "point": [ 0, 1, 0 ], "overmap": "LIXA_surface_2a_north" }, + { "point": [ 1, 1, 0 ], "overmap": "LIXA_surface_2b_north" }, + { "point": [ 0, 0, 1 ], "overmap": "LIXA_roof_1a_north" }, + { "point": [ 1, 0, 1 ], "overmap": "LIXA_roof_1b_north" }, + { "point": [ 0, 1, 1 ], "overmap": "LIXA_roof_2a_north" }, + { "point": [ 1, 1, 1 ], "overmap": "LIXA_roof_2b_north" }, + { "point": [ 0, 0, -1 ], "overmap": "LIXA_stairshaft_1a_north" }, + { "point": [ 1, 0, -1 ], "overmap": "LIXA_stairshaft_1b_north" }, + { "point": [ 0, 1, -1 ], "overmap": "LIXA_stairshaft_1c_north" }, + { "point": [ 1, 1, -1 ], "overmap": "LIXA_stairshaft_1d_north" }, + { "point": [ 0, 0, -2 ], "overmap": "LIXA_stairshaft_2a_north" }, + { "point": [ 1, 0, -2 ], "overmap": "LIXA_stairshaft_2b_north" }, + { "point": [ 0, 1, -2 ], "overmap": "LIXA_stairshaft_2c_north" }, + { "point": [ 1, 1, -2 ], "overmap": "LIXA_stairshaft_2d_north" }, + { "point": [ 0, 0, -3 ], "overmap": "LIXA_workfloor_1a_north" }, + { "point": [ 1, 0, -3 ], "overmap": "LIXA_workfloor_1b_north" }, + { "point": [ 0, 1, -3 ], "overmap": "LIXA_workfloor_2a_north" }, + { "point": [ 1, 1, -3 ], "overmap": "LIXA_workfloor_2b_north" }, + { "point": [ 1, 2, -3 ], "overmap": "LIXA_device_2_roof_north" }, + { "point": [ 1, 3, -3 ], "overmap": "LIXA_device_3_roof_north" }, + { "point": [ 1, 1, -4 ], "overmap": "LIXA_device_1_north" }, + { "point": [ 1, 2, -4 ], "overmap": "LIXA_device_2_north" }, + { "point": [ 1, 3, -4 ], "overmap": "LIXA_device_3_north" }, + { "point": [ 1, 0, -8 ], "overmap": "LIXA_device_unfolded_noaccess_north" }, + { "point": [ 1, 1, -8 ], "overmap": "LIXA_device_unfolded_noaccess_north" }, + { "point": [ 1, 2, -8 ], "overmap": "LIXA_device_unfolded_noaccess_north" }, + { "point": [ 1, 3, -8 ], "overmap": "LIXA_device_unfolded_A_north" }, + { "point": [ 1, 4, -8 ], "overmap": "LIXA_device_unfolded_B_north" }, + { "point": [ 1, 5, -8 ], "overmap": "LIXA_device_unfolded_noaccess_north" }, + { "point": [ 1, 6, -8 ], "overmap": "LIXA_device_unfolded_noaccess_north" }, + { "point": [ 1, 7, -8 ], "overmap": "LIXA_device_unfolded_noaccess_north" }, + { "point": [ 0, 2, 0 ], "overmap": "LIXA_entry_1_north" }, + { "point": [ 1, 2, 0 ], "overmap": "LIXA_entry_2_north" }, + { "point": [ 1, 3, 0 ], "overmap": "LIXA_road_north" }, + { "point": [ 1, 4, 0 ], "overmap": "LIXA_road_north" }, + { "point": [ 1, 5, 0 ], "overmap": "LIXA_road_north" }, + { "point": [ 1, 6, 0 ], "overmap": "LIXA_road_north" }, + { "point": [ 1, 7, 0 ], "overmap": "LIXA_road_guard_north" } + ], + "connections": [ { "point": [ 1, 8, 0 ], "terrain": "road", "connection": "local_road", "existing": true, "from": [ 1, 7, 0 ] } ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 4, -1 ], + "occurrences": [ 75, 100 ], + "flags": [ "GLOBALLY_UNIQUE", "MAN_MADE" ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_LIXA.json b/data/json/overmap/overmap_terrain/overmap_terrain_LIXA.json new file mode 100644 index 0000000000000..054133c0abf2c --- /dev/null +++ b/data/json/overmap/overmap_terrain/overmap_terrain_LIXA.json @@ -0,0 +1,83 @@ +[ + { + "type": "overmap_terrain", + "id": [ "LIXA_surface_1a", "LIXA_surface_2a", "LIXA_surface_1b", "LIXA_surface_2b" ], + "name": "research facility", + "sym": "l", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_roof_1a", "LIXA_roof_2a", "LIXA_roof_1b", "LIXA_roof_2b" ], + "name": "research facility roof", + "sym": "l", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_entry_1", "LIXA_entry_2" ], + "name": "research facility gate", + "sym": "l", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_road" ], + "name": "research facility access road", + "sym": "l", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_road_guard" ], + "name": "research facility checkpoint", + "sym": "l", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ + "LIXA_stairshaft_1a", + "LIXA_stairshaft_1b", + "LIXA_stairshaft_1c", + "LIXA_stairshaft_1d", + "LIXA_stairshaft_2a", + "LIXA_stairshaft_2b", + "LIXA_stairshaft_2c", + "LIXA_stairshaft_2d" + ], + "name": "LIXA experiment floor access", + "sym": "l", + "color": "light_gray", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_workfloor_1a", "LIXA_workfloor_2a", "LIXA_workfloor_1b", "LIXA_workfloor_2b" ], + "name": "LIXA research floor", + "sym": "L", + "color": "light_blue", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_device_1", "LIXA_device_2", "LIXA_device_3", "LIXA_device_2_roof", "LIXA_device_3_roof" ], + "name": "LIXA device floor", + "sym": "L", + "color": "light_blue", + "see_cost": 5 + }, + { + "type": "overmap_terrain", + "id": [ "LIXA_device_unfolded_A", "LIXA_device_unfolded_B", "LIXA_device_unfolded_noaccess" ], + "name": "unfolded space", + "sym": "!", + "color": "white", + "see_cost": 5 + } +] diff --git a/data/json/snippets/LIXA_snippets.json b/data/json/snippets/LIXA_snippets.json new file mode 100644 index 0000000000000..efc9a1a5af3b9 --- /dev/null +++ b/data/json/snippets/LIXA_snippets.json @@ -0,0 +1,265 @@ +[ + { + "type": "snippet", + "category": "LIXA_lab_files", + "text": [ + { + "id": "LIXA_lab_files_1", + "text": "After last week's decompression event, all onsite personel must find a spot on the weekly schedule for offsite transit and further testing. This schedule will be rotated in five-hour blocks. You may consider your requests for a timeline update to accomodate these interruptions already filed. I'm working on it, people." + }, + { + "id": "LIXA_lab_files_2", + "text": "Personel are reminded that unmonitored outside contact will result in disciplinary measures. I understand that you are upset, but as has been stressed before, this is a temporary measure until the situation stabilizes." + }, + { + "id": "LIXA_lab_files_3", + "text": "The equipment malfunction has been resolved. The return waveform was delayed by 39h 26m 12s. Adjusting from beat frequency, this is a displacement of 4.24e10 km." + }, + { + "id": "LIXA_lab_files_4", + "text": "The phase difference between the caesium clocks on the device floor and at surface level has lowered to 6 seconds, suggesting a cyclic temporal displacement. As the displacement remains under the caution threshold of 10 seconds, operation and maintenence will continue as normal." + }, + { + "id": "LIXA_lab_files_5", + "text": "After analysis, the signal extracted from the beat frequency run S2848 has been jusdged to be a statistical anomaly of the sort expected in exodimensional transit compressions. Requests for testing halt have been denied. I know it was spooky, but it didn't mean anything. Stay focused." + }, + { + "id": "LIXA_lab_files_6", + "text": "The source of the testing wavelength shift has been identified. A fault had developed in the vacuum casing of the laser chambers, allowing a small amount of ambient atmosphere in. These were subsequently expanded on crossing the resonator threshold. (I don't know what a stretched air molecule looks like either.) Further tests awaiting approval." + } + ] + }, + { + "type": "snippet", + "category": "LIXA_lab_notes", + "text": [ + { + "name": "cyan postit 1", + "id": "lab_postit_LIXA_1", + "text": "Word's in. We're not DARPA funded anymore. I don't know what that means. Come talk to me, please." + }, + { + "name": "cyan postit 2", + "id": "lab_postit_LIXA_2", + "text": "Coordinate distension not to exceed 7 steps under ANY CIRCUMSTANCES." + }, + { + "name": "cyan postit 3", + "id": "lab_postit_LIXA_3", + "text": "Mirror three's developed a nm fault again. However we're machining them, we need them to do better." + }, + { "name": "cyan postit 4", "id": "lab_postit_LIXA_4", "text": "POKER NIGHT THURSDAY" }, + { + "name": "cyan postit 5", + "id": "lab_postit_LIXA_5", + "text": "New stuff's coming in. It's inside the battery housings of the new soldering irons. REMEMBER TO BURN THIS NOTE." + }, + { + "name": "cyan postit 6", + "id": "lab_postit_LIXA_6", + "text": "There is an intricate pen drawing of a whale on this post-it note." + }, + { + "name": "cyan postit 7", + "id": "lab_postit_LIXA_7", + "text": "Corporal Dickass is on the warpath about something. For god's sake, keep your mouth SHUT during the debrief this week." + }, + { + "name": "cyan postit 8", + "id": "lab_postit_LIXA_8", + "text": "This is a cartoony pen drawing of a pigtailed woman in a dirndl, smiling a gaptoothed grin while playing an accordion. Underneath are the words 'LIXA PLAYS THE CLASSICS!!!'" + }, + { + "name": "cyan postit 9", + "id": "lab_postit_LIXA_9", + "text": "I've got a keycard for the stairwell. Meet me tonight, usual location. REMEMBER TO BURN THIS NOTE." + } + ] + }, + { + "type": "snippet", + "category": "LIXA_mil_files", + "text": [ + { + "id": "LIXA_mil_files_1", + "text": "Offsite leisure has been suspended for the duration of this change of command. Leisure hours will not accrue during this time." + }, + { + "id": "LIXA_mil_files_2", + "text": "Protection of onsite research personnel is still considered a primary objective. Termination of research personnel via action or negligence will be grounds for immediate discharge." + }, + { + "id": "LIXA_mil_files_3", + "text": "Deliveries of food and goods from civilian sources is being suspended as of Thursday, March 17th. Offsite control has agreed to arrange one more handoff before suspension. Personnel are advised to make it count." + }, + { + "id": "LIXA_mil_files_4", + "text": "In the interest of squad cohesion, all investigation into the perpetrators of Tuesday's incident has been suspended. The new duty roster reflects an understanding that it will not, under any circumstances, be repeated. The eggheads are not replaceable. You are." + }, + { + "id": "LIXA_mil_files_5", + "text": "Effective immediately, all offsite transit has been suspended indefinitely." + } + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "\"-they said that the temporal distortion will never reach more than 10 seconds. It's been saturday for three days.\"", + "\"They've been telling us the lockdown is temporary for three weeks. Now they're saying we need escorts to even go to the surface level and get some damn sun. How much more-\"", + "\"-look, I know we're all wigging out. But you have got to remember to eat something. Set an alarm if you have to, just-\"", + "\"Dear mom. How are you doing? I hope this message finds you alive, because by the time it gets to you I will be fuckin' dead.\"", + "You open an application that turns out to be a top-down strategy game of some sort, set in space. Shortly after selecting anything in the menu, the game freezes and crashes to desktop.", + "\"Listen, I know it's upsetting, and I agree. You're right that there's no way a cat could cause any real problems down here. But, and I apologize for the cold comfort; this way, you can be sure Yujin will see the sun again. Cats need sun to be happy.\"", + "\"-how are you recovering? They tried to get on us about testing times, I told them they can eat my entire ass. If they don't want delays they will keep those jackboot bastards from breaking someone's fucking jaw. I also put in an order for-\"", + "\"Had the dream again. An ocean, as far as the eye can see. Gently rolling waves. All of it, photons.\"" + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "\"It's getting bad up there. The soldiers seem tense, a little shocked. I don't think they're allowed any news either, so it must be something they can see happening.\"", + "This is a saved file that opens in a digital painting program. The linework, and some shading, has been done on a painting of a long-furred cat.", + "\"They must have done something to Keaton. The soldiers seem very upset with us. As though it's our fault he couldn't keep his temper?\"", + "\"I can answer that for you, actually. He's what those of us who took two semesters of psych 12 years ago call a 'fucking asshole'.\"", + "\"-for understanding. I was too jumbled up to find the right words, so I want to make it clear now: I don't want to end our arrangement, I just need a break. I actually think I could use physical intimacy now more than ever, so if you're alright with just cuddling-\"", + "\"I can't remember loving this project. I know that I did; I was so excited. We were going to change the world. But I cannot remember the feeling of anything other than hate.\"", + "\"I wiped the last of the documentation drives last night. I think we all know that if they replace us, it won't be because we've been let go and allowed to resume our lives. Now they no longer have that option.\"", + "This is a spreadsheet that passes several cells of what look like poker hands through a mathematical function, directing them to a cell with the heading CHEATCHANCE and the number 77.", + "This is an entire folder of video files, apparently the complete first season of an animated series called The Shepherd House. Every file crashes to desktop ten seconds into the opening credits, so all you can tell is that the theme music seems interesting." + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "\"I just don't get what's in this for Kim. He says he won't be in any more trouble if they bust him for smuggling stuff for us on top of his own, but we have nothing to offer him in exchange. I'd like to believe he's just a good guy, but I don't have that luxury anymore.\"", + "This is a saved file that opens in a digital painting program. All it contains are the words THEY BURIED US ALIVE in shaky handwriting.", + "\"The last I heard, dad was very sick. That was 8 months ago. What am I SUPPOSED to think?\"", + "This is a text file containing a very large ASCII image of a dog wearing glasses.", + "This is a spreadsheet containing the info for a Blobs & Bandits character named Antigone. They are apparently some sort of psychic specializing in area-of-effect attacks, and have a pet 'shrike worm' named Scylla.", + "\"I never believed I would miss fast food at all, let alone this much. I would do terrible things for a single bite of cheap, dubious hamburger.\"", + "\"Finished refitting the experiment chamber card readers. It's just us in there now. I don't think the soldiers want to risk undoing it, if it means possibly compromising the device.\"", + "\"How do you stop a coordinate transformer from squeaking? Make sure you have an Euler handy!'", + "\"At this point? The only reason I haven't killed myself is because they'd make you guys work even harder to make up for me. So yeah. Not doing great.\"", + "\"I wonder what they've told my children. I hope it's that I am dead. The alternative, that they think I abandoned them? I would rather BE dead.\"", + "\"Whatever is happening up there, it's not our fault. We cannot be responsible for the ways other people use our research. Any scientist who has ever lived has only been able to hope their work is used well. The work must be done, regardless.\"", + "This is a random page from what appears to be an original work of erotic fiction. The things described here seem anatomically unlikely, at best." + ] + }, + { + "type": "snippet", + "category": "", + "text": [ + "\"Something is wrong. I don't think the compression factor numbers are a bug or error. I think we've lost control of this thing entirely.\"", + "This is a text document. All it contains are the words SPACE IS A WASTE TIME IS A CRIME several thousand times.", + "\"Kim spent his last takeout order on us, enough to give us leftovers for days. He got it from Ping's. He remembers I said their siu mai are made the real way. I don't understand.\"", + "\"I've got a cask of the finest paradimensional research in my cellar. Would you like a taste, Fortunato?\"", + "\"Listen, I am very pleased for you two, in the abstract. I just would like you to remember that your room shares a ventilation duct with mine. A note on my door would be nice if you have plans for an evening.\"", + "\"No, you can't get high off air freshener, you dumbass. I just miss the smell of living things. Cheap fake pine in close enough.\"", + "\"I hate to be the devil's advocate, but; they're trapped as well. It's easy to resent them for at least having the sun, but isn't having freedom that much closer and still beyond reach maddening as well?\"", + "\"If there was a nuclear war, would anyone remember we're down here? Has there been one already, and they just haven't told us?\"", + "This is a saved file that opens in a digital painting program. It is a crude cartoon of a woman in a suit with a manic expression, and a word balloon saying \"WIBBLEY WOBBLEY, SPACEY-WACEY, STUFF\".", + "\"Because it's a stupid fucking acronym, is why. Someone sat down and thought 'how do we make people take our DOUBLE SECRET agency seriously? I know! X's are super cool, right? It's embarassing.\"", + "\"Yeah, now I'm sure. Someone has been stealing my underwear. Next briefing, we tell them we either get onsite laundry installed, or we forget to turn the device off and they can deal with the power bill.\"" + ] + }, + { + "type": "snippet", + "category": "LIXA_lab_graffiti_sad_snips", + "text": [ + { + "id": "LIXA_lab_graffiti_sad_1", + "text": "This is a very large and extremely detailed drawing of a long-furred black cat. It must have taken a very long time. Underneath are the words 'someone still remembers yu'." + }, + { + "id": "LIXA_lab_graffiti_sad_2", + "text": "\"And when we saw the vastness of our works, we wept. For there was no more death to become.\"" + }, + { + "id": "LIXA_lab_graffiti_sad_3", + "text": "Written in a neat script, side by side in Somali and English, are the words \"But now, after everything, I am too afraid to face you.\"" + }, + { + "id": "LIXA_lab_graffiti_sad_4", + "text": "\"AT LEAST PROMETHEUS HAD A NICE VIEW AND A FUCKING EAGLE FOR COMPANY\"" + }, + { + "id": "LIXA_lab_graffiti_sad_5", + "text": "This is a sketchy portrait in permanent marker of a man in military body armor. His face is blotted out by an angry snarl of ink. Underneath is the word KIM." + }, + { "id": "LIXA_lab_graffiti_sad_6", "text": "\"WHAT was WRONG with just doing EINSTEIN?\"" } + ] + }, + { + "type": "snippet", + "category": "LIXA_lab_graffiti_bored_snips", + "text": [ + { + "id": "LIXA_lab_graffiti_bored_1", + "text": "This is is a very large circle, filled with hundreds and hundreds of delicate spirals in yellow and orange marker." + }, + { + "id": "LIXA_lab_graffiti_bored_2", + "text": "\"The outside has been closed for repairs. Thank you for your patience.\"" + }, + { + "id": "LIXA_lab_graffiti_bored_3", + "text": "This wall is covered in games of tic-tac-toe, with Xs and Os in different colors. Some sketching on the side suggests that it is all one game, played on a 6 dimensional grid. Underneath that are the words THIS WAS FUCKING STUPID." + }, + { + "id": "LIXA_lab_graffiti_bored_4", + "text": "This is a detailed drawing of a humpback whale. An obvious addition from a different artist has added what looks like sunglasses. The visible arm is comically short, and the nose bridge extends over the top of the whale. Possibly a third hand has added the words \"From hell's heart I chill with thee!\"" + }, + { "id": "LIXA_lab_graffiti_bored_5", "text": "\"BEWARE THE PHANTOM OF THE ASSAY\"" }, + { + "id": "LIXA_lab_graffiti_bored_6", + "text": "This wall is covered in paired tables of talley marks, under headings such as NEWTON/LEIBNITZ, CAKE/PIE, TRITE/MOIST, and ORIGINAL/REBOOT." + }, + { + "id": "LIXA_lab_graffiti_bored_7", + "text": "There is a large line sketch, in marker, of a tall wardrobe's closed doors here." + }, + { "id": "LIXA_lab_graffiti_bored_8", "text": "\"If anyone finds this message; send more fucking tomatoes.\"" }, + { + "id": "LIXA_lab_graffiti_bored_9", + "text": "This is a drawing, combined together from several people's contributions. The result is a deeply unflattering caracature of a soldier skipping down a road, alongside the words KEATON ON HIS WAY TO BUY MORE PAINT CHIPS." + }, + { + "id": "LIXA_lab_graffiti_bored_10", + "text": "This is an adorable drawing of a troll-like creature with a snout like an aardvark. Next to it are the words \"Please don't tell anyone I'm down here!\"" + }, + { + "id": "LIXA_lab_graffiti_bored_11", + "text": "This is a drawing of a horned, ogre-like creature sitting in an arm chair, wearing a small pair of reading glasses and holding what is presumably a normal sized book delicately between each finger and thumb. Underneath are the words \"But how does he turn the pages?\", followed, in a different hand, by \"Carefully.\"" + } + ] + }, + { + "type": "snippet", + "category": "LIXA_lab_graffiti_raving_snips", + "text": [ + { "id": "LIXA_lab_graffiti_raving_1", "text": "\"THEY BURIED US ALIVE\"" }, + { "id": "LIXA_lab_graffiti_raving_2", "text": "\"It's EtERNITy in there\"" }, + { + "id": "LIXA_lab_graffiti_raving_3", + "text": "\"To whoever finds this; tell my children I loved them. You owe me that. you owe me that YOU OWE ME THAT\"" + }, + { "id": "LIXA_lab_graffiti_raving_4", "text": "\"I'm NOT fucking sorry.\"" }, + { "id": "LIXA_lab_graffiti_raving_5", "text": "\"Whoever leaves last, please get the lights before you go.\"" }, + { "id": "LIXA_lab_graffiti_raving_6", "text": "\"I just wanted to help\"" } + ] + }, + { + "type": "snippet", + "category": "LIXA_lab_graffiti_goodbye", + "text": [ + { + "id": "LIXA_lab_graffiti_sadbye", + "text": "We went in. We're going to try to fix it. If someone finds this; we were here. We tried to make it right." + } + ] + } +]