Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

the great beach gateway revamp #13122

Closed
wants to merge 18 commits into from
Closed
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
5a95630
the great beach gateway revamp
Darkmight9 Mar 14, 2020
5c72fd5
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Mar 14, 2020
6cb4580
updates the host's access to the new deffine access list
Darkmight9 Mar 14, 2020
327ed4f
Merge branch 'master' into revamp_beach_gateway
Darkmight9 Mar 25, 2020
cfd20b5
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Mar 25, 2020
76c88b8
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Oct 1, 2020
0093b29
Deconflicted and updated!
Darkmight9 Oct 7, 2020
2ff0779
HY
Darkmight9 Oct 7, 2020
ddcd628
Implements Lemon's suggestion about the brass walls and floors
Darkmight9 Oct 7, 2020
6166d09
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Oct 16, 2020
4bd03eb
Deconflicts and implements Steel's changes
Darkmight9 Oct 16, 2020
1018a49
Fixes icons and the map, the point of sale had been removed and was i…
Darkmight9 Oct 17, 2020
5a0928e
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Oct 20, 2020
c2e572f
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Oct 20, 2020
528808f
Gateway now for certain connects to the station and made some minor e…
Darkmight9 Oct 22, 2020
cdfb90c
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Oct 22, 2020
8e338f0
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Darkmight9 Nov 18, 2020
dc5c497
Deconflicts and implements feedback
Darkmight9 Nov 18, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
32,928 changes: 18,080 additions & 14,848 deletions _maps/map_files/RandomZLevels/beach.dmm

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion code/__DEFINES/sound.dm
Expand Up @@ -63,7 +63,7 @@
'sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', 'sound/ambience/ambimaint.ogg',\
'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg', 'sound/ambience/ambiodd.ogg')


#define BEACH_SOUNDS list('sound/ambience/shore.ogg')

#define CREEPY_SOUNDS list('sound/effects/ghost.ogg', 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg',\
'sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/far_noise.ogg', 'sound/hallucinations/growl1.ogg', 'sound/hallucinations/growl2.ogg',\
Expand Down
11 changes: 10 additions & 1 deletion code/game/area/ss13_areas.dm
Expand Up @@ -2062,12 +2062,21 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "beach"
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
requires_power = FALSE
ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg', 'sound/ambience/seag2.ogg', 'sound/ambience/seag2.ogg', 'sound/ambience/ambiodd.ogg', 'sound/ambience/ambinice.ogg')
ambientsounds = BEACH_SOUNDS

/area/awaymission/beach/entrance //this extra area here is to cause the ambiance to play since going through gateways doesn't count as moving to a new area.

/area/awaymission/beach/boundary

/area/awaymission/beach/offshore
name = "Offshore location"

/area/awaymission/undersea
name = "Undersea"
icon_state = "undersea"
ambientsounds = RUINS_SOUNDS

/area/awaymission/undersea/entrance //same with the beach entrance area.

////////////////////////AWAY AREAS///////////////////////////////////

Expand Down
8 changes: 8 additions & 0 deletions code/game/machinery/dance_machine.dm
Expand Up @@ -483,3 +483,11 @@
playsound(src,'sound/machines/terminal_off.ogg',50,1)
icon_state = "disco0"
stop = world.time + 100

/obj/machinery/disco/immobile
name = "radiant dance machine mark V"
desc = "After repeated theft incidents with previous models, the MKV is rendered completely immovable, its stand made from plastitanium and connected to a large concrete foundation underground."
anchored = TRUE

/obj/machinery/disco/immobile/wrench_act()
return
41 changes: 41 additions & 0 deletions code/game/machinery/door_control.dm
Expand Up @@ -124,3 +124,44 @@
icon_state = "doorctrl-p"
else
icon_state = "doorctrl0"

/obj/machinery/door_control/brass
name = "brass door-control"
desc = "A brass remote control-switch for a door."
icon = 'icons/obj/clockwork_objects.dmi'

/obj/machinery/door_control/brass/beach_brass_temple_switch/Initialize()
. = ..()
id = "brassbeachtempledoor[rand(1, 12)]"

