Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skrell Rework! #597

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions maplestation.dme
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// DM Environment file for tgstation.dme.

Check failure on line 1 in maplestation.dme

View workflow job for this annotation

GitHub Actions / Run Linters

Ticked File Enforcement

Missing include for maplestation_modules\code\modules\mob\living\carbon\human\species_types\skeletons.dm.

Check failure on line 1 in maplestation.dme

View workflow job for this annotation

GitHub Actions / Run Linters

Ticked File Enforcement

Missing include for maplestation_modules\code\modules\client\preferences\species\skrell.dm.
// All manual changes should be made outside the BEGIN_ and END_ blocks.
// New source code should be placed in .dm files: choose File/New --> Code File.
// BEGIN_INTERNALS
Expand Down Expand Up @@ -6270,7 +6270,6 @@
#include "maplestation_modules\code\modules\client\preferences\toggle_speech.dm"
#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"
Expand Down Expand Up @@ -6425,9 +6424,11 @@
#include "maplestation_modules\code\modules\mob\living\carbon\human\rad_rework\simple_rad.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\abductor.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\android.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\deep_skrell.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\ethereal.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\felinid.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\flypeople.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\high_skrell.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\jellypeople.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\lizardpeople.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\monkey.dm"
Expand All @@ -6438,8 +6439,6 @@
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\reploid.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\shadowpeople.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\silverscale.dm"
#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\vampire.dm"
#include "maplestation_modules\code\modules\mob\living\carbon\human\species_types\synth\synth.dm"
Expand Down
3 changes: 2 additions & 1 deletion maplestation_modules/code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
//the real memes

//Species Defines
#define SPECIES_SKRELL "skrell"
#define SPECIES_HIGH_SKRELL "high skrell"
#define SPECIES_DEEP_SKRELL "deep skrell"
#define SPECIES_REPLOID "reploid"
#define SPECIES_SYNTH "synth"
#define SPECIES_ORNITHID "ornithid"
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
// -- Modular deep skrell species --
/// GLOB list of head tentacle sprites / options
GLOBAL_LIST_EMPTY(deep_skrell_head_tentacles_list)

// The datum for deep_skrell.
/datum/species/deep_skrell
name = "Deep Skrell"
plural_form = "Deep Skrellian"
id = SPECIES_DEEP_SKRELL
inherent_traits = list(TRAIT_MUTANT_COLORS, TRAIT_LIGHT_DRINKER, TRAIT_EMPATH, TRAIT_BADTOUCH, TRAIT_NIGHT_VISION)
external_organs = list(/obj/item/organ/external/head_tentacles = "Long")
payday_modifier = 0.75
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
species_language_holder = /datum/language_holder/skrell
exotic_bloodtype = /datum/blood_type/crew/skrell
species_pain_mod = 1.2


bodypart_overrides = list(
BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/skrell,
BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/skrell,
BODY_ZONE_HEAD = /obj/item/bodypart/head/deep_skrell,
BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/skrell,
BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/skrell,
BODY_ZONE_CHEST = /obj/item/bodypart/chest/deep_skrell,
)

mutanteyes = /obj/item/organ/internal/eyes/deep_skrell
mutanttongue = /obj/item/organ/internal/tongue/deep_skrell
mutantbrain = /obj/item/organ/internal/brain/skrell
mutantlungs = /obj/item/organ/internal/lungs/skrell
mutantheart = /obj/item/organ/internal/heart/skrell
mutantliver = /obj/item/organ/internal/liver/skrell
mutantstomach = /obj/item/organ/internal/stomach/skrell
mutantears = obj/item/organ/internal/ears/skrell

Check failure on line 35 in maplestation_modules/code/modules/mob/living/carbon/human/species_types/deep_skrell.dm

View workflow job for this annotation

GitHub Actions / Run Linters

unknown variable: obj

/datum/species/skrell/get_species_speech_sounds(sound_type)
switch(sound_type)
if(SOUND_QUESTION)
return string_assoc_list(list('maplestation_modules/sound/voice/huff_ask.ogg' = 120))
if(SOUND_EXCLAMATION)
return string_assoc_list(list('maplestation_modules/sound/voice/huff_exclaim.ogg' = 120))
else
return string_assoc_list(list('maplestation_modules/sound/voice/huff.ogg' = 120))

/datum/species/deep_skrell/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
. = ..()
C.missing_eye_file = 'maplestation_modules/icons/mob/skrell_eyes.dmi'

/datum/species/deep_skrell/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load)
C.missing_eye_file = initial(C.missing_eye_file)
return ..()

/datum/species/deep_skrell/get_species_description()
return "deep_skrell are a semi-aquatic species hailing from tropical worlds."

/datum/species/deep_skrell/get_species_lore()
return list("deep_skrell lore.")

/datum/species/deep_skrell/create_pref_unique_perks()
var/list/perks = list()

