mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-06 15:32:25 +00:00
@@ -28,16 +28,20 @@ var/list/holder_mob_icon_cache = list()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/holder/process()
|
||||
update_state()
|
||||
|
||||
/obj/item/weapon/holder/dropped()
|
||||
..()
|
||||
spawn(1)
|
||||
update_state()
|
||||
|
||||
/obj/item/weapon/proc/update_state()
|
||||
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/GetID()
|
||||
@@ -90,17 +94,23 @@ var/list/holder_mob_icon_cache = list()
|
||||
//Mob procs and vars for scooping up
|
||||
/mob/living/var/holder_type
|
||||
|
||||
/mob/living/proc/get_scooped(var/mob/living/carbon/grabber)
|
||||
/mob/living/proc/get_scooped(var/mob/living/carbon/grabber, var/self_grab)
|
||||
|
||||
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)
|
||||
var/obj/item/weapon/holder/H = new holder_type(get_turf(src))
|
||||
src.forceMove(H)
|
||||
grabber.put_in_hands(H)
|
||||
|
||||
if(self_grab)
|
||||
grabber << "<span class='notice'>\The [src] clambers onto you!</span>"
|
||||
src << "<span class='notice'>You climb up onto \the [grabber]!</span>"
|
||||
grabber.equip_to_slot_if_possible(H, slot_back, 0, 1)
|
||||
else
|
||||
grabber << "<span class='notice'>You scoop up \the [src]!</span>"
|
||||
src << "<span class='notice'>\The [grabber] scoops you up!</span>"
|
||||
|
||||
grabber << "You scoop up [src]."
|
||||
src << "[grabber] scoops you up."
|
||||
grabber.status_flags |= PASSEMOTES
|
||||
H.sync(src)
|
||||
return H
|
||||
|
||||
@@ -1385,8 +1385,8 @@
|
||||
|
||||
/mob/living/carbon/human/MouseDrop(var/atom/over_object)
|
||||
var/mob/living/carbon/human/H = over_object
|
||||
if(holder_type && a_intent == I_HELP && istype(H) && H == usr && H.a_intent == I_HELP && !issmall(H) && Adjacent(H))
|
||||
get_scooped(H)
|
||||
if(holder_type && istype(H) && !H.lying && !issmall(H) && Adjacent(H))
|
||||
get_scooped(H, (usr == src))
|
||||
return
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -256,9 +256,6 @@
|
||||
H.internal_organs_by_name[organ_tag] = O
|
||||
|
||||
/datum/species/proc/hug(var/mob/living/carbon/human/H,var/mob/living/target)
|
||||
if (target.holder_type && target.a_intent == "help" && H.a_intent == "help")
|
||||
target.get_scooped(H)
|
||||
return
|
||||
|
||||
var/t_him = "them"
|
||||
switch(target.gender)
|
||||
|
||||
@@ -398,8 +398,8 @@
|
||||
return 0
|
||||
|
||||
// Handle being picked up.
|
||||
/mob/living/silicon/pai/get_scooped(var/mob/living/carbon/grabber)
|
||||
var/obj/item/weapon/holder/H = ..()
|
||||
/mob/living/silicon/pai/get_scooped(var/mob/living/carbon/grabber, var/self_drop)
|
||||
var/obj/item/weapon/holder/H = ..(grabber, self_drop)
|
||||
if(!istype(H))
|
||||
return
|
||||
H.icon_state = "pai-[icon_state]"
|
||||
|
||||
@@ -135,11 +135,6 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/cat/get_scooped(var/mob/living/carbon/grabber)
|
||||
if (stat >= DEAD)
|
||||
return //since the holder icon looks like a living cat
|
||||
..()
|
||||
|
||||
//Basic friend AI
|
||||
/mob/living/simple_animal/cat/fluff
|
||||
var/mob/living/carbon/human/friend
|
||||
|
||||
@@ -88,11 +88,6 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/mouse/get_scooped(var/mob/living/carbon/grabber)
|
||||
if (stat >= DEAD)
|
||||
return
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/mouse/Crossed(AM as mob|obj)
|
||||
if( ishuman(AM) )
|
||||
if(!stat)
|
||||
|
||||
Reference in New Issue
Block a user