Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 4830523

Browse files
ghost roles
1 parent aa9f2f7 commit 4830523

File tree

4 files changed

+144
-3
lines changed

4 files changed

+144
-3
lines changed

code/game/objects/structures/ghost_role_spawners.dm

Lines changed: 103 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,10 @@
5353
SKILL_MECHANICAL = EXP_NONE,
5454
SKILL_TECHNICAL = EXP_NONE,
5555
SKILL_SCIENCE = EXP_NONE,
56-
SKILL_FITNESS = EXP_MID,
56+
SKILL_FITNESS = EXP_HIGH,
5757
)
5858
skill_points = EXP_HIGH
59+
exceptional_skill = TRUE
5960
var/datum/team/ashwalkers/team
6061

6162
/obj/effect/mob_spawn/human/ash_walker/special(mob/living/new_spawn)
@@ -88,7 +89,7 @@
8889
SKILL_SCIENCE = EXP_NONE,
8990
SKILL_FITNESS = EXP_NONE,
9091
)
91-
skill_points = EXP_LOW
92+
skill_points = EXP_HIGH
9293

9394
/datum/outfit/ashwalker
9495
name = "Ashwalker"
@@ -575,6 +576,15 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
575576
death = FALSE
576577
icon = 'icons/obj/machines/sleeper.dmi'
577578
icon_state = "sleeper_s"
579+
base_skills = list(
580+
SKILL_PHYSIOLOGY = EXP_NONE,
581+
SKILL_MECHANICAL = EXP_NONE,
582+
SKILL_TECHNICAL = EXP_NONE,
583+
SKILL_SCIENCE = EXP_NONE,
584+
SKILL_FITNESS = EXP_MID,
585+
)
586+
skill_points = EXP_GENIUS
587+
exceptional_skill = TRUE
578588
outfit = /datum/outfit/syndicate_empty
579589
assignedrole = "Space Syndicate" //I know this is really dumb, but Syndicate operative is nuke ops
580590

@@ -629,6 +639,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
629639
short_desc = "You are the captain aboard the syndicate flagship: the SBC Starfury."
630640
flavour_text = "Your job is to oversee your crew, defend the ship, and destroy Space Station 13. The ship has an armory, multiple ships, beam cannons, and multiple crewmembers to accomplish this goal."
631641
important_info = "As the captain, this whole operation falls on your shoulders. You do not need to nuke the station, causing sufficient damage and preventing your ship from being destroyed will be enough."
642+
base_skills = list(
643+
SKILL_PHYSIOLOGY = EXP_LOW,
644+
SKILL_MECHANICAL = EXP_LOW,
645+
SKILL_TECHNICAL = EXP_LOW,
646+
SKILL_SCIENCE = EXP_LOW,
647+
SKILL_FITNESS = EXP_HIGH,
648+
)
649+
skill_points = EXP_MID
632650
outfit = /datum/outfit/syndicate_empty/SBC/assault/captain
633651
id_access_list = list(150,151)
634652

@@ -689,6 +707,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
689707
short_desc = "You are a researcher at the Syndicate icemoon outpost."
690708
flavour_text = "Perform research for the sake of the Syndicate and advance technology. Do xenobiological or chemical research."
691709
important_info = "Do not abandon the base or give supplies to NT employees under any circumstances."
710+
base_skills = list(
711+
SKILL_PHYSIOLOGY = EXP_LOW,
712+
SKILL_MECHANICAL = EXP_NONE,
713+
SKILL_TECHNICAL = EXP_NONE,
714+
SKILL_SCIENCE = EXP_HIGH,
715+
SKILL_FITNESS = EXP_LOW,
716+
)
717+
skill_points = EXP_HIGH
692718
outfit = /datum/outfit/syndicate_empty/icemoon_base/scientist
693719

