diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 962d7792f93..dc09ca1ef5b 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -15,10 +15,10 @@ var/bomb_name = "bomb" // used for naming bombs / mines - var/secured = 1 + var/secured = TRUE var/list/attached_overlays = null var/obj/item/assembly_holder/holder = null - var/cooldown = 0 //To prevent spam + var/cooldown = FALSE //To prevent spam var/wires = WIRE_RECEIVE | WIRE_PULSE var/datum/wires/connected = null // currently only used by timer/signaler @@ -31,10 +31,10 @@ /obj/item/assembly/proc/activate() //What the device does when turned on return -/obj/item/assembly/proc/pulsed(radio = 0) //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs +/obj/item/assembly/proc/pulsed(radio = FALSE) //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs return -/obj/item/assembly/proc/pulse(radio = 0) //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct +/obj/item/assembly/proc/pulse(radio = FALSE) //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct return /obj/item/assembly/proc/toggle_secure() //Code that has to happen when the assembly is un\secured goes here @@ -58,10 +58,10 @@ /obj/item/assembly/process_cooldown() cooldown-- if(cooldown <= 0) - return 0 + return FALSE spawn(10) process_cooldown() - return 1 + return TRUE /obj/item/assembly/Destroy() if(istype(loc, /obj/item/assembly_holder) || istype(holder)) @@ -73,14 +73,14 @@ holder = null return ..() -/obj/item/assembly/pulsed(radio = 0) +/obj/item/assembly/pulsed(radio = FALSE) if(holder && (wires & WIRE_RECEIVE)) activate() if(radio && (wires & WIRE_RADIO_RECEIVE)) activate() - return 1 + return TRUE -/obj/item/assembly/pulse(radio = 0) +/obj/item/assembly/pulse(radio = FALSE) if(holder && (wires & WIRE_PULSE)) holder.process_activation(src, 1, 0) if(holder && (wires & WIRE_PULSE_SPECIAL)) @@ -88,15 +88,15 @@ if(istype(loc, /obj/item/grenade)) // This is a hack. Todo: Manage this better -Sayu var/obj/item/grenade/G = loc G.prime() // Adios, muchachos - return 1 + return TRUE /obj/item/assembly/activate() - if(!secured || (cooldown > 0)) - return 0 + if(!secured || cooldown > 0) + return FALSE cooldown = 2 spawn(10) process_cooldown() - return 1 + return TRUE /obj/item/assembly/toggle_secure() secured = !secured @@ -107,13 +107,13 @@ holder = new /obj/item/assembly_holder(get_turf(src)) if(holder.attach(A, src, user)) to_chat(user, "You attach [A] to [src]!") - return 1 - return 0 + return TRUE + return FALSE /obj/item/assembly/attackby(obj/item/W, mob/user, params) if(isassembly(W)) var/obj/item/assembly/A = W - if((!A.secured) && (!secured)) + if(!A.secured && !secured) attach_assembly(A, user) return if(isscrewdriver(W)) @@ -129,7 +129,7 @@ /obj/item/assembly/examine(mob/user) ..() - if((in_range(src, user) || loc == user)) + if(in_range(src, user) || loc == user) if(secured) to_chat(user, "[src] is ready!") else @@ -140,7 +140,7 @@ return user.set_machine(src) interact(user) - return 1 + return TRUE /obj/item/assembly/interact(mob/user) return \ No newline at end of file diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index 763152cc5cf..25f9f6fe285 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -24,11 +24,11 @@ overlays += bombassembly.overlays overlays += "bomb_assembly" -/obj/item/onetankbomb/attackby(obj/item/W as obj, mob/user as mob, params) +/obj/item/onetankbomb/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/analyzer)) bombtank.attackby(W, user, params) return - if(istype(W, /obj/item/wrench) && !status) //This is basically bomb assembly code inverted. apparently it works. + if(iswrench(W) && !status) //This is basically bomb assembly code inverted. apparently it works. to_chat(user, "You disassemble [src].") @@ -42,21 +42,23 @@ qdel(src) return - if((istype(W, /obj/item/weldingtool) && W:welding)) - if(!status) - status = 1 - investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", INVESTIGATE_BOMB) - msg_admin_attack("[key_name_admin(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", ATKLOG_FEW) - log_game("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature - T0C]") - to_chat(user, "A pressure hole has been bored to [bombtank] valve. \The [bombtank] can now be ignited.") - else - status = 0 - investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", INVESTIGATE_BOMB) - to_chat(user, "The hole has been closed.") + if(iswelder(W)) + var/obj/item/weldingtool/WT = W + if(WT.welding) + if(!status) + status = TRUE + investigate_log("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", INVESTIGATE_BOMB) + msg_admin_attack("[key_name_admin(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", ATKLOG_FEW) + log_game("[key_name(user)] welded a single tank bomb. Temperature: [bombtank.air_contents.temperature - T0C]") + to_chat(user, "A pressure hole has been bored to [bombtank] valve. [bombtank] can now be ignited.") + else + status = FALSE + investigate_log("[key_name(user)] unwelded a single tank bomb. Temperature: [bombtank.air_contents.temperature-T0C]", INVESTIGATE_BOMB) + to_chat(user, "The hole has been closed.") add_fingerprint(user) ..() -/obj/item/onetankbomb/attack_self(mob/user as mob) //pressing the bomb accesses its assembly +/obj/item/onetankbomb/attack_self(mob/user) //pressing the bomb accesses its assembly bombassembly.attack_self(user, 1) add_fingerprint(user) return @@ -71,23 +73,23 @@ else bombtank.release() -/obj/item/onetankbomb/HasProximity(atom/movable/AM as mob|obj) +/obj/item/onetankbomb/HasProximity(atom/movable/AM) if(bombassembly) bombassembly.HasProximity(AM) -/obj/item/onetankbomb/Crossed(atom/movable/AM as mob|obj) //for mousetraps +/obj/item/onetankbomb/Crossed(atom/movable/AM) //for mousetraps if(bombassembly) bombassembly.Crossed(AM) -/obj/item/onetankbomb/on_found(mob/finder as mob) //for mousetraps +/obj/item/onetankbomb/on_found(mob/finder) //for mousetraps if(bombassembly) bombassembly.on_found(finder) -/obj/item/onetankbomb/hear_talk(mob/living/M as mob, msg) +/obj/item/onetankbomb/hear_talk(mob/living/M, msg) if(bombassembly) bombassembly.hear_talk(M, msg) -/obj/item/onetankbomb/hear_message(mob/living/M as mob, msg) +/obj/item/onetankbomb/hear_message(mob/living/M, msg) if(bombassembly) bombassembly.hear_message(M, msg) diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm index aac2c922802..853733784fa 100644 --- a/code/modules/assembly/health.dm +++ b/code/modules/assembly/health.dm @@ -4,31 +4,32 @@ icon_state = "health" materials = list(MAT_METAL=800, MAT_GLASS=200) origin_tech = "magnets=1;biotech=1" - secured = 0 + secured = FALSE - var/scanning = 0 + var/scanning = FALSE var/health_scan var/alarm_health = 0 /obj/item/assembly/health/activate() - if(!..()) return 0//Cooldown check + if(!..()) + return FALSE//Cooldown check toggle_scan() - return 0 + return FALSE /obj/item/assembly/health/toggle_secure() secured = !secured if(secured && scanning) processing_objects.Add(src) else - scanning = 0 + scanning = FALSE processing_objects.Remove(src) update_icon() return secured -/obj/item/assembly/health/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W, /obj/item/multitool)) +/obj/item/assembly/health/attackby(obj/item/W, mob/user) + if(ismultitool(W)) if(alarm_health == 0) alarm_health = -90 user.show_message("You toggle [src] to \"detect death\" mode.") @@ -61,7 +62,8 @@ return /obj/item/assembly/health/proc/toggle_scan() - if(!secured) return 0 + if(!secured) + return FALSE scanning = !scanning if(scanning) processing_objects.Add(src) @@ -69,10 +71,10 @@ processing_objects.Remove(src) return -/obj/item/assembly/health/interact(mob/user as mob)//TODO: Change this to the wires thingy +/obj/item/assembly/health/interact(mob/user)//TODO: Change this to the wires thingy if(!secured) user.show_message("The [name] is unsecured!") - return 0 + return FALSE var/dat = text("Health Sensor [scanning?"On":"Off"]") if(scanning && health_scan) dat += "
Health: [health_scan]" diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index e7c7ddbd9cb..19683743b3e 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -9,204 +9,203 @@ throw_speed = 3 throw_range = 10 - var/secured = 0 + var/secured = FALSE var/obj/item/assembly/a_left = null var/obj/item/assembly/a_right = null - proc/attach(var/obj/item/D, var/obj/item/D2, var/mob/user) - return +/obj/item/assembly_holder/proc/attach(obj/item/D, obj/item/D2, mob/user) + return - proc/process_activation(var/obj/item/D) - return +/obj/item/assembly_holder/proc/process_activation(var/obj/item/D) + return +/obj/item/assembly_holder/IsAssemblyHolder() + return TRUE +/obj/item/assembly_holder/Destroy() + if(a_left) + a_left.holder = null + if(a_right) + a_right.holder = null + return ..() - IsAssemblyHolder() - return 1 - - Destroy() - if(a_left) - a_left.holder = null - if(a_right) - a_right.holder = null - return ..() - - attach(var/obj/item/D, var/obj/item/D2, var/mob/user) - if((!D)||(!D2)) return 0 - if((!isassembly(D))||(!isassembly(D2))) return 0 - if((D:secured)||(D2:secured)) return 0 - if(!D.remove_item_from_storage(src)) - if(user) - user.remove_from_mob(D) - D.loc = src - if(!D2.remove_item_from_storage(src)) - if(user) - user.remove_from_mob(D2) - D2.loc = src - D:holder = src - D2:holder = src - a_left = D - a_right = D2 - name = "[D.name]-[D2.name] assembly" - update_icon() - return 1 - - +/obj/item/assembly_holder/attach(obj/item/D, obj/item/D2, mob/user) + if(!D || !D2) + return FALSE + if(!isassembly(D) || !isassembly(D2)) + return FALSE + var/obj/item/assembly/A1 = D + var/obj/item/assembly/A2 = D2 + if(A1.secured || A2.secured) + return FALSE + if(!A1.remove_item_from_storage(src)) + if(user) + user.remove_from_mob(A1) + A1.loc = src + if(!A2.remove_item_from_storage(src)) + if(user) + user.remove_from_mob(A2) + A2.loc = src + A1.holder = src + A2.holder = src + a_left = A1 + a_right = A2 + name = "[A1.name]-[A2.name] assembly" update_icon() - overlays.Cut() - if(a_left) - overlays += "[a_left.icon_state]_left" - for(var/O in a_left.attached_overlays) - overlays += "[O]_l" - if(a_right) - src.overlays += "[a_right.icon_state]_right" - for(var/O in a_right.attached_overlays) - overlays += "[O]_r" - if(master) - master.update_icon() + return TRUE - examine(mob/user) - ..(user) - if((in_range(src, user) || src.loc == user)) - if(src.secured) - to_chat(user, "\The [src] is ready!") - else - to_chat(user, "\The [src] can be attached!") +/obj/item/assembly_holder/update_icon() + overlays.Cut() + if(a_left) + overlays += "[a_left.icon_state]_left" + for(var/O in a_left.attached_overlays) + overlays += "[O]_l" + if(a_right) + overlays += "[a_right.icon_state]_right" + for(var/O in a_right.attached_overlays) + overlays += "[O]_r" + if(master) + master.update_icon() - HasProximity(atom/movable/AM as mob|obj) - if(a_left) - a_left.HasProximity(AM) - if(a_right) - a_right.HasProximity(AM) +/obj/item/assembly_holder/examine(mob/user) + ..(user) + if(in_range(src, user) || loc == user) + if(secured) + to_chat(user, "[src] is ready!") + else + to_chat(user, "[src] can be attached!") - Crossed(atom/movable/AM as mob|obj) - if(a_left) - a_left.Crossed(AM) - if(a_right) - a_right.Crossed(AM) - - on_found(mob/finder as mob) - if(a_left) - a_left.on_found(finder) - if(a_right) - a_right.on_found(finder) +/obj/item/assembly_holder/HasProximity(atom/movable/AM) + if(a_left) + a_left.HasProximity(AM) + if(a_right) + a_right.HasProximity(AM) - hear_talk(mob/living/M as mob, msg) - if(a_left) - a_left.hear_talk(M, msg) - if(a_right) - a_right.hear_talk(M, msg) +/obj/item/assembly_holder/Crossed(atom/movable/AM) + if(a_left) + a_left.Crossed(AM) + if(a_right) + a_right.Crossed(AM) - hear_message(mob/living/M as mob, msg) - if(a_left) - a_left.hear_message(M, msg) - if(a_right) - a_right.hear_message(M, msg) +/obj/item/assembly_holder/on_found(mob/finder) + if(a_left) + a_left.on_found(finder) + if(a_right) + a_right.on_found(finder) - proc/process_movement() // infrared beams and prox sensors - if(a_left && a_right) - a_left.holder_movement() - a_right.holder_movement() - Move() - ..() - process_movement() +/obj/item/assembly_holder/hear_talk(mob/living/M, msg) + if(a_left) + a_left.hear_talk(M, msg) + if(a_right) + a_right.hear_talk(M, msg) + +/obj/item/assembly_holder/hear_message(mob/living/M, msg) + if(a_left) + a_left.hear_message(M, msg) + if(a_right) + a_right.hear_message(M, msg) + +/obj/item/assembly_holder/proc/process_movement() // infrared beams and prox sensors + if(a_left && a_right) + a_left.holder_movement() + a_right.holder_movement() + +/obj/item/assembly_holder/Move() + ..() + process_movement() + return + +/obj/item/assembly_holder/pickup() + ..() + process_movement() + +/obj/item/assembly_holder/Bump() + ..() + process_movement() + +/obj/item/assembly_holder/throw_impact() // called when a throw stops + ..() + process_movement() + +/obj/item/assembly_holder/attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess + if(a_left && a_right) + a_left.holder_movement() + a_right.holder_movement() + ..() + return + +/obj/item/assembly_holder/attackby(obj/item/W, mob/user, params) + if(isscrewdriver(W)) + if(!a_left || !a_right) + to_chat(user, "BUG:Assembly part missing, please report this!") + return + a_left.toggle_secure() + a_right.toggle_secure() + secured = !secured + if(secured) + to_chat(user, "[src] is ready!") + else + to_chat(user, "[src] can now be taken apart!") + update_icon() return - - pickup() + else ..() - process_movement() - - Bump() - ..() - process_movement() - - throw_impact() // called when a throw stops - ..() - process_movement() - - attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess - if(a_left && a_right) - a_left.holder_movement() - a_right.holder_movement() - ..() - return + return - attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/screwdriver)) - if(!a_left || !a_right) - to_chat(user, "BUG:Assembly part missing, please report this!") - return - a_left.toggle_secure() - a_right.toggle_secure() - secured = !secured - if(secured) - to_chat(user, "\The [src] is ready!") - else - to_chat(user, "\The [src] can now be taken apart!") - update_icon() +/obj/item/assembly_holder/attack_self(mob/user) + add_fingerprint(user) + if(secured) + if(!a_left || !a_right) + to_chat(user, "Assembly part missing!") + return + if(istype(a_left, a_right.type))//If they are the same type it causes issues due to window code + switch(alert("Which side would you like to use?",,"Left","Right")) + if("Left") + a_left.attack_self(user) + if("Right") + a_right.attack_self(user) return else - ..() - return + a_left.attack_self(user) + a_right.attack_self(user) + else + var/turf/T = get_turf(src) + if(!T) + return FALSE + if(a_left) + a_left.holder = null + a_left.loc = T + if(a_right) + a_right.holder = null + a_right.loc = T + qdel(src) - attack_self(mob/user as mob) - src.add_fingerprint(user) - if(src.secured) - if(!a_left || !a_right) - to_chat(user, "Assembly part missing!") - return - if(istype(a_left,a_right.type))//If they are the same type it causes issues due to window code - switch(alert("Which side would you like to use?",,"Left","Right")) - if("Left") a_left.attack_self(user) - if("Right") a_right.attack_self(user) - return - else - a_left.attack_self(user) - a_right.attack_self(user) - else - var/turf/T = get_turf(src) - if(!T) return 0 - if(a_left) - a_left:holder = null - a_left.loc = T - if(a_right) - a_right:holder = null - a_right.loc = T - spawn(0) +/obj/item/assembly_holder/process_activation(obj/D, normal = TRUE, special = TRUE) + if(!D) + return FALSE + if(normal && a_right && a_left) + if(a_right != D) + a_right.pulsed(0) + if(a_left != D) + a_left.pulsed(0) + if(master) + master.receive_signal() + return TRUE + +/obj/item/assembly_holder/ex_act(severity) + switch(severity) + if(1) + qdel(src) + if(2) + if(prob(50)) qdel(src) - return - - - process_activation(var/obj/D, var/normal = 1, var/special = 1) - if(!D) return 0 - if((normal) && (a_right) && (a_left)) - if(a_right != D) - a_right.pulsed(0) - if(a_left != D) - a_left.pulsed(0) - if(master) - master.receive_signal() - return 1 - - - ex_act(severity) - switch(severity) - if(1.0) + if(3) + if(prob(25)) qdel(src) - return - if(2.0) - if(prob(50)) - qdel(src) - return - if(3.0) - if(prob(25)) - qdel(src) - return - return diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index 785e4549a47..3bbfe65bbc0 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -17,28 +17,29 @@ /obj/item/assembly/igniter/describe() - return "The igniter is [secured?"secured.":"unsecured."]" + return "The igniter is [secured ? "secured." : "unsecured."]" /obj/item/assembly/igniter/activate() - if(!..()) return 0//Cooldown check + if(!..()) + return FALSE//Cooldown check var/turf/location = get_turf(loc) - if(location) location.hotspot_expose(1000,1000) - if(istype(src.loc,/obj/item/assembly_holder)) - if(istype(src.loc.loc, /obj/structure/reagent_dispensers/fueltank/)) - var/obj/structure/reagent_dispensers/fueltank/tank = src.loc.loc + if(location) + location.hotspot_expose(1000,1000) + if(istype(loc, /obj/item/assembly_holder)) + if(istype(loc.loc, /obj/structure/reagent_dispensers/fueltank)) + var/obj/structure/reagent_dispensers/fueltank/tank = loc.loc if(tank) tank.boom(TRUE) - if(istype(src.loc.loc, /obj/item/reagent_containers/glass/beaker/)) - var/obj/item/reagent_containers/glass/beaker/beakerbomb = src.loc.loc + if(istype(loc.loc, /obj/item/reagent_containers/glass/beaker)) + var/obj/item/reagent_containers/glass/beaker/beakerbomb = loc.loc if(beakerbomb) beakerbomb.heat_beaker() - sparks.start() - return 1 + return TRUE -/obj/item/assembly/igniter/attack_self(mob/user as mob) +/obj/item/assembly/igniter/attack_self(mob/user) activate() add_fingerprint(user) return diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index c16537b46a0..91f8da7cc4b 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -7,10 +7,10 @@ bomb_name = "tripwire mine" - secured = 0 // toggle_secure()'ed in New() for correct adding to processing_objects, won't work otherwise + secured = FALSE // toggle_secure()'ed in New() for correct adding to processing_objects, won't work otherwise dir = EAST - var/on = 0 - var/visible = 1 + var/on = FALSE + var/visible = TRUE var/obj/effect/beam/i_beam/first = null var/obj/effect/beam/i_beam/last = null var/max_nesting_level = 10 @@ -33,17 +33,18 @@ to_chat(user, describe()) /obj/item/assembly/infra/activate() - if(!..()) return 0//Cooldown check + if(!..()) + return FALSE//Cooldown check on = !on update_icon() - return 1 + return TRUE /obj/item/assembly/infra/toggle_secure() secured = !secured if(secured) processing_objects.Add(src) else - on = 0 + on = FALSE if(first) qdel(first) processing_objects.Remove(src) @@ -94,7 +95,7 @@ first = I step(I, I.dir) if(first) - I.density = 0 + I.density = FALSE I.vis_spread(visible) I.limit = 8 I.process() @@ -110,9 +111,10 @@ qdel(first) /obj/item/assembly/infra/holder_movement() - if(!holder) return 0 + if(!holder) + return FALSE qdel(first) - return 1 + return TRUE /obj/item/assembly/infra/equipped(var/mob/user, var/slot) qdel(first) @@ -124,7 +126,7 @@ /obj/item/assembly/infra/proc/trigger_beam() if(!secured || !on || cooldown > 0) - return 0 + return FALSE pulse(0) audible_message("[bicon(src)] *beep* *beep*", null, 3) if(first) @@ -133,7 +135,7 @@ spawn(10) process_cooldown() -/obj/item/assembly/infra/interact(mob/user as mob)//TODO: change this this to the wire control panel +/obj/item/assembly/infra/interact(mob/user)//TODO: change this this to the wire control panel if(!secured) return user.set_machine(src) var/dat = {"Infrared Laser @@ -196,7 +198,7 @@ arm() /obj/item/assembly/infra/armed/stealth - visible = 0 + visible = FALSE /***************************IBeam*********************************/ @@ -209,11 +211,11 @@ var/obj/effect/beam/i_beam/previous = null var/obj/item/assembly/infra/master = null var/limit = null - var/visible = 0.0 + var/visible = FALSE var/left = null var/life_cycles = 0 var/life_cap = 20 - anchored = 1.0 + anchored = TRUE pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE @@ -241,9 +243,9 @@ if(!(visible)) invisibility = 101 else - invisibility = 0 + invisibility = FALSE else - invisibility = 0 + invisibility = FALSE if(!next && (limit > 0)) var/obj/effect/beam/i_beam/I = new /obj/effect/beam/i_beam(loc) @@ -255,7 +257,7 @@ next = I step(I, I.dir) if(next) - I.density = 0 + I.density = FALSE I.vis_spread(visible) I.limit = limit - 1 master.last = I @@ -267,7 +269,7 @@ /obj/effect/beam/i_beam/Bumped() hit() -/obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj) +/obj/effect/beam/i_beam/Crossed(atom/movable/AM) if(!isobj(AM) && !isliving(AM)) return if(istype(AM, /obj/effect)) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 011e46e7990..09e049b3921 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -4,128 +4,122 @@ icon_state = "mousetrap" materials = list(MAT_METAL=100) origin_tech = "combat=1;materials=2;engineering=1" - var/armed = 0 + var/armed = FALSE bomb_name = "contact mine" - examine(mob/user) - ..(user) - if(armed) - to_chat(user, "It looks like it's armed.") +/obj/item/assembly/mousetrap/examine(mob/user) + ..(user) + if(armed) + to_chat(user, "It looks like it's armed.") - activate() - if(..()) - armed = !armed - if(!armed) - if(ishuman(usr)) - var/mob/living/carbon/human/user = usr - if(((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50))) - to_chat(user, "Your hand slips, setting off the trigger.") - pulse(0) - update_icon() - if(usr) - playsound(usr.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) - - describe() - return "The pressure switch is [armed?"primed":"safe"]." - - update_icon() - if(armed) - icon_state = "mousetraparmed" - else - icon_state = "mousetrap" - if(holder) - holder.update_icon() - - proc/triggered(mob/target as mob, var/type = "feet") - if(!armed) - return - var/obj/item/organ/external/affecting = null - if(ishuman(target)) - var/mob/living/carbon/human/H = target - switch(type) - if("feet") - if(!H.shoes) - affecting = H.get_organ(pick("l_leg", "r_leg")) - H.Weaken(3) - if("l_hand", "r_hand") - if(!H.gloves) - affecting = H.get_organ(type) - H.Stun(3) - if(affecting) - affecting.receive_damage(1, 0) - else if(ismouse(target)) - var/mob/living/simple_animal/mouse/M = target - visible_message("SPLAT!") - M.splat() - playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) - layer = MOB_LAYER - 0.2 - armed = 0 - update_icon() - pulse(0) - - - attack_self(mob/living/user as mob) - if(!armed) - to_chat(user, "You arm [src].") - else - if(((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50))) - var/which_hand = "l_hand" - if(!user.hand) - which_hand = "r_hand" - triggered(user, which_hand) - user.visible_message("[user] accidentally sets off [src], breaking [user.p_their()] fingers.", \ - "You accidentally trigger [src]!") - return - to_chat(user, "You disarm [src].") +/obj/item/assembly/mousetrap/activate() + if(..()) armed = !armed - update_icon() - playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) - - - attack_hand(mob/living/user as mob) - if(armed) - if(((user.getBrainLoss() >= 60 || CLUMSY in user.mutations)) && prob(50)) - var/which_hand = "l_hand" - if(!user.hand) - which_hand = "r_hand" - triggered(user, which_hand) - user.visible_message("[user] accidentally sets off [src], breaking [user.p_their()] fingers.", \ - "You accidentally trigger [src]!") - return - ..() - - - Crossed(var/atom/movable/AM as mob|obj) - if(armed) - if(ishuman(AM)) - var/mob/living/carbon/H = AM - if(H.m_intent == MOVE_INTENT_RUN) - triggered(H) - H.visible_message("[H] accidentally steps on [src].", \ - "You accidentally step on [src]") - else if(ismouse(AM)) - triggered(AM) - else if(AM.density) // For mousetrap grenades, set off by anything heavy - triggered(AM) - ..() - - - on_found(mob/finder as mob) - if(armed) - finder.visible_message("[finder] accidentally sets off [src], breaking [finder.p_their()] fingers.", \ - "You accidentally trigger [src]!") - triggered(finder, finder.hand ? "l_hand" : "r_hand") - return 1 //end the search! - return 0 - - - hitby(A as mob|obj) if(!armed) - return ..() - visible_message("[src] is triggered by [A].") - triggered(null) + if(ishuman(usr)) + var/mob/living/carbon/human/user = usr + if((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50)) + to_chat(user, "Your hand slips, setting off the trigger.") + pulse(0) + update_icon() + if(usr) + playsound(usr.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) +/obj/item/assembly/mousetrap/describe() + return "The pressure switch is [armed ? "primed" : "safe"]." + +/obj/item/assembly/mousetrap/update_icon() + if(armed) + icon_state = "mousetraparmed" + else + icon_state = "mousetrap" + if(holder) + holder.update_icon() + +/obj/item/assembly/mousetrap/proc/triggered(mob/target, var/type = "feet") + if(!armed) + return + var/obj/item/organ/external/affecting = null + if(ishuman(target)) + var/mob/living/carbon/human/H = target + switch(type) + if("feet") + if(!H.shoes) + affecting = H.get_organ(pick("l_leg", "r_leg")) + H.Weaken(3) + if("l_hand", "r_hand") + if(!H.gloves) + affecting = H.get_organ(type) + H.Stun(3) + if(affecting) + affecting.receive_damage(1, 0) + else if(ismouse(target)) + var/mob/living/simple_animal/mouse/M = target + visible_message("SPLAT!") + M.splat() + playsound(loc, 'sound/effects/snap.ogg', 50, 1) + layer = MOB_LAYER - 0.2 + armed = FALSE + update_icon() + pulse(0) + +/obj/item/assembly/mousetrap/attack_self(mob/living/user) + if(!armed) + to_chat(user, "You arm [src].") + else + if((user.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && prob(50)) + var/which_hand = "l_hand" + if(!user.hand) + which_hand = "r_hand" + triggered(user, which_hand) + user.visible_message("[user] accidentally sets off [src], breaking [user.p_their()] fingers.", \ + "You accidentally trigger [src]!") + return + to_chat(user, "You disarm [src].") + armed = !armed + update_icon() + playsound(user.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -3) + +/obj/item/assembly/mousetrap/attack_hand(mob/living/user) + if(armed) + if((user.getBrainLoss() >= 60 || CLUMSY in user.mutations) && prob(50)) + var/which_hand = "l_hand" + if(!user.hand) + which_hand = "r_hand" + triggered(user, which_hand) + user.visible_message("[user] accidentally sets off [src], breaking [user.p_their()] fingers.", \ + "You accidentally trigger [src]!") + return + ..() + +/obj/item/assembly/mousetrap/Crossed(atom/movable/AM) + if(armed) + if(ishuman(AM)) + var/mob/living/carbon/H = AM + if(H.m_intent == MOVE_INTENT_RUN) + triggered(H) + H.visible_message("[H] accidentally steps on [src].", \ + "You accidentally step on [src]") + else if(ismouse(AM)) + triggered(AM) + else if(AM.density) // For mousetrap grenades, set off by anything heavy + triggered(AM) + ..() + +/obj/item/assembly/mousetrap/on_found(mob/finder) + if(armed) + finder.visible_message("[finder] accidentally sets off [src], breaking [finder.p_their()] fingers.", \ + "You accidentally trigger [src]!") + triggered(finder, finder.hand ? "l_hand" : "r_hand") + return TRUE //end the search! + return FALSE + +/obj/item/assembly/mousetrap/hitby(atom/movable/A) + if(!armed) + return ..() + visible_message("[src] is triggered by [A].") + triggered(null) /obj/item/assembly/mousetrap/armed icon_state = "mousetraparmed" diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index c08b9246e33..80e486170c2 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -19,11 +19,11 @@ return "The proximity sensor is [scanning ? "armed" : "disarmed"]." /obj/item/assembly/prox_sensor/activate() - if(!..()) - return 0 //Cooldown check + if(!..()) + return FALSE //Cooldown check timing = !timing update_icon() - return 0 + return FALSE /obj/item/assembly/prox_sensor/toggle_secure() secured = !secured @@ -39,14 +39,14 @@ /obj/item/assembly/prox_sensor/HasProximity(atom/movable/AM) if(!isobj(AM) && !isliving(AM)) return - if(istype(AM, /obj/effect)) + if(istype(AM, /obj/effect)) return if(AM.move_speed < 12) sense() /obj/item/assembly/prox_sensor/proc/sense() - if((!secured)||(!scanning)||(cooldown > 0)) - return 0 + if(!secured || !scanning || cooldown > 0) + return FALSE pulse(0) visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*") cooldown = 2 @@ -69,7 +69,7 @@ /obj/item/assembly/prox_sensor/proc/toggle_scan() if(!secured) - return 0 + return FALSE scanning = !scanning update_icon() @@ -95,7 +95,7 @@ /obj/item/assembly/prox_sensor/interact(mob/user)//TODO: Change this to the wires thingy if(!secured) user.show_message("The [name] is unsecured!") - return 0 + return FALSE var/second = time % 60 var/minute = (time - second) / 60 var/dat = text("Proximity Sensor\n[] []:[]\n- - + +\n", (timing ? "Arming" : "Not Arming"), minute, second) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 6a2019b9001..a71bbba6a59 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -8,7 +8,7 @@ wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE secured = 1 - var/receiving = 0 + var/receiving = FALSE bomb_name = "remote-control bomb" @@ -35,28 +35,25 @@ return ..() /obj/item/assembly/signaler/describe() - return "\The [src]'s power light is [receiving?"on":"off"]" + return "[src]'s power light is [receiving ? "on" : "off"]" /obj/item/assembly/signaler/activate() - if(cooldown > 0) return 0 + if(cooldown > 0) + return FALSE cooldown = 2 spawn(10) process_cooldown() signal() - return 1 + return TRUE /obj/item/assembly/signaler/update_icon() if(holder) holder.update_icon() return -/obj/item/assembly/signaler/interact(mob/user as mob, flag1) +/obj/item/assembly/signaler/interact(mob/user, flag1) var/t1 = "-------" -// if((src.b_stat && !( flag1 ))) -// t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? "Cut Wire" : "Mend Wire"), (src.wires & 2 ? "Cut Wire" : "Mend Wire"), (src.wires & 1 ? "Cut Wire" : "Mend Wire")) -// else -// t1 = "-------" Speaker: [src.listening ? "Engaged" : "Disengaged"]
var/dat = {" "} @@ -70,14 +67,14 @@ Frequency: - - - [format_frequency(src.frequency)] + [format_frequency(frequency)] + +
Code: - - - [src.code] + [code] + +
[t1] @@ -87,8 +84,6 @@ popup.set_content(dat) popup.open(0) onclose(user, "radio") - return - /obj/item/assembly/signaler/Topic(href, href_list) ..() @@ -105,10 +100,10 @@ set_frequency(new_frequency) if(href_list["code"]) - src.code += text2num(href_list["code"]) - src.code = round(src.code) - src.code = min(100, src.code) - src.code = max(1, src.code) + code += text2num(href_list["code"]) + code = round(code) + code = min(100, code) + code = max(1, code) if(href_list["receive"]) receiving = !receiving @@ -119,10 +114,9 @@ if(usr) attack_self(usr) - return - /obj/item/assembly/signaler/proc/signal() - if(!radio_connection) return + if(!radio_connection) + return var/datum/signal/signal = new signal.source = src @@ -135,27 +129,25 @@ if(usr) lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") - return - -/obj/item/assembly/signaler/pulse(var/radio = 0) - if(src.connected && src.wires) +/obj/item/assembly/signaler/pulse(var/radio = FALSE) + if(connected && wires) connected.Pulse(src) else return ..(radio) /obj/item/assembly/signaler/receive_signal(datum/signal/signal) - if( !receiving || !signal ) - return 0 + if(!receiving || !signal) + return FALSE if(signal.encryption != code) - return 0 + return FALSE - if(!(src.wires & WIRE_RADIO_RECEIVE)) return 0 + if(!(wires & WIRE_RADIO_RECEIVE)) + return FALSE pulse(1) - for(var/mob/O in hearers(1, src.loc)) + for(var/mob/O in hearers(1, loc)) O.show_message("[bicon(src)] *beep* *beep*", 3, "*beep* *beep*", 2) - return /obj/item/assembly/signaler/proc/set_frequency(new_frequency) if(!radio_controller) @@ -165,7 +157,6 @@ radio_controller.remove_object(src, frequency) frequency = new_frequency radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) - return // Embedded signaller used in anomalies. /obj/item/assembly/signaler/anomaly @@ -173,7 +164,7 @@ desc = "The neutralized core of an anomaly. It'd probably be valuable for research." icon_state = "anomaly core" item_state = "electronic" - receiving = 1 + receiving = TRUE /obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal) ..() diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index a585a689f2c..5b7eb6ca50a 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -5,136 +5,123 @@ materials = list(MAT_METAL=500, MAT_GLASS=50) origin_tech = "magnets=1;engineering=1" - secured = 0 + secured = FALSE bomb_name = "time bomb" - var/timing = 0 + var/timing = FALSE var/time = 10 - var/repeat = 0 + var/repeat = FALSE var/set_time = 10 - proc - timer_end() - - describe() - if(timing) - return "The timer is counting down from [time]!" - return "The timer is set for [time] seconds." - - activate() - if(!..()) return 0//Cooldown check - timing = !timing - update_icon() - return 0 - - - toggle_secure() - secured = !secured - if(secured) - processing_objects.Add(src) - else - timing = 0 - processing_objects.Remove(src) - update_icon() - return secured - - - timer_end() - if((!secured)||(cooldown > 0)) return 0 - pulse(0) - if(loc) - loc.visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*") - cooldown = 2 - spawn(10) - process_cooldown() - return - - - process() - if(timing && (time > 0)) - time -= 2 // 2 seconds per process() - if(timing && time <= 0) - timing = repeat - timer_end() - time = set_time - return - +/obj/item/assembly/timer/describe() + if(timing) + return "The timer is counting down from [time]!" + return "The timer is set for [time] seconds." +/obj/item/assembly/timer/activate() + if(!..()) + return FALSE//Cooldown check + timing = !timing update_icon() - overlays.Cut() - attached_overlays = list() - if(timing) - overlays += "timer_timing" - attached_overlays += "timer_timing" - if(holder) - holder.update_icon() + return FALSE + +/obj/item/assembly/timer/toggle_secure() + secured = !secured + if(secured) + processing_objects.Add(src) + else + timing = FALSE + processing_objects.Remove(src) + update_icon() + return secured + +/obj/item/assembly/timer/proc/timer_end() + if(!secured || cooldown > 0) + return FALSE + pulse(0) + if(loc) + loc.visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*") + cooldown = 2 + spawn(10) + process_cooldown() + +/obj/item/assembly/timer/process() + if(timing && (time > 0)) + time -= 2 // 2 seconds per process() + if(timing && time <= 0) + timing = repeat + timer_end() + time = set_time + +/obj/item/assembly/timer/update_icon() + overlays.Cut() + attached_overlays = list() + if(timing) + overlays += "timer_timing" + attached_overlays += "timer_timing" + if(holder) + holder.update_icon() + +/obj/item/assembly/timer/interact(mob/user as mob)//TODO: Have this use the wires + if(!secured) + user.show_message("The [name] is unsecured!") + return FALSE + var/second = time % 60 + var/minute = (time - second) / 60 + var/set_second = set_time % 60 + var/set_minute = (set_time - set_second) / 60 + if(second < 10) second = "0[second]" + if(set_second < 10) set_second = "0[set_second]" + + var/dat = {" + +