perks += list(list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = "wine-bottle",
SPECIES_PERK_NAME = "Light Drinkers",
SPECIES_PERK_DESC = "skrell naturally don't get along with alcohol \
and find themselves getting inebriated very easily.",
))
return perks

/datum/species/deep_skrell/create_pref_blood_perks()
var/list/perks = list()

perks += list(list(
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
SPECIES_PERK_ICON = "tint",
SPECIES_PERK_NAME = "Exotic Blood",
SPECIES_PERK_DESC = "The Skrell have a unique \"S\" type blood. Instead of \
regaining blood from iron, they regenerate it from copper.",
))

return perks

/datum/species/deep_skrell/prepare_human_for_preview(mob/living/carbon/human/human)
human.dna.features["mcolor"] = COLOR_GRAY
human.update_body(is_creating = TRUE)

// Preset deep_skrell species
/mob/living/carbon/human/species/deep_skrell
race = /datum/species/deep_skrell

// Organ for deep_skrell head tentacles.
/obj/item/organ/external/head_tentacles
zone = BODY_ZONE_HEAD
slot = ORGAN_SLOT_EXTERNAL_HEAD_TENTACLES
dna_block = DNA_HEAD_TENTACLES_BLOCK
preference = "feature_head_tentacles"
bodypart_overlay = /datum/bodypart_overlay/mutant/head_tentacles

/datum/bodypart_overlay/mutant/head_tentacles
layers = EXTERNAL_FRONT | EXTERNAL_ADJACENT
feature_key = "head_tentacles"

/datum/bodypart_overlay/mutant/head_tentacles/can_draw_on_bodypart(mob/living/carbon/human/human)
if(istype(human.head) && (human.head.flags_inv & HIDEHAIR))
return FALSE
if(istype(human.wear_mask) && (human.wear_mask.flags_inv & HIDEHAIR))
return FALSE
var/obj/item/bodypart/head/our_head = human.get_bodypart(BODY_ZONE_HEAD)
if(!IS_ORGANIC_LIMB(our_head))
return FALSE
return TRUE

/datum/bodypart_overlay/mutant/head_tentacles/get_global_feature_list()
return GLOB.head_tentacles_list

/obj/item/bodypart/arm/left/skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.5
unarmed_attack_verb = "slash"
grappled_attack_verb = "lacerate"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/weapons/slice.ogg'
unarmed_miss_sound = 'sound/weapons/slashmiss.ogg'
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'

/obj/item/bodypart/arm/right/skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.5
unarmed_attack_verb = "slash"
grappled_attack_verb = "lacerate"
unarmed_attack_effect = ATTACK_EFFECT_CLAW
unarmed_attack_sound = 'sound/weapons/slice.ogg'
unarmed_miss_sound = 'sound/weapons/slashmiss.ogg'
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'

/obj/item/bodypart/head/deep_skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.5
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'
head_flags = HEAD_LIPS|HEAD_EYESPRITES|HEAD_EYEHOLES|HEAD_DEBRAIN

/obj/item/bodypart/leg/left/skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.5
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'

/obj/item/bodypart/leg/right/skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.5
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'

/obj/item/bodypart/chest/deep_skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.
is_dimorphic = 0
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'

/obj/item/organ/internal/eyes/deep_skrell
desc = "Gooey."
eye_overlay_file = 'maplestation_modules/icons/mob/skrell_eyes.dmi'

/obj/item/organ/internal/brain/Skrell/on_mob_insert(mob/living/carbon/organ_owner, special)
.=..()
if(ishuman(organ_owner))
return


var/mob/living/carbon/human/human_owner = owner
if (organ_owner.mob_mood)
organ_owner.mob_mood.mood_modifier += 0.75

/obj/item/organ/internal/brain/Skrell/on_mob_remove(mob/living/carbon/organ_owner, special)
.=..()
if(ishuman(organ_owner) || QDELETED (organ_owner))
return


if (organ_owner.mob_mood)
organ_owner.mob_mood.mood_modifier -= 0.75

/obj/item/organ/internal/liver/Skrell/on_mob_insert(mob/living/carbon/organ_owner, special)
.=..()
if(ishuman(organ_owner))
return


var/mob/living/carbon/human/human_owner = owner
human_owner.physiology.tox_mod *= 1.75

/obj/item/organ/internal/liver/Skrell/on_mob_remove(mob/living/carbon/organ_owner, special)
.=..()
if(ishuman(organ_owner) || QDELETED (organ_owner))
return


var/mob/living/carbon/human/human_owner = owner
human_owner.physiology.tox_mod *= 0.75

/obj/item/organ/internal/eyes/deep_skrell
name = "Deep Skrellian eyes"
desc = "The four large eyes of a Deep Skrell."
icon_state = "eyes_deep"
icon = 'maplestation_modules/icons/mob/skrell_organs.dmi'
visual = TRUE
zone = BODY_ZONE_PRECISE_EYES
slot = ORGAN_SLOT_EYES
flash_protect = FLASH_PROTECTION_SENSITIVE
tint = 1
Loading
Loading