Files
Sparky 2a30beca54 Expedition Fluff Expansion - Stasis cages, Safari Nets & Sampling Tools (#19365)
Ports stasis cages from Baystation, for storage and transport of simple
mobs. These mobs must first be caught in an energy net, and this adds a
weaker energy net variant (safari net) as well as a way to transport
them and a dispenser for them in xenobiology.

Adds science samplers, available to every science role (lockers or
xenobiology lab due to xenobiology not having lockers). These must be
loaded with vials, and can then be used to extract plant/animal tissue
samples, soil samples or water samples. Added a low power microscope, as
well as a centrifuge and spectrophotometer, for analysing each of those
sample types respectively.

Note: The fluff text for tissue samples at the moment has more detail
for common mobs, such as carp or greimorians, and Moghes mobs as they
are the most prevalent right now. I'm not great at writing, so I'd
encourage others who are to add more descriptions over time.

Microscope & Net Dispenser in Xenobiology

![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/447f8e40-215a-411b-9939-e7c9d018f100)
Sampler + Tissue/Soil/Water attachments

![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/e53342af-540a-498f-a6ed-b7138fb6b689)
![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/eaa10ca8-9a2e-4ff5-93e2-686e981b2a7b)
![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/272637da-3eee-460a-9320-467a04623ce5)
Net Container

![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/45c598d9-c568-44fb-9f31-09fc2296e062)
Microscope, Centrifuge and Spectrophotometer in R&D

![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/1b85dd86-074b-4dd2-a1f8-8da64486232c)
Stasis Cages

![image](https://github.com/Aurorastation/Aurora.3/assets/26849270/d3526762-41ae-4798-a4df-f41d2613664d)

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| icons/obj/machinery/stasis_cage.dmi | mustafakalash (Baystation12) |
CC BY-SA 3.0 |

---------

Signed-off-by: Sparky. <ben.polwart@gmail.com>
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
2024-06-26 12:08:27 +00:00

79 lines
2.1 KiB
Plaintext

/*
Safari Net
*/
/obj/item/energy_net/safari
name = "safari net"
desc = "A low power energized net meant to subdue animals."
icon_state = "safarinet"
net_type = /obj/effect/energy_net/safari
/obj/effect/energy_net/safari
name = "safari net"
desc = "A low power energized net meant to subdue animals."
icon_state = "safari_net"
health = 5
/obj/item/net_container
name = "safari net container"
desc = "A cylindrical device designed to stabilise safari energy nets for transport."
icon = 'icons/obj/item/net_container.dmi'
icon_state = "net_tube"
item_state = "net_tube"
/**
* How many nets we have "stored"
*/
var/nets = 0
/obj/item/net_container/attackby(obj/item/attacking_item, mob/user, params)
. = ..()
if(istype(attacking_item, /obj/item/energy_net/safari))
if(nets < 3)
nets++
to_chat(user, SPAN_NOTICE("\The [src] hums as it stores the energy of \the [attacking_item] inside."))
qdel(attacking_item)
update_icon()
return
to_chat(user, SPAN_NOTICE("\The [src] is too full to store \the [attacking_item]!"))
return
/obj/item/net_container/attack_hand(mob/user)
if(nets)
nets--
to_chat(user, SPAN_NOTICE("\The [src] hums as it forms a new net in your hand."))
var/obj/item/energy_net/safari/net = new /obj/item/energy_net/safari(src)
user.put_in_active_hand(net)
update_icon()
return
return ..()
/obj/item/net_container/update_icon()
. = ..()
ClearOverlays()
if(nets)
var/image/over = overlay_image(icon, "[icon_state]_[nets]")
AddOverlays(over)
/obj/structure/net_dispenser
name = "safari net dispenser"
desc = "A wall mounted dispenser capable to producing low power energy nets, suitable for trapping fauna."
icon = 'icons/obj/item/net_container.dmi'
icon_state = "net_dispenser"
/**
* How many nets we can dispense.
* This should be enough, as they're not really meant to be limitted on this end
*/
var/nets = 30
/obj/structure/net_dispenser/attack_hand(mob/living/user)
if(nets)
nets--
to_chat(user, SPAN_NOTICE("\The [src] hums as it forms a new net in your hand."))
var/obj/item/energy_net/safari/net = new /obj/item/energy_net/safari(src)
user.put_in_active_hand(net)
return
return ..()