mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-30 03:26:56 +01:00
dm is a curse (#7560)
## About The Pull Request Random various bugfixes to random various things. ## Why It's Good For The Game :slime:🔧 ## Changelog 🆑 fix: Power network interface circuits work again. fix: You can now heal prosthetics with cables again. fix: Protolathes should no longer bluescreen when destructively analyzing material sheets. fix: Destructively analyzing advanced TTS circuits is no longer morally dubious. /🆑
This commit is contained in:
@@ -210,7 +210,7 @@
|
||||
IO.disconnect_from_network()
|
||||
|
||||
/obj/item/integrated_circuit/passive/power/powernet/make_energy()
|
||||
var/obj/item/cell/battery = get_cell()
|
||||
var/obj/item/cell/battery = assembly?.get_cell()
|
||||
if(assembly && assembly.anchored && battery)
|
||||
var/should_act = get_pin_data(IC_INPUT, 1) // Even if this is false, we still need to update the output pins with powernet information.
|
||||
var/drawing = get_pin_data(IC_INPUT, 2)
|
||||
|
||||
@@ -102,6 +102,9 @@
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/mob/living/voice/death(gibbed, deathmessage = "no message") // and god taketh away
|
||||
. = ..(gibbed, deathmessage)
|
||||
|
||||
// Proc: say()
|
||||
// Parameters: 4 (generic say() arguments)
|
||||
// Description: Adds a speech bubble to the communicator device, then calls ..() to do the real work.
|
||||
|
||||
+29
-15
@@ -545,7 +545,6 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list(
|
||||
stack_type = /obj/item/stack/cable_coil
|
||||
drop_sound = 'sound/items/drop/accessory.ogg'
|
||||
pickup_sound = 'sound/items/pickup/accessory.ogg'
|
||||
stack_type = /obj/item/stack/cable_coil
|
||||
|
||||
/obj/item/stack/cable_coil/Initialize(mapload, new_amount, merge, param_color)
|
||||
. = ..()
|
||||
@@ -560,29 +559,44 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list(
|
||||
// General procedures
|
||||
///////////////////////////////////
|
||||
|
||||
//you can use wires to heal robotics
|
||||
/obj/item/stack/cable_coil/legacy_mob_melee_hook(mob/target, mob/user, clickchain_flags, list/params, mult, target_zone, intent)
|
||||
if(ishuman(target) && user.a_intent == INTENT_HELP)
|
||||
/obj/item/stack/cable_coil/using_as_item(atom/target, datum/event_args/actor/clickchain/clickchain, clickchain_flags)
|
||||
. = ..()
|
||||
if(. & CLICKCHAIN_FLAGS_INTERACT_ABORT)
|
||||
return
|
||||
if(clickchain.using_intent == INTENT_HELP)
|
||||
if(fix_limb_burns(target, clickchain.performer, clickchain.target_zone) >= 0)
|
||||
return CLICKCHAIN_DID_SOMETHING
|
||||
|
||||
// you can use wires to heal robots
|
||||
// returns the number of cables used, or -1 if we couldn't fix the limb
|
||||
/obj/item/stack/cable_coil/proc/fix_limb_burns(mob/target, mob/user, target_zone)
|
||||
. = -1
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting]
|
||||
|
||||
if(!S || S.robotic < ORGAN_ROBOT || S.open == 3)
|
||||
to_chat(user, SPAN_WARNING("That isn't a robotic limb."))
|
||||
var/obj/item/organ/external/S = H.organs_by_name[target_zone]
|
||||
if(!S)
|
||||
user.visible_message(SPAN_WARNING("That limb is missing!"))
|
||||
return
|
||||
|
||||
var/use_amt = min(src.amount, CEILING(S.burn_dam / 20, 1), 5)
|
||||
if(can_use(use_amt))
|
||||
if(S.robotic < ORGAN_ROBOT)
|
||||
user.visible_message(SPAN_WARNING("That isn't a robotic limb."))
|
||||
return
|
||||
if(S.open == 3) // someone's doing surgery
|
||||
return
|
||||
var/use_amt = min(src.amount, CEILING(S.burn_dam / 5, 1), 5)
|
||||
if(get_amount() >= use_amt)
|
||||
if(S.robo_repair(5*use_amt, DAMAGE_TYPE_BURN, "some damaged wiring", src, user))
|
||||
use(use_amt)
|
||||
return use_amt
|
||||
return
|
||||
if(is_holosphere_shell(target) && user.a_intent == INTENT_HELP)
|
||||
if(is_holosphere_shell(target))
|
||||
var/mob/living/simple_mob/holosphere_shell/shell = target
|
||||
var/use_amt = min(src.amount, CEILING(shell.fireloss / 20, 1), 5)
|
||||
if(can_use(use_amt))
|
||||
var/use_amt = min(src.amount, CEILING(shell.fireloss / 5, 1), 5)
|
||||
if(get_amount() >= use_amt)
|
||||
if(shell.shell_repair(5*use_amt, DAMAGE_TYPE_BURN, "some damaged wiring", src, user))
|
||||
use(use_amt)
|
||||
return use_amt
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/cable_coil/update_icon()
|
||||
if (!color)
|
||||
@@ -694,7 +708,7 @@ GLOBAL_LIST_INIT(possible_cable_coil_colours, list(
|
||||
|
||||
var/end_dir = 0
|
||||
if(istype(F, /turf/simulated/open))
|
||||
if(!can_use(2))
|
||||
if(get_amount() < 2)
|
||||
to_chat(user, "You don't have enough cable to do this!")
|
||||
return
|
||||
end_dir = DOWN
|
||||
|
||||
@@ -245,6 +245,7 @@
|
||||
if(linked_lathe) // Also sends salvaged materials to a linked protolathe, if any.
|
||||
var/list/mats = linked_destroy.loaded_item.get_materials(TRUE)
|
||||
linked_lathe.stored_materials.add(mats, linked_destroy.decon_mod)
|
||||
linked_lathe.ui_controller?.ui_materials_update()
|
||||
|
||||
linked_destroy.loaded_item = null
|
||||
for(var/obj/I in linked_destroy.contents)
|
||||
|
||||
@@ -212,11 +212,11 @@
|
||||
to_chat(user, "<span class='notice'>There are no burnt wires here!</span>")
|
||||
return SURGERY_FAILURE
|
||||
else
|
||||
if(!C.can_use(1))
|
||||
if(C.get_amount() < 5)
|
||||
to_chat(user, "<span class='danger'>You need at least five cable pieces to repair this part.</span>") //usage amount made more consistent with regular cable repair
|
||||
return SURGERY_FAILURE
|
||||
else
|
||||
C.use(1)
|
||||
C.use(5)
|
||||
|
||||
return affected && affected.open == 3 && (affected.disfigured || affected.burn_dam > 0) && target_zone != O_MOUTH
|
||||
|
||||
|
||||
Reference in New Issue
Block a user