mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-22 04:28:33 +01:00
Cleaning up some holder/scoop/climbing code.
This commit is contained in:
+20
-10
@@ -27,16 +27,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/proc/sync(var/mob/living/M)
|
||||
@@ -79,17 +83,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
|
||||
|
||||
@@ -1372,8 +1372,8 @@
|
||||
|
||||
/mob/living/carbon/human/MouseDrop(var/atom/over_object)
|
||||
var/mob/living/carbon/human/H = over_object
|
||||
if(holder_type && a_intent == "help" && istype(H) && H.a_intent == "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 ..()
|
||||
|
||||
|
||||
@@ -274,9 +274,6 @@
|
||||
O.owner = H
|
||||
|
||||
/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)
|
||||
|
||||
@@ -413,8 +413,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
|
||||
|
||||
@@ -89,11 +89,6 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/mouse/get_scooped(var/mob/living/carbon/grabber)
|
||||
if (stat >= DEAD)
|
||||
return
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/mouse/start_pulling(var/atom/movable/AM)//Prevents mouse from pulling things
|
||||
src << "<span class='warning'>You are too small to pull anything.</span>"
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user