Timing Unit

+ [minute]:[second] [timing?"Stop":"Start"] Reset
+ Repeat: [repeat?"On":"Off"]
+ Timer set for + - - [set_minute]:[set_second] + + +
+
+

+ Refresh +

+ Close"} + var/datum/browser/popup = new(user, "timer", name, 400, 400) + popup.set_content(dat) + popup.open(0) + onclose(user, "timer") + +/obj/item/assembly/timer/Topic(href, href_list) + ..() + if(usr.incapacitated() || !in_range(loc, usr)) + usr << browse(null, "window=timer") + onclose(usr, "timer") return + if(href_list["time"]) + timing = !timing + if(timing && istype(holder, /obj/item/transfer_valve)) + message_admins("[key_name_admin(usr)] activated [src] attachment on [holder].") + investigate_log("[key_name(usr)] activated [src] attachment for [loc]", INVESTIGATE_BOMB) + log_game("[key_name(usr)] activated [src] attachment for [loc]") + update_icon() + if(href_list["reset"]) + time = set_time - interact(mob/user as mob)//TODO: Have this use the wires - if(!secured) - user.show_message("The [name] is unsecured!") - return 0 - var/second = time % 60 - var/minute = (time - second) / 60 - var/set_second = set_time % 60 - var/set_minute = (set_time - set_second) / 60 - if(second < 10) second = "0[second]" - if(set_second < 10) set_second = "0[set_second]" + if(href_list["repeat"]) + repeat = !repeat - var/dat = {" - -

