Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

makes uniform vendor shutters emp proof #7234

Merged
merged 4 commits into from
Oct 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions code/game/area/almayer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
icon_state = "supply"
unslashable = TRUE
unacidable = TRUE
exproof = 1
explo_proof = TRUE
density = TRUE
req_access = null
shuttle_tag = "Hangar"
Expand All @@ -47,7 +47,7 @@
icon_state = "shuttle"
unslashable = TRUE
unacidable = TRUE
exproof = 1
explo_proof = TRUE
density = TRUE
req_access = null
shuttle_tag = "Maintenance"
Expand Down
12 changes: 12 additions & 0 deletions code/game/atoms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@
var/list/fingerprintshidden
var/fingerprintslast = null

/// determines whether or not the object can be destroyed by xeno acid
var/unacidable = FALSE
/// determines whether or not the object can be destroyed by an explosion
var/explo_proof = FALSE
/// determines whether or not the object can be affected by EMPs
var/emp_proof = FALSE

var/last_bumped = 0

// The cached datum for the permanent pass flags for any given atom
Expand Down Expand Up @@ -207,6 +213,9 @@ directive is properly returned.
/atom/proc/emp_act(severity)
SHOULD_CALL_PARENT(TRUE)

if(emp_proof)
return FALSE

SEND_SIGNAL(src, COMSIG_ATOM_EMP_ACT, severity)

/atom/proc/in_contents_of(container)//can take class or object instance as argument
Expand Down Expand Up @@ -268,6 +277,9 @@ directive is properly returned.
A.ex_act(severity)

/atom/proc/ex_act(severity)
if(explo_proof)
return

contents_explosion(severity)

/atom/proc/fire_act()
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/ARES/ARES_interface.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
desc = "A console built to interface with ARES, allowing for 1:1 communication."
icon = 'icons/obj/structures/machinery/ares.dmi'
icon_state = "console"
exproof = TRUE
explo_proof = TRUE

var/current_menu = "login"
var/last_menu = ""
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/ARES/ARES_interface_apollo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
desc = "A console built to facilitate Working Joes and their operation, allowing for simple allocation of resources."
icon = 'icons/obj/structures/machinery/ares.dmi'
icon_state = "console"
exproof = TRUE
explo_proof = TRUE

/// The ID used to link all devices.
var/datum/ares_link/link
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/ARES/apollo_pda.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
desc = "A portable interface used by Working-Joes, capable of connecting to the local command AI to relay tasking information. Built to withstand a nuclear bomb."
icon_state = "karnak_off"
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
req_one_access = list(ACCESS_MARINE_AI_TEMP, ACCESS_MARINE_AI, ACCESS_ARES_DEBUG)

/// The ID used to link all devices.
Expand Down
3 changes: 0 additions & 3 deletions code/game/machinery/camera/camera.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,6 @@

var/colony_camera_mapload = TRUE

/// If this camera should have innate EMP-proofing
var/emp_proof = FALSE

///Autonaming
var/autoname = FALSE
var/autonumber = 0 //camera number in area
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/computer/camera_console.dm
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@
active_power_usage = 0
needs_power = FALSE
network = list(CAMERA_NET_MORTAR)
exproof = TRUE
explo_proof = TRUE
colony_camera_mapload = FALSE

/obj/structure/machinery/computer/cameras/mortar/set_broken()
Expand All @@ -381,7 +381,7 @@
circuit = null
unslashable = TRUE
unacidable = TRUE
exproof = TRUE
explo_proof = TRUE


/obj/structure/machinery/computer/cameras/dropship/one
Expand Down
5 changes: 2 additions & 3 deletions code/game/machinery/computer/computer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
var/circuit = null //The path to the circuit board type. If circuit==null, the computer can't be disassembled.
var/processing = FALSE //Set to true if computer needs to do /process()
var/deconstructible = TRUE
var/exproof = 0

/obj/structure/machinery/computer/Initialize()
. = ..()
Expand All @@ -37,7 +36,7 @@


/obj/structure/machinery/computer/ex_act(severity)
if(exproof)
if(explo_proof)
return
switch(severity)
if(0 to EXPLOSION_THRESHOLD_LOW)
Expand All @@ -56,7 +55,7 @@
return

