Screwdriver Pen (#70467)

* base

* bam

* icon and element fix

* terminate

* Update code/modules/paperwork/pen.dm

* Update code/modules/paperwork/pen.dm

* sigh

* Update code/_globalvars/lists/maintenance_loot.dm

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>

* Update code/modules/paperwork/pen.dm

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>

* Update code/modules/paperwork/pen.dm

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>

* factoring

* escapism

* balloon notif

* bottom vars

* Update code/modules/paperwork/pen.dm

* Update code/modules/paperwork/pen.dm

* Apply suggestions from code review

* updates the sprite to be based on new pen icon

* pushes the comsig call to an attack_self

* Update code/modules/paperwork/pen.dm

* Update code/modules/paperwork/pen.dm

* imagos icon

Co-authored-by: etherware-novice <candy@notarealaddr.com>
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@thisisnotarealaddr.com>
This commit is contained in:
texan-down-under
2022-10-21 02:41:58 -04:00
committed by GitHub
co-authored by MrMelbert ShizCalev Fikou etherware-novice Candycaneannihalator
parent cbb7f14e53
commit e056997093
4 changed files with 52 additions and 0 deletions
+50
View File
@@ -339,3 +339,53 @@
force = 5
wound_bonus = 100
demolition_mod = 9000
// screwdriver pen!
/obj/item/pen/screwdriver
desc = "A pen with an extendable screwdriver tip. This one has a yellow cap."
icon_state = "pendriver"
toolspeed = 1.2 // gotta have some downside
/// whether the pen is extended
var/extended = FALSE
/obj/item/pen/screwdriver/Initialize(mapload)
. = ..()
AddComponent(/datum/component/transforming, \
throwforce_on = 5, \
w_class_on = WEIGHT_CLASS_SMALL, \
sharpness_on = TRUE)
RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, .proc/toggle_screwdriver)
AddElement(/datum/element/update_icon_updates_onmob)
/obj/item/pen/screwdriver/vv_edit_var(var_name, var_value)
if(var_name == NAMEOF(src, extended))
if(var_value != extended)
var/datum/component/transforming/transforming_comp = GetComponent(/datum/component/transforming)
transforming_comp.on_attack_self(src)
datum_flags |= DF_VAR_EDITED
return
return ..()
/obj/item/pen/screwdriver/proc/toggle_screwdriver(mob/user, active)
SIGNAL_HANDLER
extended = active
if(user)
balloon_alert(user, "[extended ? "extended" : "retracted"]!")
if(!extended)
tool_behaviour = initial(tool_behaviour)
RemoveElement(/datum/element/eyestab)
else
tool_behaviour = TOOL_SCREWDRIVER
AddElement(/datum/element/eyestab)
update_appearance(UPDATE_ICON)
return COMPONENT_NO_DEFAULT_MESSAGE
/obj/item/pen/screwdriver/update_icon_state()
. = ..()
icon_state = "[initial(icon_state)][extended ? "_out":null]"
inhand_icon_state = initial(inhand_icon_state) //since transforming component switches the icon.