/obj/machinery/door_control/brass/beach_brass_temple_switch/attack_hand(mob/user as mob)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't need the as mob since it's already defined as mob/user.

Suggested change
/obj/machinery/door_control/brass/beach_brass_temple_switch/attack_hand(mob/user as mob)
/obj/machinery/door_control/brass/beach_brass_temple_switch/attack_hand(mob/user)

. = ..()
var/temple_traps = rand(1,10) //no forbidden temple is complete without some traps!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spacing

Suggested change
var/temple_traps = rand(1,10) //no forbidden temple is complete without some traps!
var/temple_traps = rand(1, 10) //no forbidden temple is complete without some traps!

Copy link
Contributor

@SabreML SabreML Feb 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You've got a lot of separate get_turf(src) here. It'd be better to just make it a variable next to temple_traps and use that instead.
e.g.

Suggested change
var/temple_traps = rand(1,10) //no forbidden temple is complete without some traps!
var/turf/T = get_turf(src)
var/temple_traps = rand(1, 10) //no forbidden temple is complete without some traps!

(Also, spacing)

switch(temple_traps)
if(1 to 5)//You're safe, this time.
return
if(6,7)
new /mob/living/simple_animal/hostile/poison/giant_spider(get_turf(src))
visible_message("<span class='boldannounce'>A hatch opens above you and a giant spider falls down on your head!</span>")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want a different span class here for consistency. boldwarning or userdanger maybe.

playsound(get_turf(src), 'sound/effects/bin_close.ogg', 200, TRUE)
if(8,9)
addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, user.loc, -1, rand(1,5), rand(1,5), rand(1,5), rand(1,5), 1, 0, 2), 50)
playsound(get_turf(src), 'sound/mecha/powerup.ogg', 200, TRUE)
visible_message("<span class='boldannounce'>A high pitched whine can be heard and the walls looks to be heating up!</span>")
if(10)
for(var/mob/M in range(5, src))
shake_camera(M, 15, 1)
visible_message("<span class='boldannounce'>The ground begins to shake and roaring machinery can be heard! RUN!</span>")
addtimer(CALLBACK(src, .proc/temple_collapse), 5 SECONDS)

/obj/machinery/door_control/brass/beach_brass_temple_switch/proc/temple_collapse()
for(var/mob/M in range(20, src))
shake_camera(M, 15, 1)
playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, TRUE)
visible_message("<span class='boldannounce'>The brass floor collapses and forms a massive pit!</span>")
for(var/turf/T in range(4,src))
if(!T.density)
T.TerraformTurf(/turf/simulated/floor/chasm/straight_down/lava_land_surface)
qdel(src)


9 changes: 9 additions & 0 deletions code/game/machinery/doors/poddoor.dm
Expand Up @@ -133,3 +133,12 @@
icon = 'icons/obj/doors/1x2blast_hor.dmi'
width = 2
dir = EAST

/obj/machinery/door/poddoor/brass
name = "brass blast door"
desc = "A great brass blast door. It looks like it can withstand a lot of punishment."
icon = 'icons/obj/doors/blastdoor_brass.dmi'

/obj/machinery/door/poddoor/brass/beach_brass_temple/Initialize()
. = ..()
id_tag = "brassbeachtempledoor[rand(1, 12)]"
5 changes: 5 additions & 0 deletions code/game/machinery/tcomms/presets.dm
Expand Up @@ -30,3 +30,8 @@
autolink_id = "STATION-CORE"
hidden_link = TRUE

/obj/machinery/tcomms/relay/beachresort
network_id = "BEACH-RESORT"
autolink_id = "STATION-CORE"
active = FALSE
hidden_link = TRUE
12 changes: 10 additions & 2 deletions code/game/objects/effects/mapping_helpers.dm
Expand Up @@ -42,6 +42,14 @@
name = "beach sand baseturf editor"
baseturf = /turf/simulated/floor/beach/sand