/obj/structure/machinery/computer/bullet_act(obj/projectile/Proj)
if(exproof)
if(explo_proof)
visible_message("[Proj] ricochets off [src]!")
return 0
else
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/computer/demo_sim.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "demolitions simulator"
desc = "A powerful simulator that can simulate explosions. Its processors need a cooldown of approximately 1 minute after each simulation."
icon_state = "demo_sim"
exproof = TRUE
explo_proof = TRUE
unacidable = TRUE
var/datum/simulator/simulation
var/turf/sim_location
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/computer/dropship_weapons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
circuit = null
unslashable = TRUE
unacidable = TRUE
exproof = TRUE
explo_proof = TRUE
var/shuttle_tag // Used to know which shuttle we're linked to.
var/obj/structure/dropship_equipment/selected_equipment //the currently selected equipment installed on the shuttle this console controls.
var/cavebreaker = FALSE //ignore caves and other restrictions?
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/cryopod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li
icon = 'icons/obj/structures/machinery/computer.dmi'
icon_state = "cellconsole"
circuit = /obj/item/circuitboard/computer/cryopodcontrol
exproof = TRUE
explo_proof = TRUE
unslashable = TRUE
unacidable = TRUE
var/cryotype = "REQ"
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/door_control.dm
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
return src.attack_hand(user)

/obj/structure/machinery/door_control/ex_act(severity)
if(indestructible)
if(explo_proof)
return FALSE
..()

Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/doors/brig_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
anchored = TRUE // can't pick it up
density = FALSE // can walk through it.
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE

/// id of door it controls.
var/id = null
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/doors/door.dm
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
secondsElectrified = 0

/obj/structure/machinery/door/ex_act(severity)
if(unacidable)
if(explo_proof)
return

if(density)
Expand Down
8 changes: 6 additions & 2 deletions code/game/machinery/doors/poddoor/shutters/shutters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
id = "Yautja Armory"
needs_power = FALSE
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE

/obj/structure/machinery/door/poddoor/shutters/almayer/yautja/Initialize()
. = ..()
Expand Down Expand Up @@ -149,7 +149,11 @@
unslashable = TRUE

/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/ex_act(severity)
return
return

/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/emp_act(severity)
. = ..()
return

/obj/structure/machinery/door/poddoor/shutters/almayer/uniform_vendors/attackby(obj/item/attacking_item, mob/user)
if(HAS_TRAIT(attacking_item, TRAIT_TOOL_CROWBAR) || attacking_item.pry_capable)
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/fuelcell_recycler.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
active_power_usage = 15000
unslashable = TRUE
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE

///How much to recharge the cells per process
var/recharge_amount = 5
Expand All @@ -21,7 +21,7 @@
QDEL_NULL(cell_right)

/obj/structure/machinery/fuelcell_recycler/ex_act(severity)
if(indestructible)
if(explo_proof)
return
. = ..()

Expand Down
7 changes: 5 additions & 2 deletions code/game/machinery/machinery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,9 @@ Class Procs:


/obj/structure/machinery/ex_act(severity)
if(explo_proof)
return

switch(severity)
if(0 to EXPLOSION_THRESHOLD_LOW)
if (prob(25))
Expand Down Expand Up @@ -363,13 +366,13 @@ Class Procs:
icon = 'icons/obj/structures/machinery/fuelpump.dmi'
icon_state = "fuelpump_off"
health = null
indestructible = TRUE
explo_proof = TRUE
density = TRUE
anchored = TRUE
unslashable = TRUE
unacidable = TRUE
wrenchable = FALSE

/obj/structure/machinery/fuelpump/ex_act(severity)
return

Expand Down
5 changes: 3 additions & 2 deletions code/game/machinery/vending/cm_vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,9 @@ IN_USE used for vending/denying
apply_transform(A)

/obj/structure/machinery/cm_vending/ex_act(severity)
if(indestructible)
if(explo_proof)
return

switch(severity)
if(0 to EXPLOSION_THRESHOLD_LOW)
if (prob(25))
Expand Down Expand Up @@ -378,7 +379,7 @@ GLOBAL_LIST_EMPTY(vending_products)
//------------INTERACTION PROCS---------------

/obj/structure/machinery/cm_vending/attack_alien(mob/living/carbon/xenomorph/user)
if(stat & TIPPED_OVER || indestructible)
if(stat & TIPPED_OVER || unslashable)
to_chat(user, SPAN_WARNING("There's no reason to bother with that old piece of trash."))
return XENO_NO_DELAY_ACTION

Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/vending/vendor_types/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@
return XENO_ATTACK_ACTION

/obj/structure/restock_cart/ex_act(severity)
if(indestructible)
if(explo_proof)
return

