Skip to content

Commit

Permalink
Synthetic Generation Choice Matters (Support/Industrial Selection) (#…
Browse files Browse the repository at this point in the history
…7371)

# About the pull request

Allows both shipside and colony spawns to choose their generation, which
has accompanying traits.

Generation One is a minimally cosmetic, older model with more industrial
construction and build, i.e. classic colony stats for health, movement,
skills, etc with the exception of increased engineering skills compared
to previous as they are industrial focused models. Older models still
learn by doing, they're just slower.

Generation Two is an updated cosmetic version of Generation One, they
have the same physical and skill traits, but you can use custom
appearance on them.

Generation Three is meant to be a technical specialist, and is more
fragile than Generation One or Two, but has better all-around support
skills.

# Explain why it's good for the game

Increases RP potential for characters who lean into their background in
certain areas, such as an old rugged frontiersman, a heavy space
construction worker, or a clinical aide. Also allows consistency between
your ship and survivor character, which eliminates instances where
someone may be forced to RP in a certain way because they are different
on account of their spawn being different.


# Testing Photographs and Procedure

Runs on local, tested both colony and ship spawns of each generation,
all functioned as intended.

# Changelog

:cl:
balance: enable generation selection to affect species and skillset for
synthetics
balance: removed generation 3 leadership skills
balance: increased generation 1/2 engineering and construction skills
fix: fixed the Solaris PMC nightmare spawn being incorrect skillset
/:cl:

---------

Co-authored-by: harryob <[email protected]>
  • Loading branch information
Katskan and harryob authored Oct 28, 2024
1 parent 16607fa commit 6e4f76c
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 12 deletions.
5 changes: 2 additions & 3 deletions code/datums/skills/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ SYNTHETIC
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER,
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL,
SKILL_LEADERSHIP = SKILL_LEAD_EXPERT,
SKILL_OVERWATCH = SKILL_OVERWATCH_TRAINED,
SKILL_MEDICAL = SKILL_MEDICAL_MASTER,
SKILL_SURGERY = SKILL_SURGERY_EXPERT,
Expand All @@ -33,8 +32,8 @@ SYNTHETIC
name = SYNTH_COLONY
skills = list(
SKILL_CQC = SKILL_CQC_EXPERT,
SKILL_ENGINEER = SKILL_ENGINEER_TRAINED,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_ENGI,
SKILL_ENGINEER = SKILL_ENGINEER_MASTER,
SKILL_CONSTRUCTION = SKILL_CONSTRUCTION_MASTER,
SKILL_FIREARMS = SKILL_FIREARMS_EXPERT,
SKILL_SPEC_WEAPONS = SKILL_SPEC_ALL,
SKILL_MEDICAL = SKILL_MEDICAL_DOCTOR,
Expand Down
1 change: 0 additions & 1 deletion code/game/machinery/vending/vendor_types/crew/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list(
list("Red Tie", 6, /obj/item/clothing/accessory/red, null, VENDOR_ITEM_REGULAR),
list("Purple Tie", 6, /obj/item/clothing/accessory/purple, null, VENDOR_ITEM_REGULAR),
list("Dress Gloves", 6, /obj/item/clothing/gloves/marine/dress, null, VENDOR_ITEM_REGULAR),

))

/obj/structure/machinery/cm_vending/clothing/synth/snowflake
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@
assignment = JOB_PMC_SYNTH
rank = JOB_PMC_SYNTH
role_comm_title = "WY Syn"
skills = /datum/skills/synthetic

/datum/equipment_preset/synth/survivor/pmc/load_race(mob/living/carbon/human/new_human)
new_human.set_species(SYNTH_GEN_THREE)
Expand Down
35 changes: 29 additions & 6 deletions code/modules/gear_presets/synths.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
name = "Synth"
uses_special_name = TRUE
languages = ALL_SYNTH_LANGUAGES
skills = /datum/skills/synthetic
paygrades = list(PAY_SHORT_SYN = JOB_PLAYTIME_TIER_0)

minimap_icon = "synth"
Expand All @@ -12,10 +11,18 @@
access = get_access(ACCESS_LIST_GLOBAL)

/datum/equipment_preset/synth/load_race(mob/living/carbon/human/new_human)
var/generation_selection = SYNTH_GEN_THREE
if(new_human.client?.prefs?.synthetic_type)
new_human.set_species(new_human.client.prefs.synthetic_type)
return
new_human.set_species(SYNTH_GEN_THREE)
generation_selection = new_human.client.prefs.synthetic_type
switch(generation_selection)
if(SYNTH_GEN_THREE)
new_human.set_species(SYNTH_GEN_THREE)
if(SYNTH_GEN_TWO)
new_human.set_species(SYNTH_COLONY_GEN_TWO)
if(SYNTH_GEN_ONE)
new_human.set_species(SYNTH_COLONY_GEN_ONE)
else
new_human.set_species(SYNTH_GEN_THREE)

/datum/equipment_preset/synth/load_name(mob/living/carbon/human/new_human, randomise)
var/final_name = "David"
Expand All @@ -32,6 +39,22 @@

new_human.allow_gun_usage = FALSE

/datum/equipment_preset/synth/load_skills(mob/living/carbon/human/new_human, client/mob_client)
new_human.allow_gun_usage = FALSE

if(iscolonysynthetic(new_human) && !isworkingjoe(new_human))
new_human.set_skills(/datum/skills/colonial_synthetic)
return

if(!mob_client)
new_human.set_skills(/datum/skills/synthetic)
return

switch(mob_client.prefs.synthetic_type)
if(SYNTH_GEN_ONE, SYNTH_GEN_TWO)
new_human.set_skills(/datum/skills/colonial_synthetic)
else
new_human.set_skills(/datum/skills/synthetic)
//*****************************************************************************************************/

/datum/equipment_preset/synth/uscm
Expand Down Expand Up @@ -131,13 +154,13 @@
generation_selection = new_human.client.prefs.synthetic_type
switch(generation_selection)
if(SYNTH_GEN_THREE)
new_human.set_species(SYNTH_COLONY)
new_human.set_species(SYNTH_GEN_THREE)
if(SYNTH_GEN_TWO)
new_human.set_species(SYNTH_COLONY_GEN_TWO)
if(SYNTH_GEN_ONE)
new_human.set_species(SYNTH_COLONY_GEN_ONE)
else
new_human.set_species(SYNTH_COLONY)
new_human.set_species(SYNTH_GEN_THREE)

/datum/equipment_preset/synth/survivor/New()
. = ..()
Expand Down
5 changes: 3 additions & 2 deletions code/modules/mob/living/carbon/human/species/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@

/datum/species/synthetic/gen_two
name = SYNTH_GEN_TWO
uses_skin_color = FALSE //2nd gen uses generic human look
special_body_types = FALSE
uses_skin_color = TRUE
special_body_types = TRUE


/datum/species/synthetic/colonial
name = SYNTH_COLONY
Expand Down

0 comments on commit 6e4f76c

Please sign in to comment.