mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-25 08:51:41 +00:00
* Adds reinforced APCs and frames for them. * farragus WIP * more farragus stuff * more faragus stuff * more farragus * uses plastic for insulation instead * box and faragus changes * Box changes * cerebron changes * more meta updates * fixes short on box station * fixes shorts on meta station * delta changes * adds reinforced apcs with bigger cells * emerald things * more diagoras * cleaning up cables in diagoras * switches elecmaints smes to the engineering type on diagoras * adds more grid monitors to cyberiad * various corrections * 2 doors on cyberiad electrical maints * boxstation fixes * Kerberos fixes * cerebron fixes * some faragus fixes * more cyberiad fixes * meta fixes * more kerberos fixes * faragus and cyberiad fixes * emerald fixes * farragus fixes * emerald fixes * farragus fixes * emerald fixes * diagoras fix * more map fixes * more CI fixes * final fixes I hope * Update emeraldstation.dmm * finish merging metastation * reset meta to master version * redoing some of the meta changes * Update metastation.dmm * clear merge conflict * Update metastation.dmm * Update metastation.dmm * Update metastation.dmm * meta resolution * emerald resolution * delta resolution * fartgas resolution * box box * stay out stay out * metastation fixes * faragus fix * delta fix * meta changes * Starting over with farragus * Starting over in faragus * faragus changes * Update cerestation.dmm * Update cerestation.dmm * Update cerestation.dmm * Update cerestation.dmm * Update cerestation.dmm * resolving some faragus conflicts * resolve faragus conflicts * resolves delta conflicts * resolves cyberiad conflicts * resolves emerald conflicts * fixes cables in faragus * fixes meta cables * fixes delta cables * more meta fixes * more farragus cable fixes * more cable fixes * meta and faragus fixes * box and delta fixes * more mapping fixes * hopefully the last fix * Update metastation.dmm * Update metastation.dmm * fixes shorts on cyberiad cerebron and farragus * CI fixes * Update cerestation.dmm * resolve faragus conflicts * resolve emerald conflict * fix some faragus cabling * more cabling correction in faragus * more cable fixes * Update cerestation.dmm * remove doubled scrubber pipe on tile * resolves faragus conflict * changes the default power input of engineering SMES to 200kw and 80kW respectively * connects power monitoring computers to the grid that weren't * meta station elec maints improvements * adds missing power monitoring computers on box and delta * removes dirt from wall * corrects area boundry on meta * adds missing cable on box sci * removes dirt from wall on box * connects cyberiad bridge to the rest of the powernet * connects box brig to powernet * Adds catwalks to box maints * adds catwalks to meta * Adds catwalks to delta * Update deltastation.dmm * adds ability to insulate cables * Moves stations to using extra insulated cables for high power network * Removes catwalks from meta * Removes catwalks from box * Removes catwalks from delta * resolves box conflicts * Update cable.dm * remove floating request console * corrects position of fire alarm and removes extra intercom on metastation * resolves faragus conflict * fixes a stray light bulb and light switch in maints as well as a doubled power * wires kerberos security checkpoint to the grid * Update cerestation.dmm * Removes stray extinguisher cabinet from meta station * resolves area conflict on faragus * resolves more faragus issues * fixes faragus cabling issues * Update cerestation.dmm * removes another stray fire extinguisher cabinet * insulates the APC in delta PTL room * connect delta fore starboard solars to the high power grid instead of the low power * Update deltastation.dmm * deconflict * solves some unconnected cables * connects delta customs to network and finishes resolving conflicts * Update deltastation.dmm * adds the new cables. needs coils and mapping * moves connection perms to the heavy duty cables. toggled with engineering permission ID. box gets new cables * sorts cables on stations * faragus cable connections * cable corrections. Adds heavy duty cables to the autolathe * CI fix * more fixes and makes the new cables show up on t ray scanners * box station mapping fixes * delta mapping fixes * meta fix * Update deltastation.dmm * delta and faragus fixes * Update emeraldstation.dmm * adds diagonal sprites to heavy duty cables. allows sillicons to toggle them and * Makes borg versions of the heavy duty cable coil * palete consolidation * Improves visibility of high power cables * fixes a wrong wire under the pet store maints door in delta station * resolve conflicts * migrates new cable type to new attack chain * Update cable_coil.dm
188 lines
5.8 KiB
Plaintext
188 lines
5.8 KiB
Plaintext
|
|
|
|
/obj/machinery/power/apc/proc/has_electronics()
|
|
return electronics_state != APC_ELECTRONICS_NONE
|
|
|
|
/obj/machinery/power/apc/deconstruct(disassembled = TRUE)
|
|
if(!(flags & NODECONSTRUCT))
|
|
if(!(stat & BROKEN))
|
|
set_broken()
|
|
if(opened != APC_COVER_OFF)
|
|
opened = APC_COVER_OFF
|
|
cover_locked = FALSE
|
|
visible_message(
|
|
"<span class='warning'>The cover falls off [src]!</span>",
|
|
"<span class='warning'>You hear a small flat object falling to the floor!</span>"
|
|
)
|
|
update_icon()
|
|
|
|
/obj/machinery/power/apc/crowbar_act(mob/living/user, obj/item/I)
|
|
. = TRUE
|
|
if(!I.tool_start_check(src, user, 0))
|
|
return
|
|
|
|
// 1. Opened APC
|
|
if(opened)
|
|
if(cell)
|
|
if(opened == APC_OPENED) // Do not magically create a new cover if it broke off.
|
|
opened = APC_CLOSED
|
|
cover_locked = TRUE //closing cover relocks it
|
|
update_icon()
|
|
user.visible_message(
|
|
"<span class='notice'>[user] closes the cover of [src].</span>",
|
|
"<span class='notice'>You close the cover of [src].</span>")
|
|
return
|
|
|
|
else
|
|
to_chat(user, "<span class='warning'>Remove the cell first!</span>")
|
|
return
|
|
|
|
if(electronics_state == APC_ELECTRONICS_NONE)
|
|
to_chat(user, "<span class='warning'>There's nothing inside!</span>")
|
|
return
|
|
|
|
if(terminal)
|
|
to_chat(user, "<span class='warning'>Disconnect the wires first!</span>")
|
|
return
|
|
|
|
if(I.use_tool(src, user, FALSE, volume = I.tool_volume))
|
|
if(has_electronics())
|
|
electronics_state = APC_ELECTRONICS_NONE
|
|
if(stat & BROKEN)
|
|
user.visible_message(
|
|
"<span class='notice'>[user] rips out the broken the APC electronics inside [src]!</span>",
|
|
"<span class='notice'>You break the charred APC electronics and remove the remains.</span>",
|
|
"<span class='warning'>You hear metallic levering and a crack.</span>")
|
|
stat |= MAINT
|
|
update_icon()
|
|
return
|
|
|
|
if(emagged) // We emag board, not APC's frame
|
|
emagged = FALSE
|
|
user.visible_message(
|
|
"<span class='notice'>[user] has discarded the shorted APC electronics from [src]!</span>",
|
|
"<span class='notice'>You discarded the shorted board.</span>",
|
|
"<span class='warning'>You hear metallic levering.</span>"
|
|
)
|
|
stat |= MAINT
|
|
update_icon()
|
|
return
|
|
|
|
if(malfhack) // AI hacks board, not APC's frame
|
|
user.visible_message(\
|
|
"<span class='notice'>[name] has discarded the strangely programmed APC electronics from [src]!</span>",
|
|
"<span class='notice'>You discarded the strangely programmed board.</span>",
|
|
"<span class='warning'>You hear metallic levering.</span>"
|
|
)
|
|
malfai = null
|
|
malfhack = FALSE
|
|
stat |= MAINT
|
|
update_icon()
|
|
return
|
|
|
|
user.visible_message(
|
|
"<span class='notice'>[user] has removed the APC electronics from [src]!</span>",
|
|
"<span class='notice'>You remove the APC electronics.</span>",
|
|
"<span class='warning'>You hear metallic levering.</span>"
|
|
)
|
|
new /obj/item/apc_electronics(loc)
|
|
stat |= MAINT
|
|
update_icon()
|
|
return
|
|
|
|
// 2. Closed APC
|
|
if(!(stat & BROKEN))
|
|
if(panel_open) // wires are exposed
|
|
to_chat(user, "<span class='warning'>Exposed wiring prevents you from opening [src]!</span>")
|
|
return
|
|
|
|
if(cover_locked && !(stat & MAINT)) // locked...
|
|
to_chat(user, "<span class='warning'>The cover of [src] is locked!</span>")
|
|
return
|
|
|
|
to_chat(user, "<span class='notice'>You open the cover of [src].</span>")
|
|
opened = APC_OPENED
|
|
update_icon()
|
|
|
|
// 3. Broken, closed APC
|
|
if((stat & BROKEN) && opened == APC_CLOSED)
|
|
if(!I.use_tool(src, user, 1 SECONDS, volume = I.tool_volume))
|
|
return
|
|
|
|
user.visible_message(
|
|
"<span class='notice'>[user] rips the cover off [src].</span>",
|
|
"<span class='notice'>You rip the cover off [src].</span>",
|
|
"<span class='warning'>You hear metallic levering and a small flat object falling to the floor!</span>"
|
|
)
|
|
panel_open = FALSE // Avoid wacky behavour with wires.
|
|
opened = APC_COVER_OFF
|
|
update_icon()
|
|
|
|
/obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/I)
|
|
. = TRUE
|
|
|
|
if(opened)
|
|
to_chat(user, "<span class='warning'>Close the APC first!</span>")
|
|
return
|
|
|
|
if(emagged)
|
|
to_chat(user, "<span class='warning'>The interface is broken!</span>")
|
|
return
|
|
|
|
if(!I.use_tool(src, user, FALSE, volume = I.tool_volume))
|
|
return
|
|
|
|
panel_open = !panel_open
|
|
to_chat(user, "<span class='notice'>The wires have been [panel_open ? "exposed" : "unexposed"]</span>")
|
|
update_icon()
|
|
|
|
/obj/machinery/power/apc/wirecutter_act(mob/living/user, obj/item/I)
|
|
. = TRUE
|
|
|
|
if(terminal && opened)
|
|
if(!I.use_tool(src, user, FALSE, volume = I.tool_volume))
|
|
return
|
|
terminal.dismantle(user, I)
|
|
return
|
|
|
|
if(panel_open && !opened)
|
|
if(!I.use_tool(src, user, FALSE, volume = I.tool_volume))
|
|
return
|
|
wires.Interact(user)
|
|
|
|
/obj/machinery/power/apc/multitool_act(mob/living/user, obj/item/I)
|
|
. = TRUE
|
|
|
|
if(panel_open && !opened)
|
|
if(!I.use_tool(src, user, FALSE, volume = I.tool_volume))
|
|
return
|
|
wires.Interact(user)
|
|
|
|
/obj/machinery/power/apc/welder_act(mob/user, obj/item/I)
|
|
if(!opened || has_electronics() || terminal)
|
|
return
|
|
|
|
. = TRUE
|
|
if(!I.tool_use_check(user, 3))
|
|
return
|
|
|
|
WELDER_ATTEMPT_SLICING_MESSAGE
|
|
if(I.use_tool(src, user, apc_frame_welding_time, amount = 3, volume = I.tool_volume))
|
|
if((stat & BROKEN) || opened == APC_COVER_OFF)
|
|
new sheet_type(loc)
|
|
if(shock_proof)
|
|
new /obj/item/stack/sheet/plastic(loc, 10)
|
|
user.visible_message(\
|
|
"<span class='notice'>[user] has cut [src] apart with [I].</span>",
|
|
"<span class='notice'>You disassembled the broken APC frame.</span>",
|
|
"<span class='warning'>You hear welding.</span>"
|
|
)
|
|
else
|
|
new frame_type(loc)
|
|
user.visible_message(\
|
|
"<span class='notice'>[user] has cut [src] from the wall with [I].</span>",
|
|
"<span class='notice'>You cut the APC frame from the wall.</span>",
|
|
"<span class='warning'>You hear welding.</span>"
|
|
)
|
|
qdel(src)
|