switch(severity)
Expand Down
6 changes: 3 additions & 3 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,15 +211,15 @@
switch(severity)
if(0 to EXPLOSION_THRESHOLD_LOW)
if(prob(5))
if(!indestructible)
if(!explo_proof)
visible_message(SPAN_DANGER(SPAN_UNDERLINE("\The [src] [msg]")))
deconstruct(FALSE)
if(EXPLOSION_THRESHOLD_LOW to EXPLOSION_THRESHOLD_MEDIUM)
if(prob(50))
if(!indestructible)
if(!explo_proof)
deconstruct(FALSE)
if(EXPLOSION_THRESHOLD_MEDIUM to INFINITY)
if(!indestructible)
if(!explo_proof)
visible_message(SPAN_DANGER(SPAN_UNDERLINE("\The [src] [msg]")))
deconstruct(FALSE)

Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/devices/binoculars.dm
Original file line number Diff line number Diff line change
Expand Up @@ -355,15 +355,15 @@
name = "scout laser designator"
desc = "An improved laser designator, issued to USCM scouts, with two modes: target marking for CAS with IR laser and rangefinding. Ctrl + Click turf to target something. Ctrl + Click designator to stop lasing. Alt + Click designator to switch modes."
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
cooldown_duration = 80
target_acquisition_delay = 30

/obj/item/device/binoculars/range/designator/spotter
name = "spotter's laser designator"
desc = "A specially-designed laser designator, issued to USCM spotters, with two modes: target marking for CAS with IR laser and rangefinding. Ctrl + Click turf to target something. Ctrl + Click designator to stop lasing. Alt + Click designator to switch modes. Additionally, a trained spotter can laze targets for a USCM marksman, increasing the speed of target acquisition. A targeting beam will connect the binoculars to the target, but it may inherit the user's cloak, if possible."
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
var/is_spotting = FALSE
var/spotting_time = 10 SECONDS
var/spotting_cooldown_delay = 5 SECONDS
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/cictablet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
icon_state = "Cotablet"
item_state = "Cotablet"
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
req_access = list(ACCESS_MARINE_SENIOR)
var/on = TRUE // 0 for off
var/cooldown_between_messages = COOLDOWN_COMM_MESSAGE
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/devices/vulture_spotter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
item_state = "electronic"
flags_atom = FPRINT|CONDUCT
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
/// A weakref to the corresponding rifle
var/datum/weakref/bound_rifle

Expand All @@ -27,7 +27,7 @@
item_state = "electronic"
flags_atom = FPRINT|CONDUCT
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE

/obj/item/device/vulture_spotter_tripod/get_examine_text(mob/user)
. = ..()
Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/items/stacks/flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@
return TRUE

/obj/structure/flag/plantable/attackby(obj/item/weapon, mob/living/user)
if(!indestructible)
if(!explo_proof)
visible_message(SPAN_DANGER("[src] has been hit by [user] with [weapon]!"), null, 5, CHAT_TYPE_MELEE_HIT)
user.animation_attack_on(src)
playsound(loc, 'sound/effects/metalhit.ogg', 25, 1)
Expand All @@ -174,7 +174,7 @@
throwforce = 5
hitsound = "swing_hit"
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
item_icons = list(
WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_64.dmi',
WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_64.dmi'
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r
desc = "The lightweight thermal dampeners and optical camouflage provided by this cloak are weaker than those found in standard USCM ghillie suits. In exchange, the cloak can be worn over combat armor and offers the wearer high maneuverability and adaptability to many environments."
icon_state = "scout_cloak"
unacidable = TRUE
indestructible = TRUE
explo_proof = TRUE
uniform_restricted = list(/obj/item/clothing/suit/storage/marine/M3S) //Need to wear Scout armor and helmet to equip this.
has_gamemode_skin = FALSE //same sprite for all gamemode.
var/camo_active = FALSE
Expand Down
2 changes: 0 additions & 2 deletions code/game/objects/objs.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
/obj
/// Used to store information about the contents of the object.
var/list/matter
/// determines whether or not the object can be destroyed by an explosion
var/indestructible = FALSE
var/health = null
/// Used by SOME devices to determine how reliable they are.
var/reliability = 100
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/structures.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
..()

/obj/structure/ex_act(severity, direction)
if(indestructible)
if(explo_proof)
return

if(src.health) //Prevents unbreakable objects from being destroyed
Expand Down
Loading
Loading