Merge pull request #53 from dragonbird13/master

New lavaland ghostrole - Wandering Hermit. Ghostroles can be spawned with additional language from Speech Preferences.
This commit is contained in:
BongaTheProto
2021-12-05 18:16:28 -05:00
committed by GitHub
5 changed files with 880 additions and 0 deletions

View File

@@ -598,6 +598,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
H.real_name = H.client.prefs.real_name
H.mind.name = H.real_name //Makes sure to change their mind name to their real name.
SSquirks.AssignQuirks(H, H.client, TRUE, FALSE, H.job, FALSE)//This Assigns the selected character's quirks
SSlanguage.AssignLanguage(H, H.client)
H.dna.update_dna_identity() //This makes sure their DNA is updated.
var/obj/item/card/id/idCard = H.get_idcard() //Time to change their ID card as well if they have one.
if (idCard != null)

View File

@@ -0,0 +1,839 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aj" = (
/obj/item/wallframe/airalarm,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"aI" = (
/obj/structure/frame,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"bp" = (
/obj/structure/cable{
icon_state = "1-8"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"bv" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{
dir = 4
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ch" = (
/turf/closed/wall,
/area/lavaland/surface/outdoors)
"cj" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/machinery/door/airlock/atmos/glass,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"cZ" = (
/obj/item/tank/internals/oxygen,
/obj/item/clothing/mask/breath,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"dw" = (
/obj/item/pickaxe,
/obj/item/mining_scanner,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"dA" = (
/obj/machinery/power/smes,
/obj/structure/cable{
icon_state = "0-4"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"dV" = (
/obj/item/wallframe/apc,
/obj/structure/cable{
icon_state = "0-8"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"eP" = (
/obj/item/stack/cable_coil/cut,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"ha" = (
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ig" = (
/obj/structure/cable{
icon_state = "1-8"
},
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"jO" = (
/obj/structure/window/reinforced/spawner/west,
/obj/structure/window/reinforced/spawner,
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer1,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"kA" = (
/obj/machinery/computer/rdconsole/production{
dir = 4
},
/obj/item/stack/sheet/mineral/plasma,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"mp" = (
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"nu" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"nz" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"oN" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"pE" = (
/obj/item/vending_refill/kink,
/obj/effect/decal/cleanable/semen,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"rp" = (
/obj/machinery/door/airlock/research/glass,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"rR" = (
/obj/item/storage/toolbox/mechanical,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ue" = (
/obj/machinery/ore_silo,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"uP" = (
/obj/structure/grille,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"wd" = (
/obj/structure/frame,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"wj" = (
/obj/structure/cable{
icon_state = "0-8"
},
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"wk" = (
/obj/item/stack/sheet/metal/ten,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"wF" = (
/obj/item/stack/sheet/mineral/uranium{
amount = 2
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"yv" = (
/obj/structure/window/reinforced/spawner,
/obj/machinery/atmospherics/components/unary/outlet_injector/layer1,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"zu" = (
/obj/structure/cable,
/obj/item/stack/sheet/metal/ten,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"AW" = (
/obj/structure/window/reinforced/spawner,
/obj/structure/window/reinforced/spawner/east,
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer3,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Br" = (
/obj/item/stack/cable_coil/cut,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"BX" = (
/obj/item/wallframe/airalarm,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Cj" = (
/obj/machinery/mineral/ore_redemption,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"CL" = (
/obj/structure/cable,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"CV" = (
/obj/machinery/door/airlock/external/glass,
/turf/template_noop,
/area/lavaland/surface/outdoors)
"CX" = (
/obj/effect/mob_spawn/human/wandering_hermit,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Dr" = (
/obj/structure/girder,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Dz" = (
/obj/effect/mapping_helpers/no_lava,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ER" = (
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner,
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer1,
/obj/effect/mapping_helpers/no_lava,
/obj/item/pipe_dispenser,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"FZ" = (
/obj/item/stack/cable_coil/red,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"GU" = (
/obj/structure/cable,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"II" = (
/obj/structure/cable{
icon_state = "1-4"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"IK" = (
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Jb" = (
/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{
dir = 5
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Kl" = (
/obj/structure/frame,
/obj/item/circuitboard/machine/pacman,
/obj/structure/cable{
icon_state = "0-2"
},
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"Ku" = (
/obj/item/wallframe/apc,
/obj/structure/frame,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"KS" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Le" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/item/crowbar,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"Nq" = (
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"Pm" = (
/obj/structure/girder,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Qn" = (
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"QN" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"QQ" = (
/turf/closed/mineral/volcanic/lava_land_surface,
/area/lavaland/surface/outdoors)
"QR" = (
/obj/item/electronics/apc,
/obj/item/electronics/apc,
/obj/item/electronics/apc,
/obj/item/electronics/apc,
/obj/item/wallframe/apc,
/obj/item/wallframe/apc,
/obj/item/wallframe/apc,
/obj/item/electronics/airalarm,
/obj/item/electronics/airalarm,
/obj/item/electronics/airalarm,
/obj/item/electronics/airalarm,
/obj/item/electronics/airalarm,
/obj/structure/closet/crate,
/obj/item/circuitboard/machine/vendor,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"SS" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{
dir = 9
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"SU" = (
/obj/structure/cable{
icon_state = "0-4"
},
/obj/item/stack/cable_coil/cut,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"UD" = (
/obj/structure/cable{
icon_state = "0-8"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"UE" = (
/obj/machinery/door/airlock/glass,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"UK" = (
/obj/machinery/door/airlock/public/glass,
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"VT" = (
/obj/item/stack/sheet/mineral/gold{
amount = 5
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"We" = (
/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer1{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1,
/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer1{
dir = 4
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"Yl" = (
/obj/effect/decal/cleanable/semendrip,
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
"Yt" = (
/obj/structure/cable{
icon_state = "0-4"
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"ZP" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/lavaland/surface/outdoors)
(1,1,1) = {"
QQ
QQ
QQ
ha
ha
QQ
QQ
QQ
QQ
QQ
QQ
ha
ha
QQ
QQ
ha
"}
(2,1,1) = {"
QQ
ha
QQ
QQ
QQ
QQ
QQ
QQ
QQ
QQ
QQ
QQ
ha
ha
QQ
QQ
"}
(3,1,1) = {"
ha
QQ
QQ
Pm
Pm
ch
ch
ch
Qn
QQ
QQ
QQ
QQ
QQ
QQ
QQ
"}
(4,1,1) = {"
ha
QQ
ha
Pm
ha
II
QR
Pm
Qn
Qn
Qn
QQ
QQ
QQ
QQ
QQ
"}
(5,1,1) = {"
QQ
QQ
Qn
ch
BX
ZP
BX
Pm
Qn
Qn
Qn
ha
QQ
QQ
QQ
QQ
"}
(6,1,1) = {"
QQ
Qn
Qn
ch
Nq
QN
CX
Pm
Qn
Qn
Qn
ha
ha
QQ
QQ
QQ
"}
(7,1,1) = {"
QQ
Qn
Qn
ch
Nq
Le
ha
ch
Qn
Qn
Qn
Qn
ha
QQ
QQ
QQ
"}
(8,1,1) = {"
QQ
Qn
Qn
UE
ha
wj
oN
UK
CL
Qn
Qn
Qn
Qn
ha
QQ
QQ
"}
(9,1,1) = {"
ha
Qn
Dz
ch
Nq
SU
wk
ch
Qn
Qn
Qn
Qn
Dz
Qn
QQ
QQ
"}
(10,1,1) = {"
ha
ha
Qn
Pm
Pm
cj
ch
ch
ch
ch
ch
Pm
Qn
Qn
ha
QQ
"}
(11,1,1) = {"
QQ
ha
Qn
Pm
cZ
QN
Nq
ch
Kl
zu
dA
ch
Qn
Qn
Qn
QQ
"}
(12,1,1) = {"
QQ
ha
Qn
ch
ha
mp
nu
KS
KS
GU
dV
ch
Qn
Qn
Qn
Qn
"}
(13,1,1) = {"
ha
Qn
Qn
nz
jO
Jb
UD
ch
ch
Pm
ch
ch
ch
ch
ch
Qn
"}
(14,1,1) = {"
QQ
Qn
Qn
uP
ER
We
ha
ch
aI
kA
FZ
ch
Nq
ue
ch
Qn
"}
(15,1,1) = {"
QQ
Qn
Qn
ch
aj
bv
Yt
Pm
rR
ha
pE
Pm
Br
Nq
Pm
Qn
"}
(16,1,1) = {"
QQ
Qn
Dz
nz
yv
SS
QN
ch
ch
Yl
ch
Pm
ha
Nq
Pm
Qn
"}
(17,1,1) = {"
QQ
Qn
Qn
nz
AW
IK
ig
rp
GU
Br
aI
aI
ha
ha
ch
Qn
"}
(18,1,1) = {"
QQ
QQ
Qn
ch
ha
Yt
Nq
Pm
Nq
Nq
Nq
Nq
ha
Ku
ch
Qn
"}
(19,1,1) = {"
QQ
QQ
QQ
ch
ha
ZP
Nq
ch
aj
wd
Nq
ha
Br
eP
ch
Qn
"}
(20,1,1) = {"
QQ
QQ
QQ
ch
ch
ZP
ch
ch
ch
ch
ch
Pm
Pm
ch
ch
Qn
"}
(21,1,1) = {"
QQ
QQ
QQ
ch
dw
bp
ha
Qn
Qn
Qn
Qn
Qn
Qn
Qn
Qn
Qn
"}
(22,1,1) = {"
QQ
QQ
ha
ha
Cj
VT
Dr
Qn
Qn
Qn
Qn
QQ
QQ
Qn
Qn
QQ
"}
(23,1,1) = {"
QQ
ha
Qn
Pm
ha
wF
Dr
Qn
Qn
Qn
Dz
Dz
Dz
Qn
QQ
QQ
"}
(24,1,1) = {"
QQ
ha
Qn
Pm
ha
CV
Qn
Qn
Qn
QQ
Qn
ha
ha
QQ
QQ
QQ
"}
(25,1,1) = {"
QQ
ha
Qn
Dz
Qn
Qn
Dz
Qn
Qn
Qn
ha
QQ
QQ
QQ
QQ
QQ
"}
(26,1,1) = {"
ha
ha
ha
Qn
Qn
Qn
Dz
Qn
Qn
Qn
QQ
QQ
QQ
QQ
QQ
QQ
"}

View File

@@ -0,0 +1,10 @@
/datum/map_template/ruin/lavaland/eros
prefix = "modular_eros/_maps/RandomRuins/LavaRuins/"
/datum/map_template/ruin/lavaland/eros/abandoned_shelter
name = "Abandoned Shelter (Dragonbird13)"
id = "lavaland_shelter_by_d13"
description = "Someone abandoned this place, but it may become a new home for some hermit"
suffix = "lavaland_surface_abandoned_shelter.dmm"
cost = 5
allow_duplicates = FALSE

View File

@@ -116,3 +116,32 @@
yolk.gib()
QDEL_NULL(egg)
return ..()
//Portable dangerous-environment sleepers: Spawns in exposed to ash storms shelter.
//Characters in this role could have been conscious for a long time, surviving on the planet. They may also know Draconic language by contacting with ashwalkers.
/obj/effect/mob_spawn/human/wandering_hermit
name = "portable dangerous-environment sleeper"
desc = "The glass is slightly cracked, but there is still air inside. You can see somebody inside. They seems to be sleeping deeply."
job_description = "Wandering Hermit"
icon = 'icons/obj/lavaland/spawners.dmi'
icon_state = "cryostasis_sleeper"
roundstart = FALSE
death = FALSE
random = TRUE
mob_species = /datum/species/human
mob_name = "a wandering hermit"
short_desc = "You are a hermit abandoned by fate."
flavour_text = "You've survived weeks in this hellish place. Maybe you want to live here with ash tribe or return to civilisation. \
Only you know how you got to this planetoid, whether this place in which you woke up was one of your shelters, or you just stumbled upon it."
canloadappearance = TRUE
/obj/effect/mob_spawn/human/wandering_hermit/Destroy()
var/obj/structure/fluff/empty_sleeper/S = new(drop_location())
S.setDir(dir)
return ..()
/obj/effect/mob_spawn/human/wandering_hermit/special(mob/living/carbon/human/new_spawn)
ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT)
new_spawn.language_holder.understood_languages += /datum/language/draconic
new_spawn.language_holder.spoken_languages += /datum/language/draconic

View File

@@ -3827,6 +3827,7 @@
#include "modular_eros\code\datums\components\crafting\recipes\recipes_misc.dm"
#include "modular_eros\code\datums\components\crafting\recipes\recipes_primal.dm"
#include "modular_eros\code\datums\mood_events\generic_positive_events.dm"
#include "modular_eros\code\datums\ruins\lavaland.dm"
#include "modular_eros\code\datums\traits\good.dm"
#include "modular_eros\code\datums\traits\negative.dm"
#include "modular_eros\code\datums\traits\neutral.dm"