mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-21 21:10:30 +01:00
2a30beca54
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  Sampler + Tissue/Soil/Water attachments    Net Container  Microscope, Centrifuge and Spectrophotometer in R&D  Stasis Cages  ### 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>
79 lines
2.1 KiB
Plaintext
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 ..()
|
|
|
|
|
|
|