694720
/datum/outfit/syndicate_empty/icemoon_base/scientist
@@ -704,6 +730,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
704730
short_desc = "You are an engineer at the Syndicate icemoon outpost."
705731
flavour_text = "Maintain and upgrade the base's systems and equipment. Operate the nuclear reactor and absolutely do not let it melt down."
706732
important_info = "Do not abandon the base or give supplies to NT employees under any circumstances."
733+
base_skills = list(
734+
SKILL_PHYSIOLOGY = EXP_NONE,
735+
SKILL_MECHANICAL = EXP_MID,
736+
SKILL_TECHNICAL = EXP_MID,
737+
SKILL_SCIENCE = EXP_NONE,
738+
SKILL_FITNESS = EXP_LOW,
739+
)
740+
skill_points = EXP_HIGH
707741
outfit = /datum/outfit/syndicate_empty/icemoon_base/engineer
708742

709743
/datum/outfit/syndicate_empty/icemoon_base/engineer
@@ -720,6 +754,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
720754
short_desc = "You are a medical officer at the Syndicate icemoon outpost."
721755
flavour_text = "Provide medical aid to the crew of the outpost and keep them all alive."
722756
important_info = "Do not abandon the base or give supplies to NT employees under any circumstances."
757+
base_skills = list(
758+
SKILL_PHYSIOLOGY = EXP_HIGH,
759+
SKILL_MECHANICAL = EXP_NONE,
760+
SKILL_TECHNICAL = EXP_NONE,
761+
SKILL_SCIENCE = EXP_LOW,
762+
SKILL_FITNESS = EXP_LOW,
763+
)
764+
skill_points = EXP_HIGH
723765
outfit = /datum/outfit/syndicate_empty/icemoon_base/medic
724766

