Buffs arm implants (#19773)

* fuck it signal time

* heres a great example of simplifcation!

* fuck it sometimes you have to ball, fuck stoplag

* fuck yeah baby, mob signals instead

* bam good code

* add support for drop button

* lets not drop nulls

* sirryan review
This commit is contained in:
Contrabang
2022-12-29 17:49:31 +00:00
committed by GitHub
parent 8ef4aa727e
commit b013639cf5
6 changed files with 29 additions and 11 deletions
+4 -3
View File
@@ -103,6 +103,7 @@
/mob/proc/drop_item_v() //this is dumb.
if(stat == CONSCIOUS && isturf(loc))
SEND_SIGNAL(usr, COMSIG_MOB_WILLINGLY_DROP)
return drop_item()
return 0
@@ -125,10 +126,10 @@
/mob/proc/canUnEquip(obj/item/I, force)
if(!I)
return 1
return TRUE
if((I.flags & NODROP) && !force)
return 0
return 1
return FALSE
return TRUE
/mob/proc/unEquip(obj/item/I, force, silent = FALSE) //Force overrides NODROP for things like wizarditis and admin undress.
if(!I) //If there's nothing to drop, the drop is automatically succesfull. If(unEquip) should generally be used to check for NODROP.
+1
View File
@@ -44,6 +44,7 @@
var/memory = ""
var/next_move = null
var/notransform = FALSE //Carbon
/// True for left hand active, otherwise for right hand active
var/hand = null
var/real_name = null
var/flavor_text = ""
+15 -2
View File
@@ -45,6 +45,9 @@
to_chat(user, "<span class='notice'>You modify [src] to be installed on the [parent_organ == "r_arm" ? "right" : "left"] arm.</span>")
update_icon(UPDATE_ICON_STATE)
/obj/item/organ/internal/cyberimp/arm/insert(mob/living/carbon/M, special, dont_remove_slot)
. = ..()
RegisterSignal(M, COMSIG_MOB_WILLINGLY_DROP, PROC_REF(retract_to_linked_implant))
/obj/item/organ/internal/cyberimp/arm/remove(mob/living/carbon/M, special = 0)
Retract()
@@ -62,6 +65,16 @@
Retract()
..()
/obj/item/organ/internal/cyberimp/arm/proc/retract_to_linked_implant()
SIGNAL_HANDLER
if(holder && holder == owner.get_active_hand())
INVOKE_ASYNC(src, PROC_REF(retract_and_show_radial))
/obj/item/organ/internal/cyberimp/arm/proc/retract_and_show_radial()
Retract()
if(length(items_list) != 1)
radial_menu(owner)
/obj/item/organ/internal/cyberimp/arm/proc/check_cuffs()
if(owner.handcuffed)
to_chat(owner, "<span class='warning'>The handcuffs interfere with [src]!</span>")
@@ -253,7 +266,7 @@
..()
if(locate(/obj/item/flash/armimplant) in items_list)
var/obj/item/flash/armimplant/F = locate(/obj/item/flash/armimplant) in items_list
F.I = src
F.implant = src
/obj/item/organ/internal/cyberimp/arm/baton
name = "arm electrification implant"
@@ -271,7 +284,7 @@
..()
if(locate(/obj/item/flash/armimplant) in items_list)
var/obj/item/flash/armimplant/F = locate(/obj/item/flash/armimplant) in items_list
F.I = src
F.implant = src
/obj/item/organ/internal/cyberimp/arm/combat/centcom
name = "NT specops cybernetics implant"