mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Cleaned up holders a bit, added show_message() proc to them, added loops in custom_emote to show emotes to things in inventories with the right flag.
This commit is contained in:
@@ -858,6 +858,7 @@
|
|||||||
#include "code\modules\mob\death.dm"
|
#include "code\modules\mob\death.dm"
|
||||||
#include "code\modules\mob\emote.dm"
|
#include "code\modules\mob\emote.dm"
|
||||||
#include "code\modules\mob\hear_say.dm"
|
#include "code\modules\mob\hear_say.dm"
|
||||||
|
#include "code\modules\mob\holder.dm"
|
||||||
#include "code\modules\mob\inventory.dm"
|
#include "code\modules\mob\inventory.dm"
|
||||||
#include "code\modules\mob\language.dm"
|
#include "code\modules\mob\language.dm"
|
||||||
#include "code\modules\mob\login.dm"
|
#include "code\modules\mob\login.dm"
|
||||||
|
|||||||
@@ -39,12 +39,30 @@
|
|||||||
// Type 1 (Visual) emotes are sent to anyone in view of the item
|
// Type 1 (Visual) emotes are sent to anyone in view of the item
|
||||||
if (m_type & 1)
|
if (m_type & 1)
|
||||||
for (var/mob/O in viewers(src, null))
|
for (var/mob/O in viewers(src, null))
|
||||||
|
|
||||||
|
if(O.status_flags & PASSEMOTES)
|
||||||
|
|
||||||
|
for(var/obj/item/weapon/holder/H in O.contents)
|
||||||
|
H.show_message(message, m_type)
|
||||||
|
|
||||||
|
for(var/mob/living/M in O.contents)
|
||||||
|
M.show_message(message, m_type)
|
||||||
|
|
||||||
O.show_message(message, m_type)
|
O.show_message(message, m_type)
|
||||||
|
|
||||||
// Type 2 (Audible) emotes are sent to anyone in hear range
|
// Type 2 (Audible) emotes are sent to anyone in hear range
|
||||||
// of the *LOCATION* -- this is important for pAIs to be heard
|
// of the *LOCATION* -- this is important for pAIs to be heard
|
||||||
else if (m_type & 2)
|
else if (m_type & 2)
|
||||||
for (var/mob/O in hearers(get_turf(src), null))
|
for (var/mob/O in hearers(get_turf(src), null))
|
||||||
|
|
||||||
|
if(O.status_flags & PASSEMOTES)
|
||||||
|
|
||||||
|
for(var/obj/item/weapon/holder/H in O.contents)
|
||||||
|
H.show_message(message, m_type)
|
||||||
|
|
||||||
|
for(var/mob/living/M in O.contents)
|
||||||
|
M.show_message(message, m_type)
|
||||||
|
|
||||||
O.show_message(message, m_type)
|
O.show_message(message, m_type)
|
||||||
|
|
||||||
/mob/proc/emote_dead(var/message)
|
/mob/proc/emote_dead(var/message)
|
||||||
|
|||||||
51
code/modules/mob/holder.dm
Normal file
51
code/modules/mob/holder.dm
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
//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
|
||||||
|
|
||||||
|
/obj/item/weapon/holder/New()
|
||||||
|
..()
|
||||||
|
processing_objects.Add(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/holder/Del()
|
||||||
|
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()
|
||||||
|
|
||||||
|
del(src)
|
||||||
|
|
||||||
|
/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)
|
||||||
|
|
||||||
|
/obj/item/weapon/holder/proc/show_message(var/message, var/m_type)
|
||||||
|
for(var/mob/living/M in contents)
|
||||||
|
M.show_message(message,m_type)
|
||||||
|
|
||||||
|
//Mob specific holders.
|
||||||
|
|
||||||
|
/obj/item/weapon/holder/diona
|
||||||
|
|
||||||
|
name = "diona nymph"
|
||||||
|
desc = "It's a tiny plant critter."
|
||||||
|
icon_state = "nymph"
|
||||||
|
origin_tech = "magnets=3;biotech=5"
|
||||||
|
|
||||||
|
/obj/item/weapon/holder/drone
|
||||||
|
|
||||||
|
name = "maintenance drone"
|
||||||
|
desc = "It's a small maintenance robot."
|
||||||
|
icon_state = "drone"
|
||||||
|
origin_tech = "magnets=3;engineering=5"
|
||||||
@@ -2,45 +2,6 @@
|
|||||||
Tiny babby plant critter plus procs.
|
Tiny babby plant critter plus procs.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//Helper object for picking dionaea (and other creatures) up.
|
|
||||||
/obj/item/weapon/holder
|
|
||||||
name = "holder"
|
|
||||||
desc = "You shouldn't ever see this."
|
|
||||||
|
|
||||||
/obj/item/weapon/holder/diona
|
|
||||||
|
|
||||||
name = "diona nymph"
|
|
||||||
desc = "It's a tiny plant critter."
|
|
||||||
icon = 'icons/obj/objects.dmi'
|
|
||||||
icon_state = "nymph"
|
|
||||||
slot_flags = SLOT_HEAD
|
|
||||||
origin_tech = "magnets=3;biotech=5"
|
|
||||||
|
|
||||||
/obj/item/weapon/holder/New()
|
|
||||||
..()
|
|
||||||
processing_objects.Add(src)
|
|
||||||
|
|
||||||
/obj/item/weapon/holder/Del()
|
|
||||||
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()
|
|
||||||
|
|
||||||
del(src)
|
|
||||||
|
|
||||||
/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 defines.
|
//Mob defines.
|
||||||
/mob/living/carbon/monkey/diona
|
/mob/living/carbon/monkey/diona
|
||||||
name = "diona nymph"
|
name = "diona nymph"
|
||||||
|
|||||||
@@ -33,18 +33,6 @@
|
|||||||
layer = MOB_LAYER
|
layer = MOB_LAYER
|
||||||
src << text("\blue You have stopped hiding.")
|
src << text("\blue You have stopped hiding.")
|
||||||
|
|
||||||
//DRONE PICKUP.
|
|
||||||
//Item holder.
|
|
||||||
/obj/item/weapon/holder/drone
|
|
||||||
|
|
||||||
name = "maintenance drone"
|
|
||||||
desc = "It's a small maintenance robot."
|
|
||||||
icon = 'icons/obj/objects.dmi'
|
|
||||||
icon_state = "drone"
|
|
||||||
slot_flags = SLOT_HEAD
|
|
||||||
origin_tech = "magnets=3;engineering=5"
|
|
||||||
|
|
||||||
|
|
||||||
//Actual picking-up event.
|
//Actual picking-up event.
|
||||||
/mob/living/silicon/robot/drone/attack_hand(mob/living/carbon/human/M as mob)
|
/mob/living/silicon/robot/drone/attack_hand(mob/living/carbon/human/M as mob)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user