mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
Merge pull request #6758 from Menshin/crowbar_prying
Some machinery tweaking + crowbar prying added
This commit is contained in:
+70
-84
@@ -289,9 +289,7 @@
|
||||
icon_state = "scanner"
|
||||
density = 1
|
||||
var/locked = 0
|
||||
var/open = 0
|
||||
anchored = 1
|
||||
interact_offline = 1
|
||||
use_power = 1
|
||||
idle_power_usage = 50
|
||||
active_power_usage = 300
|
||||
@@ -327,11 +325,11 @@
|
||||
|
||||
//no power or maintenance
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
icon_state = initial(icon_state)+ (open ? "_open" : "") + "_unpowered"
|
||||
icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_unpowered"
|
||||
return
|
||||
|
||||
if((stat & MAINT) || panel_open)
|
||||
icon_state = initial(icon_state)+ (open ? "_open" : "") + "_maintenance"
|
||||
icon_state = initial(icon_state)+ (state_open ? "_open" : "") + "_maintenance"
|
||||
return
|
||||
|
||||
//running and someone in there
|
||||
@@ -340,23 +338,32 @@
|
||||
return
|
||||
|
||||
//running
|
||||
icon_state = initial(icon_state)+ (open ? "_open" : "")
|
||||
icon_state = initial(icon_state)+ (state_open ? "_open" : "")
|
||||
|
||||
/obj/machinery/dna_scannernew/power_change()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/dna_scannernew/proc/toggle_open(mob/user=usr)
|
||||
if(!user)
|
||||
/obj/machinery/dna_scannernew/proc/toggle_open(var/mob/user)
|
||||
if(panel_open)
|
||||
user << "<span class='notice'>Close the maintenance panel first.</span>"
|
||||
return
|
||||
if(open) return close(user)
|
||||
else return open(user)
|
||||
|
||||
if(state_open)
|
||||
close_machine()
|
||||
return
|
||||
|
||||
else if(locked)
|
||||
user << "<span class='notice'>The bolts are locked down, securing the door shut.</span>"
|
||||
return
|
||||
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/dna_scannernew/container_resist()
|
||||
var/mob/living/user = usr
|
||||
var/breakout_time = 2
|
||||
if(open || !locked) //Open and unlocked, no need to escape
|
||||
open = 1
|
||||
if(state_open || !locked) //Open and unlocked, no need to escape
|
||||
state_open = 1
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
@@ -364,104 +371,83 @@
|
||||
user.visible_message("<span class='warning'>You hear a metallic creaking from [src]!</span>")
|
||||
|
||||
if(do_after(user,(breakout_time*60*10))) //minutes * 60seconds * 10deciseconds
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || open || !locked)
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
||||
return
|
||||
|
||||
locked = 0
|
||||
visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>")
|
||||
user << "<span class='notice'>You successfully break out of [src]!</span>"
|
||||
|
||||
open(user)
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/dna_scannernew/proc/close(mob/user)
|
||||
if(open)
|
||||
if(panel_open)
|
||||
user << "<span class='notice'>Close the maintenance panel first.</span>"
|
||||
return 0
|
||||
open = 0
|
||||
density = 1
|
||||
for(var/mob/living/carbon/C in loc)
|
||||
if(C.buckled) continue
|
||||
if(C.client)
|
||||
C.client.perspective = EYE_PERSPECTIVE
|
||||
C.client.eye = src
|
||||
occupant = C
|
||||
C.loc = src
|
||||
C.stop_pulling()
|
||||
break
|
||||
update_icon()
|
||||
/obj/machinery/dna_scannernew/close_machine()
|
||||
if(!state_open)
|
||||
return 0
|
||||
|
||||
// search for ghosts, if the corpse is empty and the scanner is connected to a cloner
|
||||
if(occupant)
|
||||
if(locate(/obj/machinery/computer/cloning, get_step(src, NORTH)) \
|
||||
|| locate(/obj/machinery/computer/cloning, get_step(src, SOUTH)) \
|
||||
|| locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \
|
||||
|| locate(/obj/machinery/computer/cloning, get_step(src, WEST)))
|
||||
..()
|
||||
|
||||
var/mob/dead/observer/ghost = occupant.get_ghost()
|
||||
if(ghost)
|
||||
ghost << "<span class='ghostalert'>Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned!</span> (Verbs -> Ghost -> Re-enter corpse)"
|
||||
ghost << sound('sound/effects/genetics.ogg')
|
||||
return 1
|
||||
// search for ghosts, if the corpse is empty and the scanner is connected to a cloner
|
||||
if(occupant)
|
||||
if(locate(/obj/machinery/computer/cloning, get_step(src, NORTH)) \
|
||||
|| locate(/obj/machinery/computer/cloning, get_step(src, SOUTH)) \
|
||||
|| locate(/obj/machinery/computer/cloning, get_step(src, EAST)) \
|
||||
|| locate(/obj/machinery/computer/cloning, get_step(src, WEST)))
|
||||
|
||||
/obj/machinery/dna_scannernew/proc/open(mob/user)
|
||||
if(!open)
|
||||
if(panel_open)
|
||||
user << "<span class='notice'>Close the maintenance panel first.</span>"
|
||||
return
|
||||
if(locked)
|
||||
user << "<span class='notice'>The bolts are locked down, securing the door shut.</span>"
|
||||
return
|
||||
var/turf/T = get_turf(src)
|
||||
if(T)
|
||||
open = 1
|
||||
density = 0
|
||||
T.contents += contents
|
||||
if(occupant)
|
||||
if(occupant.client)
|
||||
occupant.client.eye = occupant
|
||||
occupant.client.perspective = MOB_PERSPECTIVE
|
||||
occupant = null
|
||||
update_icon()
|
||||
return 1
|
||||
var/mob/dead/observer/ghost = occupant.get_ghost()
|
||||
if(ghost)
|
||||
ghost << "<span class='ghostalert'>Your corpse has been placed into a cloning scanner. Return to your body if you want to be cloned!</span> (Verbs -> Ghost -> Re-enter corpse)"
|
||||
ghost << sound('sound/effects/genetics.ogg')
|
||||
return 1
|
||||
|
||||
/obj/machinery/dna_scannernew/open_machine()
|
||||
if(state_open)
|
||||
return 0
|
||||
|
||||
..()
|
||||
|
||||
return 1
|
||||
|
||||
/obj/machinery/dna_scannernew/relaymove(mob/user as mob)
|
||||
if(user.stat)
|
||||
if(user.stat || locked)
|
||||
return
|
||||
open(user)
|
||||
|
||||
open_machine()
|
||||
return
|
||||
|
||||
/obj/machinery/dna_scannernew/attackby(obj/item/weapon/grab/G, mob/user)
|
||||
/obj/machinery/dna_scannernew/attackby(var/obj/item/I, mob/user)
|
||||
|
||||
if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, G))//sent icon_state is irrelevant...
|
||||
if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I))//sent icon_state is irrelevant...
|
||||
update_icon()//..since we're updating the icon here, since the scanner can be unpowered when opened/closed
|
||||
return
|
||||
|
||||
if(exchange_parts(user, G))
|
||||
if(exchange_parts(user, I))
|
||||
return
|
||||
|
||||
if(istype(G, /obj/item/weapon/crowbar))
|
||||
if(panel_open)
|
||||
for(var/obj/I in contents) // in case there is something in the scanner
|
||||
I.loc = src.loc
|
||||
default_deconstruction_crowbar(G)
|
||||
if(default_pry_open(I))
|
||||
return
|
||||
|
||||
if(!istype(G, /obj/item/weapon/grab) || !ismob(G.affecting))
|
||||
if(default_deconstruction_crowbar(I))
|
||||
return
|
||||
if(!open)
|
||||
user << "<span class='notice'>Open the scanner first.</span>"
|
||||
return
|
||||
var/mob/M = G.affecting
|
||||
M.loc = loc
|
||||
user.stop_pulling()
|
||||
qdel(G)
|
||||
|
||||
if(istype(I, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = I
|
||||
if(!ismob(G.affecting))
|
||||
return
|
||||
|
||||
if(!state_open)
|
||||
user << "<span class='notice'>Open the scanner first.</span>"
|
||||
return
|
||||
|
||||
var/mob/M = G.affecting
|
||||
M.loc = loc
|
||||
user.stop_pulling()
|
||||
qdel(G)
|
||||
|
||||
/obj/machinery/dna_scannernew/attack_hand(mob/user)
|
||||
if(..())
|
||||
if(..(user,1,0)) //don't set the machine, since there's no dialog
|
||||
return
|
||||
|
||||
toggle_open(user)
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/machinery/dna_scannernew/blob_act()
|
||||
if(prob(75))
|
||||
@@ -555,7 +541,7 @@
|
||||
else
|
||||
occupant_status += "<span class='bad'>No subject detected</span></div></div>"
|
||||
|
||||
if(connected.open)
|
||||
if(connected.state_open)
|
||||
scanner_status = "Open"
|
||||
else
|
||||
scanner_status = "Closed"
|
||||
@@ -593,8 +579,8 @@
|
||||
status += "</div>" // Close statusDisplay div
|
||||
var/buttons = "<a href='?src=\ref[src];'>Scan</a> "
|
||||
if(connected)
|
||||
buttons += " <a href='?src=\ref[src];task=toggleopen;'>[connected.open ? "Close" : "Open"] Scanner</a> "
|
||||
if (connected.open)
|
||||
buttons += " <a href='?src=\ref[src];task=toggleopen;'>[connected.state_open ? "Close" : "Open"] Scanner</a> "
|
||||
if (connected.state_open)
|
||||
buttons += "<span class='linkOff'>[connected.locked ? "Unlock" : "Lock"] Scanner</span> "
|
||||
else
|
||||
buttons += "<a href='?src=\ref[src];task=togglelock;'>[connected.locked ? "Unlock" : "Lock"] Scanner</a> "
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
icon_state = "sleeper-open"
|
||||
density = 0
|
||||
anchored = 1
|
||||
interact_offline = 1
|
||||
state_open = 1
|
||||
var/efficiency
|
||||
var/initial_bin_rating = 1
|
||||
@@ -82,6 +81,9 @@
|
||||
if(exchange_parts(user, I))
|
||||
return
|
||||
|
||||
if(default_pry_open(I))
|
||||
return
|
||||
|
||||
default_deconstruction_crowbar(I)
|
||||
|
||||
/obj/machinery/sleeper/ex_act(severity, target)
|
||||
@@ -118,16 +120,7 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
//powerless interaction
|
||||
if(!is_operational())
|
||||
user.unset_machine()//essential to prevent infinite loops of opening/closing the machine
|
||||
if(state_open)
|
||||
close_machine()
|
||||
else
|
||||
open_machine()
|
||||
|
||||
else
|
||||
sleeperUI(user)
|
||||
sleeperUI(user)
|
||||
|
||||
/obj/machinery/sleeper/proc/sleeperUI(mob/user)
|
||||
var/dat
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon_state = "cell-off"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
interact_offline = 1
|
||||
layer = 4
|
||||
|
||||
var/on = 0
|
||||
@@ -103,16 +102,7 @@
|
||||
if(..())
|
||||
return
|
||||
|
||||
//powerless interaction
|
||||
if(!is_operational())
|
||||
user.unset_machine()//essential to prevent infinite loops of opening/closing the machine
|
||||
if(state_open)
|
||||
close_machine()
|
||||
else
|
||||
open_machine()
|
||||
|
||||
else
|
||||
ui_interact(user)
|
||||
ui_interact(user)
|
||||
|
||||
|
||||
/**
|
||||
@@ -242,6 +232,9 @@
|
||||
if(exchange_parts(user, I))
|
||||
return
|
||||
|
||||
if(default_pry_open(I))
|
||||
return
|
||||
|
||||
default_deconstruction_crowbar(I)
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/open_machine()
|
||||
|
||||
@@ -85,7 +85,7 @@ Class Procs:
|
||||
Called by the 'master_controller' once per game tick for each machine that is listed in the 'machines' list.
|
||||
|
||||
is_operational()
|
||||
Returns 0 if the machine is unpowered, broken or undergoing maintenance, 1 if not
|
||||
Returns 0 if the machine is unpowered, broken or undergoing maintenance, something else if not
|
||||
|
||||
Compiled by Aygar
|
||||
*/
|
||||
@@ -122,7 +122,7 @@ Class Procs:
|
||||
machines.Remove(src)
|
||||
SSmachine.processing -= src
|
||||
if(occupant)
|
||||
open_machine()
|
||||
dropContents()
|
||||
..()
|
||||
|
||||
/obj/machinery/process()//If you dont use process or power why are you here
|
||||
@@ -208,6 +208,7 @@ Class Procs:
|
||||
/obj/machinery/proc/is_operational()
|
||||
return !(stat & (NOPOWER|BROKEN|MAINT))
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/mob/proc/canUseTopic() //TODO: once finished, place these procs on the respective mob files
|
||||
@@ -268,10 +269,13 @@ Class Procs:
|
||||
/obj/machinery/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/attack_hand(mob/user as mob, var/check_power = 1)
|
||||
//set_machine must be 0 if clicking the machinery doesn't bring up a dialog
|
||||
/obj/machinery/attack_hand(mob/user as mob, var/check_power = 1, var/set_machine = 1)
|
||||
if(check_power && stat & NOPOWER)
|
||||
user << "<span class='danger'>\The [src] seems unpowered.</span>"
|
||||
return 1
|
||||
if(!interact_offline && stat & (BROKEN|MAINT))
|
||||
user << "<span class='danger'>\The [src] seems broken.</span>"
|
||||
return 1
|
||||
if(user.lying || user.stat)
|
||||
return 1
|
||||
@@ -293,7 +297,8 @@ Class Procs:
|
||||
return 1
|
||||
|
||||
src.add_fingerprint(user)
|
||||
user.set_machine(src)
|
||||
if(set_machine)
|
||||
user.set_machine(src)
|
||||
return 0
|
||||
|
||||
/obj/machinery/CheckParts()
|
||||
@@ -307,6 +312,14 @@ Class Procs:
|
||||
uid = gl_uid
|
||||
gl_uid++
|
||||
|
||||
/obj/machinery/proc/default_pry_open(var/obj/item/weapon/crowbar/C)
|
||||
. = !(state_open || panel_open || is_operational()) && istype(C)
|
||||
if(.)
|
||||
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
|
||||
visible_message("<span class = 'notice'>[usr] pry open \the [src].</span>", "<span class = 'notice'>You pry open \the [src].</span>")
|
||||
open_machine()
|
||||
return 1
|
||||
|
||||
/obj/machinery/proc/default_deconstruction_crowbar(var/obj/item/weapon/crowbar/C, var/ignore_panel = 0)
|
||||
. = istype(C) && (panel_open || ignore_panel)
|
||||
if(.)
|
||||
|
||||
@@ -3,19 +3,14 @@
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "borgcharger0"
|
||||
density = 0
|
||||
anchored = 1.0
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 1000
|
||||
var/open = 1
|
||||
var/construct_op = 0
|
||||
var/circuitboard = "/obj/item/weapon/circuitboard/cyborgrecharger"
|
||||
var/locked = 1
|
||||
req_access = list(access_robotics)
|
||||
var/recharge_speed
|
||||
var/repairs
|
||||
var/mob/living/silicon/robot/occupier
|
||||
|
||||
|
||||
/obj/machinery/recharge_station/New()
|
||||
..()
|
||||
@@ -26,7 +21,7 @@
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
|
||||
component_parts += new /obj/item/weapon/stock_parts/cell/high(null)
|
||||
RefreshParts()
|
||||
build_icon()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/recharge_station/RefreshParts()
|
||||
recharge_speed = 0
|
||||
@@ -40,11 +35,11 @@
|
||||
|
||||
|
||||
/obj/machinery/recharge_station/process()
|
||||
if(!(NOPOWER|BROKEN))
|
||||
if(!is_operational())
|
||||
return
|
||||
|
||||
if(src.occupier)
|
||||
process_occupier()
|
||||
if(occupant)
|
||||
process_occupant()
|
||||
return 1
|
||||
|
||||
|
||||
@@ -61,13 +56,13 @@
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
..(severity)
|
||||
return
|
||||
if(occupier)
|
||||
occupier.emp_act(severity)
|
||||
if(occupant)
|
||||
occupant.emp_act(severity)
|
||||
open_machine()
|
||||
..(severity)
|
||||
|
||||
/obj/machinery/recharge_station/ex_act(severity, target)
|
||||
if(occupier)
|
||||
if(occupant)
|
||||
open_machine()
|
||||
..()
|
||||
|
||||
@@ -78,40 +73,34 @@
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/recharge_station/attackby(obj/item/P as obj, mob/user as mob)
|
||||
if(open)
|
||||
if(state_open)
|
||||
if(default_deconstruction_screwdriver(user, "borgdecon2", "borgcharger0", P))
|
||||
return
|
||||
|
||||
if(exchange_parts(user, P))
|
||||
return
|
||||
|
||||
if(default_pry_open(P))
|
||||
return
|
||||
|
||||
default_deconstruction_crowbar(P)
|
||||
|
||||
/obj/machinery/recharge_station/attack_hand(user as mob)
|
||||
if(..()) return
|
||||
if(construct_op == 0)
|
||||
toggle_open()
|
||||
else
|
||||
user << "The recharger can't be closed in this state."
|
||||
if(..(user,1,set_machine = 0))
|
||||
return
|
||||
|
||||
toggle_open()
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/machinery/recharge_station/proc/toggle_open()
|
||||
if(open)
|
||||
if(state_open)
|
||||
close_machine()
|
||||
else
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/recharge_station/open_machine()
|
||||
if(occupier)
|
||||
if (occupier.client)
|
||||
occupier.client.eye = occupier
|
||||
occupier.client.perspective = MOB_PERSPECTIVE
|
||||
occupier.loc = loc
|
||||
occupier = null
|
||||
use_power = 1
|
||||
open = 1
|
||||
density = 0
|
||||
build_icon()
|
||||
..()
|
||||
use_power = 1
|
||||
|
||||
/obj/machinery/recharge_station/close_machine()
|
||||
if(!panel_open)
|
||||
@@ -121,61 +110,62 @@
|
||||
R.client.eye = src
|
||||
R.client.perspective = EYE_PERSPECTIVE
|
||||
R.loc = src
|
||||
occupier = R
|
||||
occupant = R
|
||||
use_power = 2
|
||||
add_fingerprint(R)
|
||||
break
|
||||
open = 0
|
||||
state_open = 0
|
||||
density = 1
|
||||
build_icon()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/recharge_station/proc/build_icon()
|
||||
if(NOPOWER|BROKEN)
|
||||
if(open)
|
||||
/obj/machinery/recharge_station/update_icon()
|
||||
if(is_operational())
|
||||
if(state_open)
|
||||
icon_state = "borgcharger0"
|
||||
else
|
||||
if(occupier)
|
||||
icon_state = "borgcharger1"
|
||||
else
|
||||
icon_state = "borgcharger2"
|
||||
icon_state = (occupant ? "borgcharger1" : "borgcharger2")
|
||||
else
|
||||
icon_state = "borgcharger0"
|
||||
icon_state = (state_open ? "borgcharger-u0" : "borgcharger-u1")
|
||||
|
||||
/obj/machinery/recharge_station/proc/process_occupier()
|
||||
if(occupier)
|
||||
/obj/machinery/recharge_station/power_change()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/recharge_station/proc/process_occupant()
|
||||
if(occupant)
|
||||
var/mob/living/silicon/robot/R = occupant
|
||||
restock_modules()
|
||||
if(repairs)
|
||||
occupier.heal_organ_damage(repairs, repairs - 1)
|
||||
if(occupier.cell)
|
||||
if(occupier.cell.charge >= occupier.cell.maxcharge)
|
||||
occupier.cell.charge = occupier.cell.maxcharge
|
||||
else
|
||||
occupier.cell.charge = min(occupier.cell.charge + recharge_speed, occupier.cell.maxcharge)
|
||||
R.heal_organ_damage(repairs, repairs - 1)
|
||||
if(R.cell)
|
||||
R.cell.charge = min(R.cell.charge + recharge_speed, R.cell.maxcharge)
|
||||
|
||||
/obj/machinery/recharge_station/proc/restock_modules()
|
||||
if(occupier)
|
||||
if(occupier.module && occupier.module.modules)
|
||||
var/list/um = occupier.contents|occupier.module.modules // Makes single list of active (occupier.contents) and inactive (occupier.module.modules) modules
|
||||
if(occupant)
|
||||
var/mob/living/silicon/robot/R = occupant
|
||||
if(R.module && R.module.modules)
|
||||
var/list/um = R.contents|R.module.modules // Makes single list of active (R.contents) and inactive (R.module.modules) modules
|
||||
var/coeff = recharge_speed / 200
|
||||
for (var/datum/robot_energy_storage/st in occupier.module.storages)
|
||||
for (var/datum/robot_energy_storage/st in R.module.storages)
|
||||
st.energy = min(st.max_energy, st.energy + coeff * st.recharge_rate)
|
||||
for(var/obj/O in um)
|
||||
//General
|
||||
if(istype(O,/obj/item/device/flash))
|
||||
if(O:broken)
|
||||
O:broken = 0
|
||||
O:times_used = 0
|
||||
O:icon_state = "flash"
|
||||
var/obj/item/device/flash/F = O
|
||||
if(F.broken)
|
||||
F.broken = 0
|
||||
F.times_used = 0
|
||||
F.icon_state = "flash"
|
||||
// Engineering
|
||||
// Security
|
||||
if(istype(O,/obj/item/weapon/gun/energy/gun/advtaser/cyborg))
|
||||
if(O:power_supply.charge < O:power_supply.maxcharge)
|
||||
var/obj/item/weapon/gun/energy/G = O
|
||||
var/obj/item/ammo_casing/energy/S = G.ammo_type[G.select]
|
||||
O:power_supply.give(S.e_cost * coeff)
|
||||
O:update_icon()
|
||||
var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = O
|
||||
if(T.power_supply.charge < T.power_supply.maxcharge)
|
||||
var/obj/item/ammo_casing/energy/S = T.ammo_type[T.select]
|
||||
T.power_supply.give(S.e_cost * coeff)
|
||||
T.update_icon()
|
||||
else
|
||||
O:charge_tick = 0
|
||||
T.charge_tick = 0
|
||||
if(istype(O,/obj/item/weapon/melee/baton))
|
||||
var/obj/item/weapon/melee/baton/B = O
|
||||
if(B.bcell)
|
||||
@@ -194,16 +184,15 @@
|
||||
var/obj/item/device/lightreplacer/LR = O
|
||||
var/i = 1
|
||||
for(1, i <= coeff, i++)
|
||||
LR.Charge(occupier)
|
||||
LR.Charge(R)
|
||||
|
||||
if(occupier)
|
||||
if(occupier.module)
|
||||
occupier.module.respawn_consumable(occupier)
|
||||
if(R && R.module)
|
||||
R.module.respawn_consumable(R)
|
||||
|
||||
//Emagged items for janitor and medical borg
|
||||
if(occupier.module.emag)
|
||||
if(istype(occupier.module.emag, /obj/item/weapon/reagent_containers/spray))
|
||||
var/obj/item/weapon/reagent_containers/spray/S = occupier.module.emag
|
||||
if(R.module.emag)
|
||||
if(istype(R.module.emag, /obj/item/weapon/reagent_containers/spray))
|
||||
var/obj/item/weapon/reagent_containers/spray/S = R.module.emag
|
||||
if(S.name == "polyacid spray")
|
||||
S.reagents.add_reagent("pacid", 2 * coeff)
|
||||
else if(S.name == "lube spray")
|
||||
|
||||
@@ -147,10 +147,16 @@
|
||||
|
||||
|
||||
/obj/machinery/computer/mech_bay_power_console/update_icon()
|
||||
if(stat & NOPOWER)
|
||||
icon_state = "recharge_comp0"
|
||||
return
|
||||
if(stat & BROKEN)
|
||||
icon_state = "recharge_compb"
|
||||
return
|
||||
if(!recharge_port || !recharge_port.recharging_mech || !recharge_port.recharging_mech.cell || !(recharge_port.recharging_mech.cell.charge < recharge_port.recharging_mech.cell.maxcharge))
|
||||
icon_state = "recharge_comp"
|
||||
else
|
||||
icon_state = "recharge_comp_on"
|
||||
return
|
||||
icon_state = "recharge_comp_on"
|
||||
|
||||
/obj/machinery/computer/mech_bay_power_console/initialize()
|
||||
reconnect()
|
||||
|
||||
@@ -55,10 +55,18 @@
|
||||
screen = 1
|
||||
if(href_list["return"])
|
||||
screen = 0
|
||||
src.updateUsrDialog()
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/mecha/update_icon()
|
||||
if(stat & NOPOWER)
|
||||
icon_state = "mecha0"
|
||||
return
|
||||
if(stat & BROKEN)
|
||||
icon_state = "mechab"
|
||||
return
|
||||
icon_state = "mecha0"
|
||||
|
||||
/obj/item/mecha_parts/mecha_tracking
|
||||
name = "exosuit tracking beacon"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 116 KiB |
Reference in New Issue
Block a user