/obj/effect/baseturf_helper/beach/roughsand
name = "beach sand baseturf editor"
baseturf =/turf/simulated/floor/beach/roughsand

/obj/effect/baseturf_helper/beach/dense_roughsand
name = "beach sand baseturf editor"
baseturf =/turf/simulated/floor/beach/roughsand/dense
Comment on lines +45 to +51
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spacing

Suggested change
/obj/effect/baseturf_helper/beach/roughsand
name = "beach sand baseturf editor"
baseturf =/turf/simulated/floor/beach/roughsand
/obj/effect/baseturf_helper/beach/dense_roughsand
name = "beach sand baseturf editor"
baseturf =/turf/simulated/floor/beach/roughsand/dense
/obj/effect/baseturf_helper/beach/roughsand
name = "beach sand baseturf editor"
baseturf = /turf/simulated/floor/beach/roughsand
/obj/effect/baseturf_helper/beach/dense_roughsand
name = "beach sand baseturf editor"
baseturf = /turf/simulated/floor/beach/roughsand/dense


/obj/effect/baseturf_helper/beach/water
name = "water baseturf editor"
baseturf = /turf/simulated/floor/beach/water
Expand All @@ -61,7 +69,7 @@

/obj/effect/mapping_helpers/Initialize(mapload)
..()

return late ? INITIALIZE_HINT_LATELOAD : qdel(src) // INITIALIZE_HINT_QDEL <-- Doesn't work

/obj/effect/mapping_helpers/no_lava
Expand All @@ -83,7 +91,7 @@
airlock.unres_sides ^= dir
else
log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]")
..()
..()
/obj/effect/mapping_helpers/no_lava/New()
var/turf/T = get_turf(src)
T.flags |= NO_LAVA_GEN
Expand Down
18 changes: 18 additions & 0 deletions code/game/objects/effects/spawners/lootdrop.dm
Expand Up @@ -403,3 +403,21 @@
/obj/effect/spawner/lootdrop/three_course_meal/New()
loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
. = ..()

/obj/effect/spawner/lootdrop/brass_temple_spawner
name = "brass temple spawner"
lootdoubles = FALSE