725767
/datum/outfit/syndicate_empty/icemoon_base/medic
@@ -751,6 +793,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
751793
back = /obj/item/storage/backpack/satchel/leather //LUXURY AT ITS FINEST
752794
suit_store = /obj/item/gun/ballistic/revolver/ultrasecure //No
753795
belt = /obj/item/storage/belt/sabre //ceremonial shamnk
796+
base_skills = list(
797+
SKILL_PHYSIOLOGY = EXP_LOW,
798+
SKILL_MECHANICAL = EXP_LOW,
799+
SKILL_TECHNICAL = EXP_LOW,
800+
SKILL_SCIENCE = EXP_LOW,
801+
SKILL_FITNESS = EXP_HIGH,
802+
)
803+
skill_points = EXP_MID
754804
backpack_contents = list(
755805
/obj/item/modular_computer/tablet/preset/syndicate=1,
756806
/obj/item/ammo_box/a357=2,
@@ -796,6 +846,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
796846
The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
797847
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod."
798848
important_info = "Work as a team with your fellow survivors and do not abandon them."
849+
base_skills = list(
850+
SKILL_PHYSIOLOGY = EXP_NONE,
851+
SKILL_MECHANICAL = EXP_NONE,
852+
SKILL_TECHNICAL = EXP_NONE,
853+
SKILL_SCIENCE = EXP_NONE,
854+
SKILL_FITNESS = EXP_HIGH,
855+
)
856+
skill_points = EXP_MID
799857
uniform = /obj/item/clothing/under/rank/security/officer
800858
shoes = /obj/item/clothing/shoes/jackboots
801859
id = /obj/item/card/id/away/old/sec
@@ -815,6 +873,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
815873
you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
816874
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod."
817875
important_info = "Work as a team with your fellow survivors and do not abandon them."
876+
base_skills = list(
877+
SKILL_PHYSIOLOGY = EXP_NONE,
878+
SKILL_MECHANICAL = EXP_MID,
879+
SKILL_TECHNICAL = EXP_MID,
880+
SKILL_SCIENCE = EXP_NONE,
881+
SKILL_FITNESS = EXP_NONE,
882+
)
883+
skill_points = EXP_MID
818884
uniform = /obj/item/clothing/under/rank/engineering/engineer
819885
shoes = /obj/item/clothing/shoes/workboots
820886
id = /obj/item/card/id/away/old/eng
@@ -831,6 +897,14 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
831897
The last thing you remember is the station's Artificial Program telling you that you would only be asleep for eight hours. As you open \
832898
your eyes, everything seems rusted and broken, a dark feeling swells in your gut as you climb out of your pod."
833899
important_info = "Work as a team with your fellow survivors and do not abandon them."
900+
base_skills = list(
901+
SKILL_PHYSIOLOGY = EXP_NONE,
902+
SKILL_MECHANICAL = EXP_NONE,
903+
SKILL_TECHNICAL = EXP_NONE,
904+
SKILL_SCIENCE = EXP_HIGH,
905+
SKILL_FITNESS = EXP_NONE,
906+
)
907+
skill_points = EXP_HIGH
834908
uniform = /obj/item/clothing/under/rank/rnd/scientist
835909
shoes = /obj/item/clothing/shoes/laceup
836910
id = /obj/item/card/id/away/old/sci
@@ -847,6 +921,15 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
847921
mob_name = "a space pirate"
848922
mob_species = /datum/species/skeleton
849923
outfit = /datum/outfit/pirate/space
924+
base_skills = list(
925+
SKILL_PHYSIOLOGY = EXP_NONE,
926+
SKILL_MECHANICAL = EXP_NONE,
927+
SKILL_TECHNICAL = EXP_NONE,
928+
SKILL_SCIENCE = EXP_NONE,
929+
SKILL_FITNESS = EXP_MID,
930+
)
931+
skill_points = EXP_GENIUS
932+
exceptional_skill = TRUE
850933
roundstart = FALSE
851934
death = FALSE
852935
anchored = TRUE
@@ -872,6 +955,15 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
872955

873956
/obj/effect/mob_spawn/human/pirate/captain
874957
rank = "Captain"
958+
base_skills = list(
959+
SKILL_PHYSIOLOGY = EXP_LOW,
960+
SKILL_MECHANICAL = EXP_LOW,
961+
SKILL_TECHNICAL = EXP_LOW,
962+
SKILL_SCIENCE = EXP_LOW,
963+
SKILL_FITNESS = EXP_HIGH,
964+
)
965+
skill_points = EXP_MID
966+
exceptional_skill = TRUE
875967
outfit = /datum/outfit/pirate/space/captain
876968

877969
/obj/effect/mob_spawn/human/pirate/gunner
@@ -917,6 +1009,15 @@ GLOBAL_LIST_EMPTY(servant_golem_users)
9171009
important_info = "Do not abandon the derelict or mess with the main station under any circumstances."
9181010
icon = 'icons/obj/machines/sleeper.dmi'
9191011
icon_state = "sleeper_s"
1012+
base_skills = list(
1013+
SKILL_PHYSIOLOGY = EXP_LOW,
1014+
SKILL_MECHANICAL = EXP_MID,
1015+
SKILL_TECHNICAL = EXP_MID,
1016+
SKILL_SCIENCE = EXP_NONE,
1017+
SKILL_FITNESS = EXP_NONE,
1018+
)
1019+
skill_points = EXP_HIGH
1020+
exceptional_skill = TRUE
9201021
outfit = /datum/outfit/syndicate_derelict_engi
9211022
random = TRUE
9221023
roundstart = FALSE

code/modules/awaymissions/corpse.dm

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,18 @@
167167
var/backpack_contents = -1
168168
var/suit_store = -1
169169

170+
/// The base skills of this ghost role.
170171
var/list/base_skills = list(
171172
SKILL_PHYSIOLOGY = EXP_NONE,
172173
SKILL_MECHANICAL = EXP_NONE,
173174
SKILL_TECHNICAL = EXP_NONE,
174175
SKILL_SCIENCE = EXP_NONE,
175176
SKILL_FITNESS = EXP_NONE,
176177
)
177-
var/skill_points = 3
178+
/// The skill points this ghost role can allocate.
179+
var/skill_points = EXP_MASTER
180+
/// Whether this ghost role can allocate up to 5 points into a single skill.
181+
var/exceptional_skill = FALSE
178182

179183
var/hair_style
180184
var/facial_hair_style
@@ -212,6 +216,8 @@
212216
for(var/skill in base_skills)
213217
H.adjust_skill(skill, base_skills[skill])
214218
H.add_skill_points(skill_points)
219+
if(exceptional_skill)
220+
ADD_TRAIT(H, TRAIT_EXCEPTIONAL_SKILL, assignedrole)
215221
H.update_hair()
216222
H.update_body()
217223
if(outfit)

code/modules/ruins/lavaland_ruin_code.dm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,15 @@
115115
short_desc = "You are a syndicate science technician, employed in a top secret research facility developing biological weapons."
116116
flavour_text = "Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Continue your research as best you can, and try to keep a low profile."
117117
important_info = "The base is rigged with explosives, DO NOT abandon it, let it fall into enemy hands, or share your supplies with non-syndicate personnel."
118+
base_skills = list(
119+
SKILL_PHYSIOLOGY = EXP_NONE,
120+
SKILL_MECHANICAL = EXP_NONE,
121+
SKILL_TECHNICAL = EXP_NONE,
122+
SKILL_SCIENCE = EXP_MID,
123+
SKILL_FITNESS = EXP_LOW,
124+
)
125+
skill_points = EXP_GENIUS
126+
exceptional_skill = TRUE
118127
outfit = /datum/outfit/lavaland_syndicate
119128
assignedrole = "Lavaland Syndicate"
120129

yogstation/code/modules/jungleland/ghost_role_spawners.dm

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@
99
icon_state = "ivymen_egg"
1010
mob_species = /datum/species/pod/ivymen
1111
outfit = /datum/outfit/ivymen
12+
base_skills = list(
13+
SKILL_PHYSIOLOGY = EXP_NONE,
14+
SKILL_MECHANICAL = EXP_NONE,
15+
SKILL_TECHNICAL = EXP_NONE,
16+
SKILL_SCIENCE = EXP_NONE,
17+
SKILL_FITNESS = EXP_HIGH,
18+
)
19+
skill_points = EXP_HIGH
20+
exceptional_skill = TRUE
1221
roundstart = FALSE
1322
death = FALSE
1423
anchored = FALSE
@@ -58,12 +67,28 @@
5867
assignedrole = "Lavaland Syndicate"
5968

6069
/obj/effect/mob_spawn/human/lavaland_syndicate/jungle/scientist
70+
base_skills = list(
71+
SKILL_PHYSIOLOGY = EXP_LOW,
72+
SKILL_MECHANICAL = EXP_NONE,
73+
SKILL_TECHNICAL = EXP_NONE,
74+
SKILL_SCIENCE = EXP_HIGH,
75+
SKILL_FITNESS = EXP_LOW,
76+
)
77+
skill_points = EXP_HIGH
6178
outfit = /datum/outfit/lavaland_syndicate/jungle/scientist
6279

6380
/obj/effect/mob_spawn/human/lavaland_syndicate/jungle/technician
6481
name = "Syndicate Technician"
6582
short_desc = "You are a syndicate technician, employed in a top secret research facility that is developing biological weapons."
6683
flavour_text = "Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Keep the base functional and manned, and try to keep a low profile."
84+
base_skills = list(
85+
SKILL_PHYSIOLOGY = EXP_NONE,
86+
SKILL_MECHANICAL = EXP_MID,
87+
SKILL_TECHNICAL = EXP_MID,
88+
SKILL_SCIENCE = EXP_NONE,
89+
SKILL_FITNESS = EXP_LOW,
90+
)
91+
skill_points = EXP_HIGH
6792
outfit = /datum/outfit/lavaland_syndicate/jungle/technician
6893

6994
/obj/effect/mob_spawn/human/lavaland_syndicate/special(mob/living/new_spawn)

0 commit comments

Comments
 (0)