Timing Unit

- [minute]:[second] [timing?"Stop":"Start"] Reset
- Repeat: [repeat?"On":"Off"]
- Timer set for - - - [set_minute]:[set_second] + + -
-
-

- Refresh -

- Close"} - var/datum/browser/popup = new(user, "timer", name, 400, 400) - popup.set_content(dat) - popup.open(0) - onclose(user, "timer") - return - - - Topic(href, href_list) - ..() - if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) - usr << browse(null, "window=timer") - onclose(usr, "timer") - return - - if(href_list["time"]) - timing = !timing - if(timing && istype(holder, /obj/item/transfer_valve)) - message_admins("[key_name_admin(usr)] activated [src] attachment on [holder].") - investigate_log("[key_name(usr)] activated [src] attachment for [loc]", INVESTIGATE_BOMB) - log_game("[key_name(usr)] activated [src] attachment for [loc]") - update_icon() - if(href_list["reset"]) + if(href_list["tp"]) + var/tp = text2num(href_list["tp"]) + set_time += tp + set_time = min(max(round(set_time), 6), 600) + if(!timing) time = set_time - if(href_list["repeat"]) - repeat = !repeat - - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - set_time += tp - set_time = min(max(round(set_time), 6), 600) - if(!timing) - time = set_time - - if(href_list["close"]) - usr << browse(null, "window=timer") - return - - if(usr) - attack_self(usr) - + if(href_list["close"]) + usr << browse(null, "window=timer") return + + if(usr) + attack_self(usr) diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm index 2dc6749bd73..e8462884cd4 100644 --- a/code/modules/assembly/voice.dm +++ b/code/modules/assembly/voice.dm @@ -41,12 +41,13 @@ /obj/item/assembly/voice/attack_self(mob/user) - if(!user || !secured) return 0 + if(!user || !secured) + return FALSE listening = !listening var/turf/T = get_turf(src) T.visible_message("[bicon(src)] beeps, \"[listening ? "Now" : "No longer"] recording input.\"") - return 1 + return TRUE /obj/item/assembly/voice/toggle_secure()