loot = list(
/obj/item/clockwork/component/geis_capacitor/fallen_armor = 2, //you got lucky in a bad way
/obj/item/clockwork/alloy_shards/large = 4,
/obj/item/clockwork/alloy_shards/pinion_lock = 2,
/obj/item/clockwork/alloy_shards/clockgolem_remains = 3,
/obj/item/stack/tile/brass = 8, //general loot
/obj/item/stack/tile/brass/five =6,
/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/ocular_warden = 6, //your prize is a fight yay!
/obj/structure/clockwork/decorative/obelisk = 4,
/obj/item/stack/tile/brass/twenty =2, //jackpot
/obj/item/storage/toolbox/brass =2,
/obj/item/storage/toolbox/brass/prefilled = 1,
/obj/item/clockwork/weapon/ratvarian_spear = 1)
14 changes: 14 additions & 0 deletions code/game/objects/items/stacks/sheets/sheet_types.dm
Expand Up @@ -170,6 +170,9 @@ GLOBAL_LIST_INIT(wood_recipes, list(
new /datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20),
new /datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \
new /datum/stack_recipe("wooden chair", /obj/structure/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("beach chair, blue", /obj/structure/chair/beachchair, 3, time = 10, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("beach chair, red", /obj/structure/chair/beachchair/red, 3, time = 10, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("wooden lounge chair", /obj/structure/bed/wooden_lounge_chair, 5, time = 15, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("bookcase", /obj/structure/bookcase, 5, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("dresser", /obj/structure/dresser, 30, time = 50, one_per_turf = 1, on_floor = 1),
Expand Down Expand Up @@ -408,6 +411,11 @@ GLOBAL_LIST_INIT(brass_recipes, list (\
new/datum/stack_recipe/window("fulltile brass window", /obj/structure/window/reinforced/clockwork/fulltile, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \
new/datum/stack_recipe("brass chair", /obj/structure/chair/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("prolonging prism", /obj/structure/clockwork/decorative/prolonging_prism, 3, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("mania motor", /obj/structure/clockwork/decorative/mania_motor, 3, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("brass obelisk", /obj/structure/clockwork/decorative/obelisk, 3, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("tinkerers cache", /obj/structure/clockwork/decorative/tinkerers_cache, 3, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("brass relay", /obj/structure/clockwork/decorative/relay, 3, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
))

/obj/item/stack/tile/brass
Expand All @@ -433,6 +441,12 @@ GLOBAL_LIST_INIT(brass_recipes, list (\
pixel_x = 0
pixel_y = 0

/obj/item/stack/tile/brass/five
amount = 5

/obj/item/stack/tile/brass/twenty
amount = 20

/obj/item/stack/tile/brass/fifty
amount = 50

Expand Down
4 changes: 2 additions & 2 deletions code/game/objects/structures/ladders.dm
Expand Up @@ -177,7 +177,7 @@

/obj/structure/ladder/unbreakable/dive_point/buoy
name = "diving point buoy"
desc = "A buoy marking the location of an underwater dive area."
desc = "A buoy marking the location of an underwater dive area. <span class='boldnotice'>You can pull people and objects along with you</span>" //the notice is because several people didn't know you could do this and I feel it's important people knew
icon = 'icons/misc/beach.dmi'
icon_state = "buoy"
id = "dive"
Expand All @@ -187,7 +187,7 @@

/obj/structure/ladder/unbreakable/dive_point/anchor
name = "diving point anchor"
desc = "An anchor tethered to the buoy at the surface, to keep the dive area marked."
desc = "An anchor tethered to the buoy at the surface, to keep the dive area marked. <span class='boldnotice'>You can pull people and objects along with you</span>"
icon = 'icons/misc/beach.dmi'
icon_state = "anchor"
id = "dive"
Expand Down
14 changes: 14 additions & 0 deletions code/game/objects/structures/stool_bed_chair_nest/bed.dm
Expand Up @@ -31,6 +31,20 @@
icon_state = "psychbed"
buildstackamount = 5

/obj/structure/bed/wooden_lounge_chair
name = "wooden lounge chair"
desc = "Time to lay back and soak in the solar rays."
icon_state = "wooden_lounge_chair"
can_buckle = TRUE
anchored = TRUE
buckle_lying = TRUE
resistance_flags = FLAMMABLE
max_integrity = 100
integrity_failure = 30
Comment on lines +38 to +43
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of these variables are the same on the parent /obj/structure/bed, so you can remove them.

buildstacktype = /obj/item/stack/sheet/wood
buildstackamount = 5


/obj/structure/bed/alien
name = "resting contraption"
desc = "This looks similar to contraptions from Earth. Could aliens be stealing our technology?"
Expand Down
13 changes: 13 additions & 0 deletions code/game/objects/structures/stool_bed_chair_nest/chairs.dm
Expand Up @@ -165,6 +165,19 @@
icon_state = "wooden_chair_wings"
item_chair = /obj/item/chair/wood/wings

/obj/structure/chair/beachchair
name = "beach chair"
desc = "Time to take a load off and relax."
icon_state = "beach_chair"
resistance_flags = FLAMMABLE
max_integrity = 50
buildstackamount = 3
buildstacktype = /obj/item/stack/sheet/wood
item_chair = null

/obj/structure/chair/beachchair/red
icon_state = "beach_chair_red"

/obj/structure/chair/comfy
name = "comfy chair"
desc = "It looks comfy."
Expand Down
34 changes: 31 additions & 3 deletions code/game/turfs/simulated/floor/misc_floor.dm
Expand Up @@ -42,14 +42,41 @@
/turf/simulated/floor/beach
name = "beach"
icon = 'icons/misc/beach.dmi'
var/water_overlay_image

/turf/simulated/floor/beach/pry_tile(obj/item/C, mob/user, silent = FALSE)
/turf/simulated/floor/beach/crowbar_act()
return

/turf/simulated/floor/beach/sand
name = "sand"
icon_state = "sand"

/turf/simulated/floor/beach/roughsand
name = "Sand"
icon_state = "rough_sand1"

/turf/simulated/floor/beach/roughsand/dense //made simulated versions to fix lighting issues
density = TRUE

/turf/simulated/floor/beach/roughsand/New() //a simulated version of the unsimulated beach sand
icon_state = "rough_sand[rand(1, 6)]"
..()

/turf/simulated/floor/beach/roughcoastline/New()
..()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
..()
. = ..()

if(water_overlay_image)
var/image/overlay_image = image('icons/misc/beach.dmi', icon_state = water_overlay_image, layer = ABOVE_MOB_LAYER)
overlay_image.plane = GAME_PLANE
add_overlay(overlay_image)

/turf/simulated/floor/beach/roughcoastline
name = "Coastline"
icon_state = "beach"
water_overlay_image = "water_coast"

/turf/simulated/floor/beach/roughcoastline/dense //for boundary "walls"
density = TRUE

/turf/simulated/floor/beach/coastline
name = "coastline"
icon = 'icons/misc/beach2.dmi'
Expand Down Expand Up @@ -132,7 +159,8 @@
/turf/simulated/floor/clockwork
name = "clockwork floor"
desc = "Tightly-pressed brass tiles. They emit minute vibration."
icon_state = "plating"
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "clockwork_floor"
baseturf = /turf/simulated/floor/clockwork
var/dropped_brass
var/uses_overlay = TRUE
Expand All @@ -146,7 +174,7 @@
realappearence = new /obj/effect/clockwork/overlay/floor(src)
realappearence.linked = src

/turf/simulated/floor/clockwork/Destroy()
/turf/simulated/floor/clockwork/BeforeChange()
if(uses_overlay && realappearence)
QDEL_NULL(realappearence)
return ..()
Expand Down
27 changes: 5 additions & 22 deletions code/game/turfs/simulated/walls_misc.dm
Expand Up @@ -54,6 +54,8 @@
/turf/simulated/wall/clockwork
name = "clockwork wall"
desc = "A huge chunk of warm metal. The clanging of machinery emanates from within."
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "clockwork_wall"
explosion_block = 2
hardness = 10
slicing_duration = 80
Expand All @@ -71,7 +73,7 @@
realappearance = new /obj/effect/clockwork/overlay/wall(src)
realappearance.linked = src

/turf/simulated/wall/clockwork/Destroy()
/turf/simulated/wall/clockwork/BeforeChange()
QDEL_NULL(realappearance)
return ..()

Expand All @@ -88,25 +90,6 @@
animate(src, color = previouscolor, time = 8)
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)

/turf/simulated/wall/clockwork/dismantle_wall(devastated=0, explode=0)
if(devastated)
devastate_wall()
ChangeTurf(baseturf)
else
playsound(src, 'sound/items/welder.ogg', 100, 1)
var/newgirder = break_wall()
if(newgirder) //maybe we want a gear!
transfer_fingerprints_to(newgirder)
ChangeTurf(baseturf)

for(var/obj/O in src) //Eject contents!
if(istype(O, /obj/structure/sign/poster))
var/obj/structure/sign/poster/P = O
P.roll_and_drop(src)
else
O.forceMove(src)
return TRUE

/turf/simulated/wall/clockwork/devastate_wall()
for(var/i in 1 to 2)
new/obj/item/clockwork/alloy_shards/large(src)
Expand Down Expand Up @@ -136,11 +119,11 @@
heated = TRUE
hardness = -100 //Lower numbers are tougher, so this makes the wall essentially impervious to smashing
slicing_duration = 150
animate(realappearance, color = "#FFC3C3", time = 5)
animate(color = "#FFC3C3", time = 5)
else
name = initial(name)
visible_message("<span class='notice'>[src] cools down.</span>")
heated = FALSE
hardness = initial(hardness)
slicing_duration = initial(slicing_duration)
animate(realappearance, color = initial(realappearance.color), time = 25)
animate(color = initial(color), time = 25)