mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-26 18:13:11 +00:00
89 lines
2.0 KiB
Plaintext
89 lines
2.0 KiB
Plaintext
//Helper object for picking dionaea (and other creatures) up.
|
|
/obj/item/weapon/holder
|
|
name = "holder"
|
|
desc = "You shouldn't ever see this."
|
|
icon = 'icons/obj/objects.dmi'
|
|
slot_flags = SLOT_HEAD
|
|
sprite_sheets = list("Vox" = 'icons/mob/species/vox/head.dmi')
|
|
origin_tech = null
|
|
item_icons = list(
|
|
slot_l_hand_str = 'icons/mob/items/lefthand_holder.dmi',
|
|
slot_r_hand_str = 'icons/mob/items/righthand_holder.dmi',
|
|
)
|
|
pixel_y = 8
|
|
|
|
/obj/item/weapon/holder/New()
|
|
..()
|
|
processing_objects.Add(src)
|
|
|
|
/obj/item/weapon/holder/Destroy()
|
|
processing_objects.Remove(src)
|
|
..()
|
|
|
|
/obj/item/weapon/holder/process()
|
|
|
|
if(istype(loc,/turf) || !(contents.len))
|
|
|
|
for(var/mob/M in contents)
|
|
|
|
var/atom/movable/mob_container
|
|
mob_container = M
|
|
mob_container.forceMove(get_turf(src))
|
|
M.reset_view()
|
|
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/holder/proc/sync(var/mob/living/M)
|
|
dir = 2
|
|
overlays.Cut()
|
|
icon = M.icon
|
|
icon_state = M.icon_state
|
|
color = M.color
|
|
name = M.name
|
|
desc = M.desc
|
|
overlays |= M.overlays
|
|
var/mob/living/carbon/human/H = loc
|
|
if(istype(H))
|
|
if(H.l_hand == src)
|
|
H.update_inv_l_hand()
|
|
else if(H.r_hand == src)
|
|
H.update_inv_r_hand()
|
|
else
|
|
H.regenerate_icons()
|
|
|
|
//Mob specific holders.
|
|
/obj/item/weapon/holder/diona
|
|
origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 5)
|
|
slot_flags = SLOT_HEAD | SLOT_OCLOTHING
|
|
|
|
/obj/item/weapon/holder/drone
|
|
origin_tech = list(TECH_MAGNET = 3, TECH_ENGINERING = 5)
|
|
|
|
/obj/item/weapon/holder/mouse
|
|
w_class = 1
|
|
|
|
/obj/item/weapon/holder/borer
|
|
origin_tech = list(TECH_BIO = 6)
|
|
|
|
/obj/item/weapon/holder/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
for(var/mob/M in src.contents)
|
|
M.attackby(W,user)
|
|
|
|
//Mob procs and vars for scooping up
|
|
/mob/living/var/holder_type
|
|
|
|
/mob/living/proc/get_scooped(var/mob/living/carbon/grabber)
|
|
if(!holder_type || buckled || pinned.len)
|
|
return
|
|
|
|
var/obj/item/weapon/holder/H = new holder_type(loc)
|
|
src.loc = H
|
|
H.name = loc.name
|
|
H.attack_hand(grabber)
|
|
|
|
grabber << "You scoop up [src]."
|
|
src << "[grabber] scoops you up."
|
|
grabber.status_flags |= PASSEMOTES
|
|
H.sync(src)
|
|
return H
|