for-the-strength-from-which-he-gives-is-unerring

This commit is contained in:
Fox McCloud
2019-10-05 02:08:11 -04:00
parent 5170f3fbae
commit 67dc33ac3f
141 changed files with 722 additions and 542 deletions
+3 -1
View File
@@ -76,9 +76,11 @@
var/obj/item/stack/spacecash/C = O
if(pay_with_cash(C, user))
tokens += 1
return
return
if(panel_open && component_parts && istype(O, /obj/item/crowbar))
default_deconstruction_crowbar(O)
return
return ..()
/obj/machinery/arcade/update_icon()
return
@@ -54,6 +54,8 @@
/obj/machinery/computer/mob_battle_terminal/attackby(obj/item/O, mob/user)
if(istype(O, /obj/item/nanomob_card))
insert_card(O, user)
return
return ..()
/obj/machinery/computer/mob_battle_terminal/proc/insert_card(obj/item/nanomob_card/new_card, mob/user)
if(!new_card)
@@ -287,6 +289,8 @@
/obj/machinery/computer/mob_healer_terminal/attackby(obj/item/O, mob/user)
if(istype(O, /obj/item/nanomob_card))
heal_card(O, user)
return
return ..()
/obj/machinery/computer/mob_healer_terminal/proc/heal_card(obj/item/nanomob_card/patient, mob/user)
if(!patient)
+2
View File
@@ -53,6 +53,8 @@
if(tickets) //save the tickets!
print_tickets()
default_deconstruction_crowbar(O)
return
return ..()
/obj/machinery/prize_counter/attack_hand(mob/user as mob)
if(..())
+2 -2
View File
@@ -115,14 +115,14 @@
var/obj/item/assembly/A = W
if(!A.secured && !secured)
attach_assembly(A, user)
return
return
if(isscrewdriver(W))
if(toggle_secure())
to_chat(user, "<span class='notice'>[src] is ready!</span>")
else
to_chat(user, "<span class='notice'>[src] can now be attached!</span>")
return
..()
return ..()
/obj/item/assembly/process()
STOP_PROCESSING(SSobj, src)
+3 -1
View File
@@ -162,6 +162,7 @@ var/obj/machinery/gateway/centerstation/the_gateway = null
if(istype(W,/obj/item/multitool))
to_chat(user, "The gate is already calibrated, there is no work for you to do here.")
return
return ..()
/////////////////////////////////////Away////////////////////////
@@ -290,4 +291,5 @@ var/obj/machinery/gateway/centerstation/the_gateway = null
else
to_chat(user, "<span class='boldnotice'>Recalibration successful!</span><span class='notice'>: This gate's systems have been fine tuned. Travel to this gate will now be on target.</span>")
calibrated = 1
return
return
return ..()
@@ -256,4 +256,5 @@
to_chat(user, "<span class='danger'>Activating the machine has unlocked a way forward!</span>")
else
to_chat(user, "<span class='notice'>Your ID card already has all the access this machine can give.</span>")
. = 1
return
return ..()
+3 -3
View File
@@ -276,7 +276,7 @@ BLIND // can't see anything
to_chat(user, "<span class='notice'>[src] have already been clipped!</span>")
return
else
..()
return ..()
/obj/item/clothing/under/proc/set_sensors(mob/user as mob)
var/mob/M = user
@@ -474,9 +474,9 @@ BLIND // can't see anything
update_icon()
else
to_chat(user, "<span class='notice'>[src] have already had [p_their()] toes cut open!</span>")
return
return
else
..()
return ..()
/obj/item/clothing/shoes/proc/step_action(var/mob/living/carbon/human/H) //squeek squeek
SEND_SIGNAL(src, COMSIG_SHOES_STEP_ACTION)
+1 -1
View File
@@ -105,7 +105,7 @@ log transactions
SSnanoui.update_uis(src)
C.use(C.amount)
else
..()
return ..()
/obj/machinery/atm/attack_hand(mob/user)
if(..())
+1 -1
View File
@@ -71,7 +71,7 @@
else
to_chat(user, "[bicon(src)]<span class='warning'>Unable to connect to accounts database.</span>")
else
..()
return ..()
/obj/item/eftpos/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
+2 -1
View File
@@ -533,4 +533,5 @@ var/const/POS_HEADER = {"<html>
if(credits_held)
new /obj/item/stack/spacecash(loc, credits_held)
credits_held=0
..()
return
return ..()
@@ -108,7 +108,9 @@
if(default_unfasten_wrench(user, P))
return
default_deconstruction_crowbar(P)
if(default_deconstruction_crowbar(P))
return
return ..()
/obj/machinery/gibber/MouseDrop_T(mob/target, mob/user)
if(user.incapacitated() || !ishuman(user))
@@ -50,6 +50,8 @@
I.desc += ". This also has sprinkles."
else
to_chat(user, "<span class='notice'>This [I] already has sprinkles.</span>")
return
return ..()
/obj/machinery/icemachine/proc/validexchange(reag)
@@ -137,7 +137,7 @@ var/list/ingredients_source = list(
R.reagents.clear_reagents()
return 1
else
..()
return ..()
/obj/machinery/icecream_vat/proc/add(var/add_type, var/amount)
if(add_type <= ingredients.len)
@@ -54,7 +54,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
power_change()
return
default_deconstruction_crowbar(O)
if(default_deconstruction_crowbar(O))
return
if(istype(O, /obj/item/multitool))
if(!panel_open)
@@ -76,6 +77,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
var/obj/item/multitool/M = O
M.buffer = src
to_chat(user, "<span class='notice'>You log [src] in the [M]'s buffer.</span>")
return
if(stat != 0) //NOPOWER etc
return
if(istype(O, /obj/item/grab))
@@ -102,7 +104,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
to_chat(user, "<span class='warning'>The machine only accepts monkeys!</span>")
else
to_chat(user, "<span class='warning'>The machine only accepts monkeys!</span>")
return
return
return ..()
/obj/machinery/monkey_recycler/attack_hand(mob/user)
if(stat != 0) //NOPOWER etc
+1 -1
View File
@@ -126,7 +126,7 @@
to_chat(user, "<span class='notice'>You add [I] to the machine.</span>")
interact(user)
else
..()
return ..()
/obj/machinery/plantgenes/attack_hand(mob/user)
+1 -1
View File
@@ -1023,4 +1023,4 @@
to_chat(user, "<span class='notice'>You clear up [src]!</span>")
qdel(src)
else
..()
return ..()
+1
View File
@@ -10,6 +10,7 @@
if(default_unfasten_wrench(user, W))
power_change()
return
return ..()
/obj/machinery/computer/library/public/interact(var/mob/user)
if(interact_check(user))
+1 -1
View File
@@ -56,7 +56,7 @@
S.toggle_secure()
to_chat(user, "<span class='notice'>You unsecure and detach \the [S] from the I/O connection port.</span>")
return
..()
return ..()
/obj/machinery/logic_gate/convert/multitool_menu(var/mob/user, var/obj/item/multitool/P)
var/logic_state_string
+1
View File
@@ -212,6 +212,7 @@
if(panel_open && istype(O, /obj/item/crowbar))
default_deconstruction_crowbar(O)
return 1
return ..()
//////////////////////////////////////
// Attack procs //
@@ -49,6 +49,7 @@ GLOBAL_LIST(labor_sheet_values)
return
else
to_chat(user, "<span class='notice'>There's an ID inserted already.</span>")
return
return ..()
/obj/machinery/mineral/labor_claim_console/attack_hand(mob/user)
@@ -154,6 +155,7 @@ GLOBAL_LIST(labor_sheet_values)
if(istype(I, /obj/item/stack/sheet) && user.canUnEquip(I))
var/obj/item/stack/sheet/inp = I
points += inp.point_value * inp.amount
return
return ..()
/**********************Point Lookup Console**************************/
@@ -180,5 +182,5 @@ GLOBAL_LIST(labor_sheet_values)
to_chat(user, "<span class='notice'>Collect points by bringing smelted minerals to the Labor Shuttle stacking machine. Reach your quota to earn your release.</span>")
else
to_chat(user, "<span class='warning'>Error: Invalid ID</span>")
else
return ..()
return
return ..()
@@ -138,7 +138,7 @@
/obj/machinery/anomalous_crystal/attackby(obj/item/I, mob/user, params)
ActivationReaction(user,"weapon")
..()
return ..()
/obj/machinery/anomalous_crystal/bullet_act(obj/item/projectile/P, def_zone)
..()
+3 -3
View File
@@ -194,7 +194,7 @@
return
else
RedeemVoucher(I, user)
return
return
if(istype(I,/obj/item/card/id))
if(!powered())
return
@@ -206,8 +206,8 @@
C.forceMove(src)
inserted_id = C
interact(user)
return
..()
return
return ..()
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer)
var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit")
+3 -4
View File
@@ -10,10 +10,7 @@
pressure_resistance = 5 * ONE_ATMOSPHERE
/obj/structure/ore_box/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/t_scanner/adv_mining_scanner))
attack_hand(user)
return
else if(istype(W, /obj/item/stack/ore))
if(istype(W, /obj/item/stack/ore))
if(!user.drop_item())
return
W.forceMove(src)
@@ -30,6 +27,8 @@
if(do_after(user, 50 * C.toolspeed, target = src))
user.visible_message("<span class='notice'>[user] pries [src] apart.</span>", "<span class='notice'>You pry apart [src].</span>", "<span class='italics'>You hear splitting wood.</span>")
deconstruct(TRUE, user)
else
return ..()
/obj/structure/ore_box/attack_hand(mob/user)
if(Adjacent(user))
+3 -1
View File
@@ -50,8 +50,10 @@
playsound(loc, P.usesound, 50, 1)
anchored = !anchored
to_chat(user, "<span class='notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
else if(user.a_intent != INTENT_HARM)
to_chat(user, "<span class='warning'>You can't put [P] in [src]!</span>")
else
to_chat(user, "<span class='notice'>You can't put [P] in [src]!</span>")
return ..()
/obj/structure/filingcabinet/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
+2
View File
@@ -182,6 +182,8 @@
copyitem.forceMove(get_turf(src))
copyitem = null
updateUsrDialog()
else
return ..()
/obj/machinery/photocopier/proc/copy(var/obj/item/paper/copy)
var/obj/item/paper/c = new /obj/item/paper (loc)
+171 -156
View File
@@ -149,7 +149,7 @@
terminal.connect_to_network()
/obj/machinery/power/apc/New(turf/loc, ndir, building = 0)
if (!armor)
if(!armor)
armor = list("melee" = 20, "bullet" = 20, "laser" = 10, "energy" = 100, "bomb" = 30, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50)
..()
GLOB.apcs += src
@@ -435,227 +435,242 @@
//attack with an item - open/close cover, insert cell, or (un)lock interface
/obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params)
if(istype(user, /mob/living/silicon) && get_dist(src,user)>1)
if(issilicon(user) && get_dist(src,user)>1)
return src.attack_hand(user)
if(istype(W, /obj/item/crowbar) && opened)
if(has_electronics==1)
if(terminal)
to_chat(user, "<span class='warning'>Disconnect wires first.</span>")
if(istype(W, /obj/item/crowbar)) //Using crowbar
if(opened) // a) on open apc
if(has_electronics==1)
if(terminal)
to_chat(user, "<span class='warning'>Disconnect the wires first!</span>")
return
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You are trying to remove the power control board...</span>" )
if(do_after(user, 50*W.toolspeed, target = src))
if(has_electronics==1)
has_electronics = 0
if(stat & BROKEN)
user.visible_message(\
"[user.name] has broken the power control board inside [src.name]!",
"<span class='notice'>You break the charred power control board and remove the remains.</span>",
"<span class='italics'>You hear a crack.</span>")
return
//SSticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
else if(emagged) // We emag board, not APC's frame
emagged = FALSE
user.visible_message(
"[user.name] has discarded emaged power control board from [src.name]!",
"<span class='notice'>You discarded shorten board.</span>")
return
else if(malfhack) // AI hacks board, not APC's frame
user.visible_message(\
"[user.name] has discarded strangely programmed power control board from [src.name]!",
"<span class='notice'>You discarded strangely programmed board.</span>")
malfai = null
malfhack = 0
return
else
user.visible_message(\
"[user.name] has removed the power control board from [src.name]!",
"<span class='notice'>You remove the power control board.</span>")
new /obj/item/apc_electronics(loc)
return
else if(opened!=2) //cover isn't removed
opened = 0
coverlocked = TRUE //closing cover relocks it
update_icon()
return
else if(!(stat & BROKEN)) // b) on closed and not broken APC
if(coverlocked && !(stat & MAINT)) // locked...
to_chat(user, "<span class='warning'>The cover is locked and cannot be opened!</span>")
return
else if(panel_open) // wires are exposed
to_chat(user, "<span class='warning'>Exposed wires prevents you from opening it!</span>")
return
else
opened = 1
update_icon()
return
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You are trying to remove the power control board...")//lpeters - fixed grammar issues
if(do_after(user, 50 * W.toolspeed, target = src))
if(has_electronics==1)
has_electronics = 0
if((stat & BROKEN) || malfhack)
user.visible_message(\
"<span class='warning'>[user.name] has broken the power control board inside [src.name]!</span>",\
"<span class='notice'>You broke the charred power control board and remove the remains.</span>",
"You hear a crack!")
//ticker.mode:apcs-- //XSI said no and I agreed. -rastaf0
else
user.visible_message(\
"<span class='warning'>[user.name] has removed the power control board from [src.name]!</span>",\
"<span class='notice'>You remove the power control board.</span>")
new /obj/item/apc_electronics(loc)
else if(opened!=2) //cover isn't removed
opened = 0
update_icon()
else if(istype(W, /obj/item/crowbar) && !((stat & BROKEN) || malfhack) )
if(coverlocked && !(stat & MAINT))
to_chat(user, "<span class='warning'>The cover is locked and cannot be opened.</span>")
return
else
opened = 1
update_icon()
else if(istype(W, /obj/item/stock_parts/cell) && opened) // trying to put a cell inside
else if (istype(W, /obj/item/stock_parts/cell) && opened) // trying to put a cell inside
if(cell)
to_chat(user, "There is a power cell already installed.")
to_chat(user, "<span class='warning'>There is a power cell already installed!</span>")
return
else
if(stat & MAINT)
to_chat(user, "<span class='warning'>There is no connector for your power cell.</span>")
to_chat(user, "<span class='warning'>There is no connector for your power cell!</span>")
return
user.drop_item()
W.loc = src
if(!user.drop_item())
return
W.forceMove(src)
cell = W
user.visible_message(\
"<span class='warning'>[user.name] has inserted the power cell to [src.name]!</span>",\
"You insert the power cell.")
playsound(loc, W.usesound, 50, 1)
"[user.name] has inserted the power cell to [src.name]!",\
"<span class='notice'>You insert the power cell.</span>")
chargecount = 0
update_icon()
else if(istype(W, /obj/item/screwdriver)) // haxing
if(opened)
if(cell)
to_chat(user, "<span class='warning'>Close the APC first.</span>")//Less hints more mystery!
to_chat(user, "<span class='warning'>Close the APC first!</span>") //Less hints more mystery!
return
else
if(has_electronics==1 && terminal)
if(has_electronics==1)
has_electronics = 2
stat &= ~MAINT
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You screw the circuit electronics into place.")
to_chat(user, "<span class='notice'>You screw the circuit electronics into place.</span>")
else if(has_electronics==2)
has_electronics = 1
stat |= MAINT
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You unfasten the electronics.")
to_chat(user, "<span class='notice'>You unfasten the electronics.</span>")
else /* has_electronics==0 */
to_chat(user, "<span class='warning'>There is nothing to secure.</span>")
to_chat(user, "<span class='warning'>There is nothing to secure!</span>")
return
update_icon()
else if(emagged)
to_chat(user, "The interface is broken.")
to_chat(user, "<span class='warning'>The interface is broken!</span>")
else if((stat & MAINT) && !opened)
..() //its an empty closed frame... theres no wires to expose!
else
wiresexposed = !wiresexposed
to_chat(user, "The wires have been [wiresexposed ? "exposed" : "unexposed"].")
panel_open = !panel_open
to_chat(user, "The wires have been [panel_open ? "exposed" : "unexposed"]")
update_icon()
else if(istype(W, /obj/item/card/id)||istype(W, /obj/item/pda)) // trying to unlock the interface with an ID card
if(emagged)
to_chat(user, "The interface is broken.")
else if(opened)
to_chat(user, "You must close the cover to swipe an ID card.")
else if(wiresexposed)
to_chat(user, "You must close the panel.")
else if(stat & (BROKEN|MAINT))
to_chat(user, "Nothing happens.")
else
if(src.allowed(usr) && !isWireCut(APC_WIRE_IDSCAN))
locked = !locked
to_chat(user, "You [ locked ? "lock" : "unlock"] the APC interface.")
update_icon()
else
to_chat(user, "<span class='warning'>Access denied.</span>")
else if(istype(W, /obj/item/stack/cable_coil) && !terminal && opened && has_electronics!=2)
if(src.loc:intact)
to_chat(user, "<span class='warning'>You must remove the floor plating in front of the APC first.</span>")
else if(W.GetID()) // trying to unlock the interface with an ID card
togglelock(user)
else if(istype(W, /obj/item/stack/cable_coil) && opened)
var/turf/host_turf = get_turf(src)
if(!host_turf)
throw EXCEPTION("attackby on APC when it's not on a turf")
return
if(host_turf.intact)
to_chat(user, "<span class='warning'>You must remove the floor plating in front of the APC first!</span>")
return
else if(terminal) // it already have terminal
to_chat(user, "<span class='warning'>This APC is already wired!</span>")
return
else if(has_electronics == 0)
to_chat(user, "<span class='warning'>There is nothing to wire!</span>")
return
var/obj/item/stack/cable_coil/C = W
if(C.amount < 10)
to_chat(user, "<span class='warning'>You need more wires.</span>")
if(C.get_amount() < 10)
to_chat(user, "<span class='warning'>You need ten lengths of cable for APC!</span>")
return
to_chat(user, "You start adding cables to the APC frame...")
playsound(src.loc, C.usesound, 50, 1)
if(do_after(user, 20 * C.toolspeed, target = src))
if(C.amount >= 10 && !terminal && opened && has_electronics != 2)
user.visible_message("[user.name] adds cables to the APC frame.", \
"<span class='notice'>You start adding cables to the APC frame...</span>")
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
if(do_after(user, 20, target = src))
if(C.get_amount() < 10 || !C)
return
if(C.get_amount() >= 10 && !terminal && opened && has_electronics > 0)
var/turf/T = get_turf(src)
var/obj/structure/cable/N = T.get_cable_node()
if(prob(50) && electrocute_mob(usr, N, N, 1, TRUE))
do_sparks(5, 1, src)
do_sparks(5, TRUE, src)
return
C.use(10)
user.visible_message(\
"<span class='warning'>[user.name] has added cables to the APC frame!</span>",\
"You add cables to the APC frame.")
to_chat(user, "<span class='notice'>You add cables to the APC frame.</span>")
make_terminal()
terminal.connect_to_network()
else if(istype(W, /obj/item/wirecutters) && terminal && opened && has_electronics!=2)
if(src.loc:intact)
to_chat(user, "<span class='warning'>You must remove the floor plating in front of the APC first.</span>")
else if(istype(W, /obj/item/wirecutters) && terminal && opened)
terminal.dismantle(user, W)
else if(istype(W, /obj/item/apc_electronics) && opened)
if(has_electronics!=0) // there are already electronicks inside
to_chat(user, "<span class='warning'>You cannot put the board inside, there already is one!</span>")
return
to_chat(user, "You begin to cut the cables...")
playsound(src.loc, W.usesound, 50, 1)
if(do_after(user, 50 * W.toolspeed, target = src))
if(terminal && opened && has_electronics!=2)
if(prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
do_sparks(5, 1, src)
return
new /obj/item/stack/cable_coil(loc,10)
to_chat(user, "<span class='notice'>You cut the cables and dismantle the power terminal.</span>")
qdel(terminal) // qdel
else if(istype(W, /obj/item/apc_electronics) && opened && has_electronics==0 && !((stat & BROKEN) || malfhack))
to_chat(user, "You trying to insert the power control board into the frame...")
playsound(src.loc, W.usesound, 50, 1)
if(do_after(user, 10 * W.toolspeed, target = src))
else if(stat & BROKEN)
to_chat(user, "<span class='warning'>You cannot put the board inside, the frame is damaged!</span>")
return
user.visible_message("[user.name] inserts the power control board into [src].", \
"<span class='notice'>You start to insert the power control board into the frame...</span>")
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
if(do_after(user, 10, target = src))
if(has_electronics==0)
has_electronics = 1
locked = 0
locked = FALSE
to_chat(user, "<span class='notice'>You place the power control board inside the frame.</span>")
qdel(W) // qdel
else if(istype(W, /obj/item/apc_electronics) && opened && has_electronics==0 && ((stat & BROKEN) || malfhack))
to_chat(user, "<span class='warning'>You cannot put the board inside, the frame is damaged.</span>")
return
qdel(W)
else if(istype(W, /obj/item/weldingtool) && opened && has_electronics==0 && !terminal)
var/obj/item/weldingtool/WT = W
if(WT.get_fuel() < 3)
to_chat(user, "<span class='warning'>You need more welding fuel to complete this task.</span>")
to_chat(user, "<span class='warning'>You need more welding fuel to complete this task!</span>")
return
user.visible_message("<span class='warning'>[user.name] welds [src].</span>", \
"You start welding the APC frame...", \
"You hear welding.")
user.visible_message("[user.name] welds [src].", \
"<span class='notice'>You start welding the APC frame...</span>", \
"<span class='italics'>You hear welding.</span>")
playsound(src.loc, WT.usesound, 50, 1)
if(do_after(user, 50 * WT.toolspeed, target = src))
if(!src || !WT.remove_fuel(3, user)) return
if(emagged || malfhack || (stat & BROKEN) || opened==2)
if(do_after(user, 50*W.toolspeed, target = src))
if(!src || !WT.remove_fuel(3, user))
return
if((stat & BROKEN) || opened==2)
new /obj/item/stack/sheet/metal(loc)
user.visible_message(\
"<span class='warning'>[src] has been cut apart by [user.name] with the weldingtool.</span>",\
"<span class='notice'>You disassembled the broken APC frame.</span>",\
"You hear welding.")
"[user.name] has cut [src] apart with [W].",\
"<span class='notice'>You disassembled the broken APC frame.</span>")
else
new /obj/item/mounted/frame/apc_frame(loc)
user.visible_message(\
"<span class='warning'>[src] has been cut from the wall by [user.name] with the weldingtool.</span>",\
"<span class='notice'>You cut the APC frame from the wall.</span>",\
"You hear welding.")
qdel(src) // qdel
"[user.name] has cut [src] from the wall with [W].",\
"<span class='notice'>You cut the APC frame from the wall.</span>")
qdel(src)
return
else if(istype(W, /obj/item/mounted/frame/apc_frame) && opened)
if(!(stat & BROKEN || opened==2 || obj_integrity < max_integrity)) // There is nothing to repair
to_chat(user, "<span class='warning'>You found no reason for repairing this APC</span>")
return
if(!(stat & BROKEN) && opened==2) // Cover is the only thing broken, we do not need to remove elctronicks to replace cover
user.visible_message("[user.name] replaces missing APC's cover.",\
"<span class='notice'>You begin to replace APC's cover...</span>")
if(do_after(user, 20, target = src)) // replacing cover is quicker than replacing whole frame
to_chat(user, "<span class='notice'>You replace missing APC's cover.</span>")
qdel(W)
opened = 1
update_icon()
return
else if(istype(W, /obj/item/mounted/frame/apc_frame) && opened && emagged)
emagged = 0
if(opened==2)
opened = 1
user.visible_message(\
"<span class='warning'>[user.name] has replaced the damaged APC frontal panel with a new one.</span>",\
"You replace the damaged APC frontal panel with a new one.")
qdel(W)
update_icon()
else if(istype(W, /obj/item/mounted/frame/apc_frame) && opened && ((stat & BROKEN) || malfhack))
if(has_electronics)
to_chat(user, "You cannot repair this APC until you remove the electronics still inside.")
to_chat(user, "<span class='warning'>You cannot repair this APC until you remove the electronics still inside!</span>")
return
to_chat(user, "You begin to replace the damaged APC frame...")
if(do_after(user, 50 * W.toolspeed, target = src))
user.visible_message(\
"<span class='notice'>[user.name] has replaced the damaged APC frame with new one.</span>",\
"You replace the damaged APC frame with new one.")
user.visible_message("[user.name] replaces the damaged APC frame with a new one.",\
"<span class='notice'>You begin to replace the damaged APC frame...</span>")
if(do_after(user, 50, target = src))
to_chat(user, "<span class='notice'>You replace the damaged APC frame with a new one.</span>")
qdel(W)
stat &= ~BROKEN
malfai = null
malfhack = 0
obj_integrity = max_integrity
if(opened==2)
opened = 1
update_icon()
return
else if(panel_open && !opened && is_wire_tool(W))
wires.Interact(user)
else
if(((stat & BROKEN) || malfhack) \
&& !opened \
&& ( \
(W.force >= 5 && W.w_class >= WEIGHT_CLASS_NORMAL) \
|| istype(W,/obj/item/crowbar) \
) \
&& prob(20) )
opened = 2
user.visible_message("<span class='danger'>The APC cover was knocked down with the [W.name] by [user.name]!</span>", \
"<span class='danger'>You knock down the APC cover with your [W.name]!</span>", \
"You hear a bang.")
return ..()
/obj/machinery/power/apc/proc/togglelock(mob/living/user)
if(emagged)
to_chat(user, "<span class='warning'>The interface is broken!</span>")
else if(opened)
to_chat(user, "<span class='warning'>You must close the cover to swipe an ID card!</span>")
else if(panel_open)
to_chat(user, "<span class='warning'>You must close the panel!</span>")
else if(stat & (BROKEN|MAINT))
to_chat(user, "<span class='warning'>Nothing happens!</span>")
else
if(allowed(usr) && !isWireCut(APC_WIRE_IDSCAN) && !malfhack)
locked = !locked
to_chat(user, "<span class='notice'>You [ locked ? "lock" : "unlock"] the APC interface.</span>")
update_icon()
else
if(istype(user, /mob/living/silicon))
return src.attack_hand(user)
if(!opened && wiresexposed && \
(istype(W, /obj/item/multitool) || \
istype(W, /obj/item/wirecutters) || istype(W, /obj/item/assembly/signaler)))
return src.attack_hand(user)
if(W.flags & NOBLUDGEON)
return
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
user.visible_message("<span class='warning'>The [src.name] has been hit with the [W.name] by [user.name]!</span>", \
"<span class='warning'>You hit the [src.name] with your [W.name]!</span>", \
"You hear a bang.")
to_chat(user, "<span class='warning'>Access denied.</span>")
/obj/machinery/power/apc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if((!(stat & BROKEN) || malfai))
+1 -1
View File
@@ -185,7 +185,7 @@
to_chat(user, "<span class='notice'>You reverse the generator's circulator settings. The cold circulator is now on the [dir2text(cold_dir)] side, and the heat circulator is now on the [dir2text(hot_dir)] side.</span>")
update_desc()
else
..()
return ..()
/obj/machinery/power/generator/proc/get_menu(include_link = 1)
var/t = ""
+8 -5
View File
@@ -179,13 +179,14 @@ var/const/GRAV_NEEDS_WRENCH = 3
// Fixing the gravity generator.
/obj/machinery/gravity_generator/main/attackby(obj/item/I as obj, mob/user as mob, params)
var/old_broken_state = broken_state
switch(broken_state)
if(GRAV_NEEDS_SCREWDRIVER)
if(istype(I, /obj/item/screwdriver))
to_chat(user, "<span class='notice'>You secure the screws of the framework.</span>")
playsound(src.loc, I.usesound, 50, 1)
broken_state++
update_icon()
return
if(GRAV_NEEDS_WELDING)
if(istype(I, /obj/item/weldingtool))
var/obj/item/weldingtool/WT = I
@@ -193,6 +194,8 @@ var/const/GRAV_NEEDS_WRENCH = 3
to_chat(user, "<span class='notice'>You mend the damaged framework.</span>")
playsound(src.loc, WT.usesound, 50, 1)
broken_state++
update_icon()
return
if(GRAV_NEEDS_PLASTEEL)
if(istype(I, /obj/item/stack/sheet/plasteel))
var/obj/item/stack/sheet/plasteel/PS = I
@@ -201,17 +204,17 @@ var/const/GRAV_NEEDS_WRENCH = 3
to_chat(user, "<span class='notice'>You add the plating to the framework.</span>")
playsound(src.loc, PS.usesound, 75, 1)
broken_state++
update_icon()
else
to_chat(user, "<span class='notice'>You need 10 sheets of plasteel.</span>")
return
if(GRAV_NEEDS_WRENCH)
if(istype(I, /obj/item/wrench))
to_chat(user, "<span class='notice'>You secure the plating to the framework.</span>")
playsound(src.loc, I.usesound, 75, 1)
set_fix()
else
..()
if(old_broken_state != broken_state)
update_icon()
return
return ..()
/obj/machinery/gravity_generator/main/attack_hand(mob/user as mob)
if(!..())
+2
View File
@@ -307,6 +307,8 @@
return
else if(istype(O, /obj/item/crowbar) && panel_open)
default_deconstruction_crowbar(O)
else
return ..()
/obj/machinery/power/port_gen/pacman/attack_hand(mob/user as mob)
..()
+1 -2
View File
@@ -95,8 +95,7 @@ var/global/list/rad_collectors = list()
to_chat(user, "<span class='warning'>Access denied!</span>")
return 1
else
..()
return 1
return ..()
/obj/machinery/power/rad_collector/obj_break(damage_flag)
if(!(stat & BROKEN) && !(flags & NODECONSTRUCT))
+3 -3
View File
@@ -342,10 +342,10 @@
if(exchange_parts(user, W))
return
default_deconstruction_crowbar(W)
if(default_deconstruction_crowbar(W))
return
..()
return
return ..()
/obj/machinery/power/emitter/emag_act(var/mob/living/user as mob)
if(!emagged)
@@ -140,8 +140,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
if(istool(W))
if(process_tool_hit(W,user))
return
..()
return
return..()
/obj/structure/particle_accelerator/deconstruct(disassembled = TRUE)
if(!(flags & NODECONSTRUCT))
@@ -310,7 +309,7 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
if(istool(W))
if(process_tool_hit(W,user))
return
..()
return ..()
/obj/machinery/particle_accelerator/proc/update_state()
return 0
+3 -1
View File
@@ -224,7 +224,9 @@
return
//crowbarring it !
default_deconstruction_crowbar(I)
if(default_deconstruction_crowbar(I))
return
return ..()
/obj/machinery/power/smes/disconnect_terminal()
if(terminal)
+8 -9
View File
@@ -243,14 +243,14 @@
qdel(W)
user.visible_message("[user] inserts the electronics into the solar assembly.", "<span class='notice'>You insert the electronics into the solar assembly.</span>")
return 1
else if(istype(W, /obj/item/crowbar))
new /obj/item/tracker_electronics(src.loc)
tracker = 0
playsound(loc, W.usesound, 50, 1)
user.visible_message("[user] takes out the electronics from the solar assembly.", "<span class='notice'>You take out the electronics from the solar assembly.</span>")
return 1
else
if(istype(W, /obj/item/crowbar))
new /obj/item/tracker_electronics(src.loc)
tracker = 0
playsound(loc, W.usesound, 50, 1)
user.visible_message("[user] takes out the electronics from the solar assembly.", "<span class='notice'>You take out the electronics from the solar assembly.</span>")
return 1
..()
return ..()
//
// Solar Control Computer
@@ -425,8 +425,7 @@
A.anchored = 1
qdel(src)
else
src.attack_hand(user)
return
return ..()
/obj/machinery/power/solar_control/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
+41
View File
@@ -33,3 +33,44 @@
invisibility = 0
icon_state = "term"
/obj/machinery/power/proc/can_terminal_dismantle()
. = 0
/obj/machinery/power/apc/can_terminal_dismantle()
. = 0
if(opened)
. = 1
/obj/machinery/power/smes/can_terminal_dismantle()
. = 0
if(panel_open)
. = 1
/obj/machinery/power/terminal/proc/dismantle(mob/living/user, obj/item/W)
if(isturf(loc))
var/turf/T = loc
if(T.intact)
to_chat(user, "<span class='warning'>You must first expose the power terminal!</span>")
return
if(!master || master.can_terminal_dismantle())
user.visible_message("[user.name] dismantles the power terminal from [master].", \
"<span class='notice'>You begin to cut the cables...</span>")
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
if(do_after(user, 50*W.toolspeed, target = src))
if(!master || master.can_terminal_dismantle())
if(prob(50) && electrocute_mob(user, powernet, src, 1, TRUE))
do_sparks(5, TRUE, master)
return
new /obj/item/stack/cable_coil(loc, 10)
to_chat(user, "<span class='notice'>You cut the cables and dismantle the power terminal.</span>")
qdel(src)
/obj/machinery/power/terminal/attackby(obj/item/W, mob/living/user, params)
if(istype(W, /obj/item/wirecutters))
dismantle(user, W)
else
return ..()
+1 -1
View File
@@ -54,7 +54,7 @@
wires.Interact(user)
else
..()
return ..()
/obj/machinery/power/tesla_coil/tesla_act(var/power)
if(anchored && !panel_open)
+1 -1
View File
@@ -106,7 +106,7 @@
speed = 0
update_icon()
return
..()
return ..()
#undef BASE_MOVE_DELAY
#undef MAX_SPEED
+6 -2
View File
@@ -128,7 +128,9 @@
if(exchange_parts(user, I))
return
default_deconstruction_crowbar(I)
if(default_deconstruction_crowbar(I))
return
return ..()
/obj/machinery/power/compressor/CanAtmosPass(turf/T)
return !density
@@ -283,7 +285,9 @@
if(exchange_parts(user, I))
return
default_deconstruction_crowbar(I)
if(default_deconstruction_crowbar(I))
return
return ..()
/obj/machinery/power/turbine/interact(mob/user)
@@ -87,6 +87,8 @@
eject_beaker()
default_deconstruction_crowbar(I)
return 1
return
return ..()
/obj/machinery/chem_heater/attack_hand(mob/user)
ui_interact(user)
@@ -343,8 +343,6 @@
else if(istype(I, /obj/item/screwdriver))
if(beaker)
beaker.loc = get_turf(src)
..()
return
beaker.forceMove(get_turf(src))
else
..()
return ..()
+3 -1
View File
@@ -21,7 +21,7 @@
/obj/structure/reagent_dispensers/attackby(obj/item/I, mob/user, params)
if(I.is_refillable())
return FALSE //so we can refill them via their afterattack.
. = ..()
return ..()
/obj/structure/reagent_dispensers/New()
create_reagents(tank_volume)
@@ -260,6 +260,8 @@
user.visible_message("[user] has secured [src]'s floor casters.", \
"<span class='notice'>You have secured [src]'s floor casters.</span>")
anchored = 1
return
return ..()
/obj/structure/reagent_dispensers/beerkeg
name = "beer keg"
@@ -76,6 +76,8 @@
new /obj/item/c_tube( get_turf(user) )
else
to_chat(user, "<span class='notice'>You need more paper.</span>")
else
return ..()
/obj/item/smallDelivery
name = "small parcel"
@@ -141,6 +143,8 @@
new /obj/item/c_tube( get_turf(user) )
else
to_chat(user, "<span class='notice'>You need more paper.</span>")
else
return ..()
/obj/item/stack/packageWrap
name = "package wrapper"
+2
View File
@@ -148,6 +148,8 @@
griefProtection()
default_deconstruction_crowbar(O)
return 1
else
return ..()
/obj/machinery/r_n_d/server/attack_hand(mob/user as mob)
if(disabled)
@@ -131,7 +131,7 @@
monkeys++
to_chat(user, "<span class='notice'>You feed [O] to [src]. It now has [monkeys] monkey cubes stored.</span>")
qdel(O)
return
return
else if(istype(O, /obj/item/slimepotion/slime))
var/replaced = FALSE
if(user.drop_item())
@@ -140,7 +140,7 @@
replaced = TRUE
current_potion = O
to_chat(user, "<span class='notice'>You load [O] in the console's potion slot[replaced ? ", replacing the one that was there before" : ""].</span>")
return
return
else if(istype(O, /obj/item/storage/bag))
var/obj/item/storage/P = O
var/loaded = 0
@@ -159,7 +159,7 @@
connected_recycler = I.buffer
connected_recycler.connected += src
return
..()
return ..()
/datum/action/innate/slime_place
name = "Place Slimes"
@@ -48,6 +48,8 @@
broadcast_request() //This is the device making the initial event request. It needs to broadcast to other devices
else
to_chat(user, "<span class='warning'>Access denied.</span>")
return
return ..()
/obj/machinery/keycard_auth/power_change()
if(powered(ENVIRON))
+1 -2
View File
@@ -25,8 +25,7 @@
/obj/structure/spacepod_frame/attackby(obj/item/W as obj, mob/user as mob, params)
if(!construct || !construct.action(W, user))
..()
return
return ..()
/obj/structure/spacepod_frame/attack_hand()
return
+2 -2
View File
@@ -159,7 +159,7 @@
enabled = 1
user.show_message("<span class='notice'>You enable \the [src]'s power.</span>")
else
..()
return ..()
/*
///////////////////////////////////////
@@ -272,4 +272,4 @@
else
to_chat(user, "<span class='warning'>This key is already ground!</span>")
else
..()
return ..()
+6 -1
View File
@@ -45,11 +45,14 @@
var/obj/item/multitool/M = I
M.buffer = src
to_chat(user, "<span class = 'caution'>You save the data in the [I.name]'s buffer.</span>")
return
if(exchange_parts(user, I))
return
default_deconstruction_crowbar(I)
if(default_deconstruction_crowbar(I))
return
return ..()
//CARGO TELEPAD//
@@ -87,6 +90,8 @@
new /obj/item/stack/sheet/metal(get_turf(src))
new /obj/item/stack/sheet/glass(get_turf(src))
qdel(src)
else
return ..()
///TELEPAD CALLER///
/obj/item/telepad_beacon
+1 -1
View File
@@ -73,7 +73,7 @@
to_chat(user, "<span class = 'caution'>You upload the data from the [W.name]'s buffer.</span>")
updateUsrDialog()
else
..()
return ..()
/obj/machinery/computer/telescience/emag_act(user as mob)
if(!emagged)