New redgate Islands map

Added a new redgate islands map. This consists of two Z-levels: An ocean with a few islands to visit, many with vore mobs on them. An underwater Z-level with lots of things to find hidden around the ocean floor, a little more sparse on vore mobs.

Added a new underwater turf. Standing on this turf feeds you CO2 instead of air, suffocating you. It is a subset of water turfs, and therefore interacts with aquatic, which also allows you to breathe on these turfs. This does mean that you can use the "dive" ability of aquatic under the water too, but it can be treated as though you are swimming up above the sea floor.

Added a "diving" subset of the ocean turf, which allows you to dive down to the turf beneath it, or to swim up from below. Uses normal move up/down verbs.

Added a bunch of underwater flora.

Added a collapsed ships mast prop.

Added a new variation of Fake_Sun that applies a new underwater weather effect and has only one option for the colour and brightness.

Added a new "vorny" variation of the great white carp. This one is very hard to escape from and digests quickly, but is stunned if you manage to do so to give you a chance to flee.

Added a new water resistant and friendly hiveless hivebot called Harry.

Added a couple of creative commons 0 sound effects for the ocean and underwater areas.
This commit is contained in:
SatinIsle
2023-08-30 14:51:00 +01:00
parent b7ae14e27a
commit ee1baecdba
24 changed files with 44565 additions and 8 deletions
+26 -3
View File
@@ -46,15 +46,28 @@
to_chat(src, "<span class='warning'>\The [start] is in the way.</span>")
return 0
if(!destination.CanZPass(src, direction))
to_chat(src, "<span class='warning'>\The [destination] blocks your way.</span>")
return 0
if(direction == DOWN)
var/turf/simulated/floor/water/deep/ocean/diving/sink = start
if(istype(sink) && !destination.density)
var/pull_up_time = max(3 SECONDS + (src.movement_delay() * 10), 1)
to_chat(src, "<span class='notice'>You start diving underwater...</span>")
src.audible_message("<span class='notice'>[src] begins to dive under the water.</span>", runemessage = "splish splosh")
if(do_after(src, pull_up_time))
to_chat(src, "<span class='notice'>You reach the sea floor.</span>")
else
to_chat(src, "<span class='warning'>You stopped swimming downwards.</span>")
return 0
else if(!destination.CanZPass(src, direction))
to_chat(src, "<span class='warning'>\The [destination] blocks your way.</span>")
return 0
var/area/area = get_area(src)
if(area.has_gravity() && !can_overcome_gravity())
if(direction == UP)
var/obj/structure/lattice/lattice = locate() in destination.contents
var/obj/structure/catwalk/catwalk = locate() in destination.contents
var/turf/simulated/floor/water/deep/ocean/diving/surface = destination
if(lattice)
var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
@@ -66,6 +79,16 @@
to_chat(src, "<span class='warning'>You gave up on pulling yourself up.</span>")
return 0
else if(istype(surface))
var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
to_chat(src, "<span class='notice'>You start swimming upwards...</span>")
src.audible_message("<span class='notice'>[src] begins to swim towards the surface.</span>", runemessage = "splish splosh")
if(do_after(src, pull_up_time))
to_chat(src, "<span class='notice'>You reach the surface.</span>")
else
to_chat(src, "<span class='warning'>You stopped swimming upwards.</span>")
return 0
else if(catwalk?.hatch_open)
var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1)
to_chat(src, "<span class='notice'>You grab the edge of \the [catwalk] and start pulling yourself upward...</span>")