Skip to content

Commit 94e3a4a

Browse files
authored
Merge pull request Azure-Peak#3495 from spartanbobby/Things_forgotten
Things forgotten - A dungeon under the bog
2 parents abb6fc3 + 8d4e961 commit 94e3a4a

15 files changed

Lines changed: 13958 additions & 5130 deletions

File tree

_maps/map_files/dun_world/dun_world.dmm

Lines changed: 13307 additions & 5130 deletions
Large diffs are not rendered by default.

code/game/area/roguetownareas.dm

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,46 @@ GLOBAL_LIST_INIT(roguetown_areas_typecache, typecacheof(/area/rogue/indoors/town
328328
/area/rogue/under/cave/licharena/bossroom/can_craft_here()
329329
return FALSE
330330

331+
/area/rogue/under/cave/his_vault
332+
name = "his_vault"
333+
icon_state = "under"
334+
first_time_text = "HIS VAULT"
335+
droning_sound = 'sound/music/area/dragonden.ogg'
336+
droning_sound_dusk = null
337+
droning_sound_night = null
338+
converted_type = /area/rogue/outdoors/dungeon1
339+
ceiling_protected = TRUE
340+
341+
/area/rogue/under/cave/his_vault/one
342+
first_time_text = "PSLM 89:99"
343+
344+
/area/rogue/under/cave/his_vault/one/can_craft_here()
345+
return FALSE
346+
347+
/area/rogue/under/cave/his_vault/two
348+
first_time_text = "PSLM 71:6"
349+
350+
/area/rogue/under/cave/his_vault/two/can_craft_here()
351+
return FALSE
352+
353+
/area/rogue/under/cave/his_vault/three
354+
first_time_text = "PSY 66:2"
355+
356+
/area/rogue/under/cave/his_vault/three/can_craft_here()
357+
return FALSE
358+
359+
/area/rogue/under/cave/his_vault/four
360+
first_time_text = "PSY 1:4"
361+
362+
/area/rogue/under/cave/his_vault/four/can_craft_here()
363+
return FALSE
364+
365+
/area/rogue/under/cave/his_vault/puzzle
366+
first_time_text = "NODD 8:14"
367+
368+
/area/rogue/under/cave/his_vault/puzzle/can_craft_here()
369+
return FALSE
370+
331371
/area/rogue/under/cave/undeadmanor
332372
name = "skelemansion"
333373
icon_state = "spidercave"
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
// This is a set of WIP code made with the intent on giving dungeon creators more tools in their toolbox when making PVE dungeons. :3
2+
3+
4+
/obj/structure/dungeontool/trigger // A hidden obj that sends a redstone trigger when crossed by a mob with a mind
5+
name = "invisible trigger plate"
6+
desc = "Used for quietly triggering redstone structures. Only triggered by mobs with a mind"
7+
icon = 'icons/roguetown/misc/traps.dmi'
8+
icon_state = "pressureplate"
9+
max_integrity = 9999
10+
damage_deflection = 100
11+
opacity = FALSE
12+
density = FALSE
13+
anchored = TRUE
14+
invisibility = 101
15+
16+
/obj/structure/dungeontool/trigger/Crossed(atom/movable/AM)
17+
. = ..()
18+
if(!anchored)
19+
return
20+
if(ismob(AM) && AM:mind)
21+
triggerquiet()
22+
23+
/obj/structure/dungeontool/trigger/proc/triggerquiet()
24+
for(var/obj/structure/O in redstone_attached)
25+
spawn(0) O.redstone_triggered()
26+
27+
/obj/structure/dungeontool/triggered // A simple obj that does a thing when activated by redstone. Create subtypes, do not use this parent obj
28+
name = "triggered obj"
29+
desc = "Does a thing when triggered"
30+
icon = 'icons/roguetown/misc/traps.dmi'
31+
icon_state = "base_trap_plate"
32+
max_integrity = 9999
33+
damage_deflection = 100
34+
opacity = FALSE
35+
density = FALSE
36+
anchored = TRUE
37+
alpha = 0 // needs to do multiple things but not be interacted with directly by mobs
38+
mouse_opacity = 0 // ^^^^
39+
nomouseover = TRUE // ^^^^
40+
redstone_id = ""
41+
var/activated = FALSE // checking if the triggered should trigger once or indefinitely
42+
43+
/obj/structure/dungeontool/triggered/redstone_triggered() //simple obj's thing that it does when triggered. Create subtypes, do not use parent triggered effect
44+
if(obj_broken)
45+
return
46+
if(!activated)
47+
playsound(src, 'sound/blank.ogg', 100)
48+
visible_message("sends a message to chat in screen wide range from object by default")
49+
activated = TRUE
50+
51+
/obj/structure/dungeontool/triggered/thiefdaddmobs
52+
name = "triggered for addmobs trigger"
53+
redstone_id = "addmobs"
54+
55+
/obj/structure/dungeontool/triggered/thiefdaddmobs/redstone_triggered()
56+
if(obj_broken)
57+
return
58+
if(!activated)
59+
activated = TRUE
60+
playsound(src, 'sound/foley/smash_rock.ogg', 100)
61+
sleep(15)
62+
playsound(src, 'sound/foley/smash_rock.ogg', 70)
63+
sleep(15)
64+
playsound(src, 'sound/foley/smash_rock.ogg', 40)
65+
visible_message("That sounded pretty loud...")
66+
67+
/obj/structure/dungeontool/triggered/barracksalert
68+
name = "triggered for barracks alert trigger"
69+
redstone_id = "barracks"
70+
71+
/obj/structure/dungeontool/triggered/barracksalert/redstone_triggered()
72+
if(obj_broken)
73+
return
74+
if(!activated)
75+
playsound(src, 'sound/foley/equip/equip_armor_chain.ogg', 100)
76+
77+
/obj/structure/dungeontool/triggered/invisibleshutterclosed //useful monster closets
78+
name = "invisible shutter (closed)"
79+
icon = 'icons/roguetown/misc/structure.dmi'
80+
icon_state = "shutter0"
81+
desc = "Can only be opened, but not closed by a redstone trigger."
82+
density = TRUE
83+
opacity = TRUE
84+
dir = SOUTH
85+
invisibility = 101 //cannot be seen or interacted with and has density and opacity until triggered
86+
activated = FALSE
87+
layer = ABOVE_MOB_LAYER
88+
plane = GAME_PLANE_UPPER
89+
obj_flags = BLOCK_Z_OUT_DOWN | BLOCK_Z_OUT_UP | BLOCK_Z_IN_DOWN | BLOCK_Z_IN_UP
90+
91+
/obj/structure/dungeontool/triggered/invisibleshutterclosed/redstone_triggered()
92+
if(obj_broken)
93+
return
94+
if(!activated)
95+
activated = TRUE
96+
density = FALSE
97+
opacity = FALSE
98+
99+
/obj/structure/dungeontool/mover //moves mobs and objs in the dir, checks every 1.5 seconds, used for monster closet
100+
name = "mob mover"
101+
desc = "moves a mob in the direction indicated."
102+
icon = 'icons/blanks/32x32.dmi'
103+
icon_state = "dir_indicator"
104+
density = FALSE
105+
opacity = FALSE
106+
invisibility = 101
107+
anchored = TRUE
108+
109+
/obj/structure/dungeontool/mover/New()
110+
..()
111+
spawn()
112+
while(src)
113+
move_mobs()
114+
sleep(15)
115+
116+
/obj/structure/dungeontool/mover/proc/move_mobs()
117+
var/turf/T = loc
118+
if(!istype(T, /turf))
119+
return
120+
for(var/mob/M in T.contents)
121+
step(M, dir)

code/game/objects/structures/roguetown/gate.dm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,12 @@ GLOBAL_LIST_EMPTY(biggates)
185185
playsound(src, 'sound/foley/winch.ogg', 100, extrarange = 3)
186186
if(do_after(user, used_time, target = user))
187187
attached_gate.toggle()
188+
189+
/obj/structure/gate/psy_vault
190+
name = "\improper HIS vault"
191+
redstone_id = "swamp_psy_dungeon_hour"
192+
max_integrity = "9999"
193+
194+
/obj/structure/gate/psy_vault/Initialize()
195+
. = ..()
196+
addtimer(CALLBACK(src, PROC_REF(open)), 1 HOURS)

code/game/objects/structures/roguetown/redstone.dm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,3 +224,7 @@ GLOBAL_LIST_EMPTY(redstone_objs)
224224
sleep(40)
225225
icon_state = "kybraxor1"
226226
changing_state = FALSE
227+
228+
/obj/structure/kybraxor/psy
229+
name = "Kybraxor the Vaultkeeper"
230+
redstone_id = "swamp_psy_dungeon"

code/game/turfs/closed/wall/roguewalls.dm

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,16 @@
4949
loud_message("The sound of a crumbling stone wall rings out", hearing_distance = 14)
5050
. = ..()
5151

52+
/turf/closed/wall/mineral/rogue/stone/unbreakable
53+
name = "heavy stone wall"
54+
desc = "Seems nigh-indestructable"
55+
max_integrity = 10000000
56+
damage_deflection = 99999999
57+
58+
/turf/closed/wall/mineral/rogue/stone/unbreakable/attackby(obj/item/I, mob/user, params, multiplier)
59+
to_chat(user, span_warning("TOO HARD!"))
60+
return FALSE
61+
5262
/turf/closed/wall/mineral/rogue/stone/window
5363
name = "stone window"
5464
desc = "A window with a solid and sturdy stone frame."
@@ -66,14 +76,42 @@
6676
var/mutable_appearance/M = mutable_appearance(icon, "stonehole", layer = ABOVE_NORMAL_TURF_LAYER)
6777
add_overlay(M)
6878

79+
/turf/closed/wall/mineral/rogue/stone/window/unbreakable
80+
name = "heavy stone window"
81+
desc = "Seems nigh-indestructable"
82+
max_integrity = 10000000
83+
damage_deflection = 99999999
84+
85+
/turf/closed/wall/mineral/rogue/stone/window/unbreakable/attackby(obj/item/I, mob/user, params, multiplier)
86+
to_chat(user, span_warning("TOO HARD!"))
87+
return FALSE
88+
6989
/turf/closed/wall/mineral/rogue/stone/moss
7090
icon = 'icons/turf/walls/mossy_stone.dmi'
7191
climbdiff = 4
7292

93+
/turf/closed/wall/mineral/rogue/stone/moss/unbreakable
94+
desc = "Seems nigh-indestructable"
95+
max_integrity = 10000000
96+
damage_deflection = 99999999
97+
98+
/turf/closed/wall/mineral/rogue/stone/moss/unbreakable/attackby(obj/item/I, mob/user, params, multiplier)
99+
to_chat(user, span_warning("TOO HARD!"))
100+
return FALSE
101+
73102
/turf/closed/wall/mineral/rogue/stone/window/moss
74103
icon = 'icons/turf/walls/mossy_stone.dmi'
75104
climbdiff = 4
76105

106+
/turf/closed/wall/mineral/rogue/stone/window/moss/unbreakable
107+
desc = "Seems nigh-indestructable"
108+
max_integrity = 10000000
109+
damage_deflection = 99999999
110+
111+
/turf/closed/wall/mineral/rogue/stone/window/moss/unbreakable/attackby(obj/item/I, mob/user, params, multiplier)
112+
to_chat(user, span_warning("TOO HARD!"))
113+
return FALSE
114+
77115
/turf/closed/wall/mineral/rogue/craftstone
78116
name = "stone wall"
79117
desc = "A durable wall made from specially-crafted stone."

code/modules/clothing/rogueclothes/shirts.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
icon_state = "priestunder"
3636
item_state = "priestunder"
3737
sleeved = 'icons/roguetown/clothing/onmob/helpers/sleeves_shirts.dmi'
38+
slot_flags = ITEM_SLOT_SHIRT|ITEM_SLOT_ARMOR
3839
r_sleeve_status = SLEEVE_NORMAL
3940
l_sleeve_status = SLEEVE_NORMAL
4041
allowed_sex = list(MALE, FEMALE)

0 commit comments

Comments
 (0)