Skip to content

Commit

Permalink
Synth Revival Project (#429)
Browse files Browse the repository at this point in the history
  • Loading branch information
MrMelbert authored Feb 22, 2024
1 parent bf7fc39 commit 88ba8f4
Show file tree
Hide file tree
Showing 13 changed files with 598 additions and 238 deletions.
5 changes: 3 additions & 2 deletions code/modules/surgery/bodyparts/_bodyparts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1289,9 +1289,10 @@
update_icon_dropped()

//This foot gun needs a safety
if(!icon_exists(icon_holder, "[limb_id]_[body_zone][is_dimorphic ? "_[limb_gender]" : ""]"))
var/resulting_icon = "[limb_id]_[body_zone][is_dimorphic ? "_[limb_gender]" : ""]"
if(!icon_exists(icon_holder, resulting_icon))
reset_appearance()
stack_trace("change_appearance([icon], [id], [greyscale], [dimorphic]) generated null icon")
stack_trace("change_appearance([icon], [id], [greyscale], [dimorphic]) generated null icon ([resulting_icon])")

///Resets the base appearance of a limb to it's default values.
/obj/item/bodypart/proc/reset_appearance()
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion maplestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6251,6 +6251,7 @@
#include "maplestation_modules\code\modules\client\preferences\species\lizard.dm"
#include "maplestation_modules\code\modules\client\preferences\species\ornithid.dm"
#include "maplestation_modules\code\modules\client\preferences\species\skrell.dm"
#include "maplestation_modules\code\modules\client\preferences\species\synth.dm"
#include "maplestation_modules\code\modules\client\preferences\spellbook\spellbook.dm"
#include "maplestation_modules\code\modules\client\preferences\spellbook\spellbook_helpers.dm"
#include "maplestation_modules\code\modules\client\preferences\spellbook\spellbook_item_customization_menu.dm"
Expand Down Expand Up @@ -6413,8 +6414,9 @@
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\skeletons.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\skrell.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\species.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synths.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\vampire.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\synth.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\synth_ion.dm"
#include "maplestation_modules\code\modules\mob\living\silicon\robot\robot_defines.dm"
#include "maplestation_modules\code\modules\mob\living\simple_animal\corpse.dm"
#include "maplestation_modules\code\modules\mod\mod_control.dm"
Expand Down
6 changes: 6 additions & 0 deletions maplestation_modules/code/__DEFINES/signals.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
// These are just here so the newer coders understand global signals better
#define RegisterGlobalSignal(sig, procref) RegisterSignal(SSdcs, sig, procref)
#define UnregisterGlobalSignal(sig) UnregisterSignal(SSdcs, sig)

#define COMSIG_GLOB_ION_STORM "!ion_storm"

/// Sent from [/mob/living/examine] late, after the first signal is sent, but BEFORE flavor text handling,
/// for when you prefer something guaranteed to appear at the bottom of the stack
/// (Flavor text should stay at the very very bottom though)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
/// Simple define to denote no language.
#define NO_LANGUAGE "No Language"

/// List of species IDs of species's that can't get an additional language
#define BLACKLISTED_SPECIES_FROM_LANGUAGES list(/datum/species/synth, /datum/species/android)

/datum/preference/choiced/language
savefile_key = "bilingual_language"

Expand All @@ -29,9 +26,6 @@
return NO_LANGUAGE

var/datum/species/species = preferences.read_preference(/datum/preference/choiced/species)
if(species in BLACKLISTED_SPECIES_FROM_LANGUAGES)
return NO_LANGUAGE

var/banned = initial(lang_to_add.banned_from_species)
var/req = initial(lang_to_add.required_species)
if((banned && ispath(species, banned)) || (req && !ispath(species, req)))
Expand Down Expand Up @@ -191,8 +185,7 @@

data["base_languages"] = base_languages
data["bonus_languages"] = bonus_languages
data["blacklisted_species"] = BLACKLISTED_SPECIES_FROM_LANGUAGES
data["blacklisted_species"] = list()
return data

#undef NO_LANGUAGE
#undef BLACKLISTED_SPECIES_FROM_LANGUAGES
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

/datum/preference/choiced/skrell_hair
savefile_key = "feature_head_tentacles"
savefile_identifier = PREFERENCE_CHARACTER
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#define NO_DISGUISE "(No Disguise)"

/datum/preference/choiced/synth_species
savefile_key = "feature_synth_species"
savefile_identifier = PREFERENCE_CHARACTER
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
priority = PREFERENCE_PRIORITY_GENDER

/datum/preference/choiced/synth_species/init_possible_values()
var/datum/species/synth/synth = new()
. = synth.valid_species.Copy()
. += NO_DISGUISE
qdel(synth)
return .

/datum/preference/choiced/synth_species/create_default_value()
return SPECIES_HUMAN

/datum/preference/choiced/synth_species/apply_to_human(mob/living/carbon/human/target, value)
var/datum/species/synth/synth = target.dna?.species
if(!istype(synth))
return
if(value == NO_DISGUISE)
synth.drop_disguise(target)
return
if(value in synth.valid_species)
synth.disguise_as(target, GLOB.species_list[value])
return

/datum/preference/numeric/synth_damage_threshold
savefile_key = "feature_synth_damage_threshold"
savefile_identifier = PREFERENCE_CHARACTER
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
priority = PREFERENCE_PRIORITY_GENDER
minimum = -100
maximum = 75

/datum/preference/numeric/synth_damage_threshold/create_default_value()
return 25

/datum/preference/numeric/synth_damage_threshold/apply_to_human(mob/living/carbon/human/target, value)
var/datum/species/synth/synth = target.dna?.species
if(!istype(synth))
return
synth.disuise_damage_threshold = value

#undef NO_DISGUISE
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@
return

/datum/species/abductor/get_species_description()
return "Abductors, colloquially known as \"Greys\" (or \"Grays\"), are pale skinned inquisitive aliens who can't commicate to the average crew-member."
return "Abductors, colloquially known as \"Greys\" (or \"Grays\"), \
are pale skinned inquisitive aliens who can't communicate well to the average crew-member."

/datum/species/abductor/get_species_lore()
return list("Abductor lore.")
return list(
"Little are known about Abductors. \
While they (as a species) have been known to abduct other species of 'lesser intellect' for experimentation, \
some have been known to - on rare occasions - work with the very species they abduct, for reasons unknown.",
)

/datum/species/abductor/create_pref_unique_perks()
var/list/perks = list()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,43 +11,55 @@
human.update_body(is_creating = TRUE)

/datum/species/pod/get_species_description()
return "Podpeople are made of plants!"
return "Podpeople are largely peaceful plant based lifeforms, resembling a humanoid figure made of leaves, flowers, and vines."

/datum/species/pod/get_species_lore()
return list("Podpserson lore.")
return list(
"Little is known about the origins of the Podpeople. \
Many assume them to be the result of a long forgotten botanical experiment, slowly mutating for years on years until they became the beings they are today. \
Ever since they were uncovered long ago, their kind have been found on board stations and planets across the galaxy, \
often working in hydroponics bays, kitchens, or science departments, working with plants and other botanical lifeforms.",
)

/datum/species/pod/create_pref_unique_perks()
var/list/perks = list()
var/list/perks = ..()

perks += list(list(
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
SPECIES_PERK_ICON = "leaf",
SPECIES_PERK_ICON = FA_ICON_LEAF,
SPECIES_PERK_NAME = "Green Thumbs",
SPECIES_PERK_DESC = "Podpeople are friend to all plants. Hostile sentient \
plants will not harm them and dangerous botanical produce can \
be handled without gloves.",
))
perks += list(list(
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
SPECIES_PERK_ICON = "sun",
SPECIES_PERK_ICON = FA_ICON_SUN,
SPECIES_PERK_NAME = "Photosynthesis",
SPECIES_PERK_DESC = "Podpeople feed themselves and heal when exposed to light, \
but wilt and starve when living in darkness.",
))
perks += list(list(
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
SPECIES_PERK_ICON = "first-aid",
SPECIES_PERK_ICON = FA_ICON_FIRST_AID,
SPECIES_PERK_NAME = "Plant Matter",
SPECIES_PERK_DESC = "Podpeople must use plant analyzers to scan themselves \
instead of heath analyzers.",
))
perks += list(list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = "paw",
SPECIES_PERK_ICON = FA_ICON_BIOHAZARD,
SPECIES_PERK_NAME = "Weedkiller Susceptability",
SPECIES_PERK_DESC = "Being a floral life form, you are susceptable to anti-florals and will take extra toxin damage from it!"
))
perks += list(list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = FA_ICON_PAW,
SPECIES_PERK_NAME = "Herbivore Target",
SPECIES_PERK_DESC = "Being made of plants and leaves, podpeople are a target \
of herbivorous creatures such as goats.",
))

return perks

/datum/species/pod/create_pref_damage_perks()
Expand Down
Loading

0 comments on commit 88ba8f4

Please sign in to comment.