mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
Cyborg modules now automatically turn off when deactivated (#41326)
* Cyborg modules turn off when deactivated * gives mining borgs built in mining scanners
This commit is contained in:
@@ -520,6 +520,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
overlay_state = pick(overlay_list)
|
||||
update_icon()
|
||||
|
||||
/obj/item/lighter/cyborg_unequip(mob/user)
|
||||
if(!lit)
|
||||
return
|
||||
set_lit(FALSE)
|
||||
|
||||
/obj/item/lighter/suicide_act(mob/living/carbon/user)
|
||||
if (lit)
|
||||
user.visible_message("<span class='suicide'>[user] begins holding \the [src]'s flame up to [user.p_their()] face! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
|
||||
@@ -200,9 +200,17 @@
|
||||
to_chat(user, "<span class='warning'>You override [src]'s radiation storing protocols. It will now generate small doses of radiation, and stored rads are now projected into creatures you scan.</span>")
|
||||
obj_flags |= EMAGGED
|
||||
|
||||
|
||||
|
||||
/obj/item/geiger_counter/cyborg
|
||||
var/datum/component/mobhook
|
||||
|
||||
/obj/item/geiger_counter/cyborg/cyborg_unequip(mob/user)
|
||||
if(!scanning)
|
||||
return
|
||||
scanning = FALSE
|
||||
update_icon()
|
||||
|
||||
/obj/item/geiger_counter/cyborg/equipped(mob/user)
|
||||
. = ..()
|
||||
if (mobhook && mobhook.parent != user)
|
||||
|
||||
@@ -26,13 +26,21 @@ SLIME SCANNER
|
||||
user.visible_message("<span class='suicide'>[user] begins to emit terahertz-rays into [user.p_their()] brain with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return TOXLOSS
|
||||
|
||||
/obj/item/t_scanner/attack_self(mob/user)
|
||||
|
||||
/obj/item/t_scanner/proc/toggle_on()
|
||||
on = !on
|
||||
icon_state = copytext(icon_state, 1, length(icon_state))+"[on]"
|
||||
|
||||
if(on)
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/t_scanner/attack_self(mob/user)
|
||||
toggle_on()
|
||||
|
||||
/obj/item/t_scanner/cyborg_unequip(mob/user)
|
||||
if(!on)
|
||||
return
|
||||
toggle_on()
|
||||
|
||||
/obj/item/t_scanner/process()
|
||||
if(!on)
|
||||
|
||||
@@ -139,6 +139,11 @@
|
||||
sharpness = IS_SHARP
|
||||
light_color = "#40ceff"
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cyborg/saw/cyborg_unequip(mob/user)
|
||||
if(!active)
|
||||
return
|
||||
transform_weapon(user, TRUE)
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/cyborg/saw/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
return 0
|
||||
|
||||
|
||||
@@ -29,8 +29,11 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/pinpointer/attack_self(mob/living/user)
|
||||
active = !active
|
||||
toggle_on()
|
||||
user.visible_message("<span class='notice'>[user] [active ? "" : "de"]activates [user.p_their()] pinpointer.</span>", "<span class='notice'>You [active ? "" : "de"]activate your pinpointer.</span>")
|
||||
|
||||
/obj/item/pinpointer/proc/toggle_on()
|
||||
active = !active
|
||||
playsound(src, 'sound/items/screwdriver2.ogg', 50, 1)
|
||||
if(active)
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
@@ -94,12 +97,8 @@
|
||||
|
||||
/obj/item/pinpointer/crew/attack_self(mob/living/user)
|
||||
if(active)
|
||||
active = FALSE
|
||||
toggle_on()
|
||||
user.visible_message("<span class='notice'>[user] deactivates [user.p_their()] pinpointer.</span>", "<span class='notice'>You deactivate your pinpointer.</span>")
|
||||
playsound(src, 'sound/items/screwdriver2.ogg', 50, 1)
|
||||
target = null //Restarting the pinpointer forces a target reset
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
var/list/name_counts = list()
|
||||
@@ -130,11 +129,8 @@
|
||||
return
|
||||
|
||||
target = names[A]
|
||||
active = TRUE
|
||||
toggle_on()
|
||||
user.visible_message("<span class='notice'>[user] activates [user.p_their()] pinpointer.</span>", "<span class='notice'>You activate your pinpointer.</span>")
|
||||
playsound(src, 'sound/items/screwdriver2.ogg', 50, 1)
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/pinpointer/crew/scan_for_target()
|
||||
if(target)
|
||||
|
||||
@@ -304,6 +304,11 @@
|
||||
desc = "An advanced welder designed to be used in robotic systems."
|
||||
toolspeed = 0.5
|
||||
|
||||
/obj/item/weldingtool/largetank/cyborg/cyborg_unequip(mob/user)
|
||||
if(!isOn())
|
||||
return
|
||||
switched_on(user)
|
||||
|
||||
/obj/item/weldingtool/largetank/flamethrower_screwdriver()
|
||||
return
|
||||
|
||||
|
||||
@@ -68,6 +68,11 @@
|
||||
item_flags = NODROP
|
||||
flags_1 = NONE
|
||||
|
||||
/obj/item/pinpointer/syndicate_cyborg/cyborg_unequip(mob/user)
|
||||
if(!active)
|
||||
return
|
||||
toggle_on()
|
||||
|
||||
/obj/item/pinpointer/syndicate_cyborg/scan_for_target()
|
||||
target = null
|
||||
var/list/possible_targets = list()
|
||||
|
||||
@@ -43,6 +43,10 @@
|
||||
var/current_cooldown = 0
|
||||
var/range = 7
|
||||
|
||||
/obj/item/t_scanner/adv_mining_scanner/cyborg/Initialize()
|
||||
. = ..()
|
||||
toggle_on()
|
||||
|
||||
/obj/item/t_scanner/adv_mining_scanner/lesser
|
||||
name = "automatic mining scanner"
|
||||
desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations."
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
/mob/living/silicon/robot/get_active_held_item()
|
||||
return module_active
|
||||
|
||||
|
||||
/obj/item/proc/cyborg_unequip(mob/user)
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/proc/uneq_module(obj/item/O)
|
||||
if(!O)
|
||||
@@ -37,6 +38,7 @@
|
||||
O.item_flags &= ~DROPDEL //we shouldn't HAVE things with DROPDEL_1 in our modules, but better safe than runtiming horribly
|
||||
|
||||
O.forceMove(module) //Return item to module so it appears in its contents, so it can be taken out again.
|
||||
O.cyborg_unequip(src)
|
||||
|
||||
hud_used.update_robot_modules_display()
|
||||
return 1
|
||||
|
||||
@@ -525,7 +525,6 @@
|
||||
/obj/item/weldingtool/mini,
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/storage/bag/sheetsnatcher/borg,
|
||||
/obj/item/t_scanner/adv_mining_scanner,
|
||||
/obj/item/gun/energy/kinetic_accelerator/cyborg,
|
||||
/obj/item/gps/cyborg,
|
||||
/obj/item/stack/marker_beacon)
|
||||
@@ -537,6 +536,16 @@
|
||||
cyborg_base_icon = "miner"
|
||||
moduleselect_icon = "miner"
|
||||
hat_offset = 0
|
||||
var/obj/item/t_scanner/adv_mining_scanner/cyborg/mining_scanner //built in memes.
|
||||
|
||||
/obj/item/robot_module/miner/rebuild_modules()
|
||||
. = ..()
|
||||
if(!mining_scanner)
|
||||
mining_scanner = new(src)
|
||||
|
||||
/obj/item/robot_module/miner/Destroy()
|
||||
QDEL_NULL(mining_scanner)
|
||||
return ..()
|
||||
|
||||
/obj/item/robot_module/syndicate
|
||||
name = "Syndicate Assault"
|
||||
|
||||
Reference in New Issue
Block a user