Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
915c0d4
sobbing sobbing sobbing
Bluedino1025 Oct 10, 2024
9befece
losing my mind
Bluedino1025 Oct 11, 2024
b8d307f
my descent into madness
Bluedino1025 Oct 11, 2024
f6f17e1
back tentacles are now functioning, pain and sprites are left
Bluedino1025 Oct 11, 2024
5ea9668
i'm actually losing it
Bluedino1025 Oct 11, 2024
1c69f83
break time!
Bluedino1025 Oct 11, 2024
23f3bac
my marbles, are gone
Bluedino1025 Oct 12, 2024
8d1bba2
this shit actually gave me a migraine
Bluedino1025 Oct 13, 2024
9023424
Merge branch 'master' into please-don't-break
Bluedino1025 Nov 2, 2024
08a05a7
i'm back baby
Bluedino1025 Nov 2, 2024
a58441b
Merge branch 'please-don't-break' of https://github.com/Bluedino1025/…
Bluedino1025 Nov 2, 2024
68dc4e5
the headache has returned
Bluedino1025 Nov 2, 2024
6efae44
awaaga
Bluedino1025 Jan 20, 2025
b9aba5d
Madness
Bluedino1025 Oct 20, 2025
2b997eb
organs fixed please
Bluedino1025 Oct 20, 2025
1c1ae55
i already slammed an energy drink
Bluedino1025 Oct 20, 2025
ac269f3
unbreaks shit i broke
Bluedino1025 Oct 20, 2025
2132ec7
ech
Bluedino1025 Oct 20, 2025
78bdc25
Merge branch 'master' of https://github.com/MrMelbert/MapleStationCod…
Bluedino1025 Oct 20, 2025
7592ec3
i'm going to join a whaling crew
Bluedino1025 Oct 20, 2025
9f23106
i'm going to join a whaling crew
Bluedino1025 Oct 20, 2025
3895ef4
Merge branch 'please-don't-break' of https://github.com/Bluedino1025/…
Bluedino1025 Oct 20, 2025
94b3f60
Revert "i'm going to join a whaling crew"
Bluedino1025 Oct 20, 2025
5300dbf
got kicked off the whaling ship
Bluedino1025 Oct 20, 2025
698ce68
removes some ternals
Bluedino1025 Oct 21, 2025
5cac1ca
blegh
Bluedino1025 Oct 21, 2025
1254543
progress
Bluedino1025 Oct 21, 2025
45b9451
saving
Bluedino1025 Oct 21, 2025
5a6c601
Merge branch 'master' of https://github.com/MrMelbert/MapleStationCod…
Bluedino1025 Nov 9, 2025
2cacca4
coding but in the medical sense
Bluedino1025 Nov 9, 2025
f606b90
bleh
Bluedino1025 Nov 9, 2025
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
3 changes: 2 additions & 1 deletion config/game_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,8 @@ ROUNDSTART_RACES abductor
#ROUNDSTART_RACES reploid - Removed temporarily until features done
ROUNDSTART_RACES pod
ROUNDSTART_RACES ornithid
ROUNDSTART_RACES skrell
ROUNDSTART_RACES high_skrell
ROUNDSTART_RACES deep_skrell

## Races that are straight upgrades. If these are on expect powergamers to always pick them
ROUNDSTART_RACES skeleton
Expand Down
3 changes: 2 additions & 1 deletion maplestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6688,9 +6688,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 @@ -6702,7 +6704,6 @@
#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\animid\_animid_def.dm"
Expand Down Expand Up @@ -6825,3 +6826,3 @@
#include "maplestation_modules\story_content\wollys_items\code\wollysitems.dm"
#endif // MAPLESTATION_STORY_CONTENT
// END_INCLUDE
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"
4 changes: 4 additions & 0 deletions maplestation_modules/code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@
#define TRAIT_FEATHERED "feathers"
/// Gives positive mood on drinking anything caffeinated, kinda generic so people can like coffee, tea, energy drinks, whatever.
#define TRAIT_CAFFEINE_LOVER "caffeine_lover"
/// Allows items to replace the backpack slot.
#define TRAIT_BACKPACK_REPLACEMENT
/// Gives negative mood for wearing gloves
#define TRAIT_WEBBED_HANDS "webbed_hands"
Original file line number Diff line number Diff line change
@@ -0,0 +1,295 @@
// -- Modular deep skrell species --
/// GLOB list of head tentacle sprites / options
GLOBAL_LIST_EMPTY(deep_head_tentacles_list)

// The datum for deep_skrell.
/datum/species/deep_skrell
name = "Deep Skrell"
plural_form = "Deep Skrells"
id = SPECIES_DEEP_SKRELL
inherent_traits = list(TRAIT_MUTANT_COLORS, TRAIT_LIGHT_DRINKER, TRAIT_EMPATH, TRAIT_BADTOUCH, TRAIT_NIGHT_VISION, TRAIT_WEBBED_HANDS)
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/eyes/deep_skrell
mutanttongue = /obj/item/organ/tongue/deep_skrell
mutantbrain = /obj/item/organ/brain/skrell
mutantlungs = /obj/item/organ/lungs/skrell
mutantheart = /obj/item/organ/heart/skrell
mutantliver = /obj/item/organ/liver/skrell
mutantstomach = /obj/item/organ/stomach/skrell
mutantears = /obj/item/organ/ears/skrell
mutant_organs = list( /obj/item/organ/head_tentacles = "Long")

/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

// 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/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(obj/item/bodypart/bodypart_owner)
return IS_ORGANIC_LIMB(bodypart_owner) && !(bodypart_owner.owner?.obscured_slots & HIDEHAIR)

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

/datum/species/human/deep_skrell/handle_chemical(datum/reagent/chem, mob/living/carbon/human/affected, seconds_per_tick, times_fired)
. = ..()
if(. & COMSIG_MOB_STOP_REAGENT_CHECK)
return
if(istype(chem, /datum/reagent/toxin/carpotoxin))
var/datum/reagent/toxin/carpotoxin/fish = chem
fish.toxpwr = 0


/obj/item/bodypart/arm/left/skrell
limb_id = SPECIES_DEEP_SKRELL
brute_modifier = 0.8
burn_modifier = 1.5
unarmed_attack_verbs = list("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_verbs = list("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
is_dimorphic = 0
icon_greyscale = 'maplestation_modules/icons/mob/skrell_parts_greyscale.dmi'
head_flags = 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/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/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/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/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/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'
eye_overlay_file = 'maplestation_modules/icons/mob/skrell_eyes.dmi'
eye_icon_state = "deep_eyes"
visual = TRUE
zone = BODY_ZONE_PRECISE_EYES
slot = ORGAN_SLOT_EYES
flash_protect = FLASH_PROTECTION_SENSITIVE

/datum/species/deep_skrell/on_species_gain(mob/living/carbon/new_deep_skrell, datum/species/old_species, pref_load)
. = ..()
var/obj/item/storage/backpack/bag = new_deep_skrell.get_item_by_slot(ITEM_SLOT_BACK)
if(!istype(bag, /obj/item/storage/back_tentacles))
if(new_deep_skrell.dropItemToGround(bag)) //returns TRUE even if its null
new_deep_skrell.equip_to_slot_or_del(new /obj/item/storage/back_tentacles(new_deep_skrell), ITEM_SLOT_BACK)
/// i stole snail code

/datum/species/deep_skrell/on_species_loss(mob/living/carbon/former_deep_skrell, datum/species/new_species, pref_load)
. = ..()
var/obj/item/storage/backpack/bag = former_deep_skrell.get_item_by_slot(ITEM_SLOT_BACK)
if(istype(bag, /obj/item/storage/back_tentacles))
bag.emptyStorage()
former_deep_skrell.temporarilyRemoveItemFromInventory(bag, TRUE)
qdel(bag)

/obj/item/storage/back_tentacles
name = "Back tentacles"
desc = "Your back tentacles! You're able to hold items with them!"
icon_state = "back_tent_obj"
icon = 'maplestation_modules/icons/mob/skrell_back_tentacles.dmi'
worn_icon = 'maplestation_modules/icons/mob/skrell_back_tentacles.dmi'
resistance_flags = INDESTRUCTIBLE | ACID_PROOF | FIRE_PROOF | LAVA_PROOF | UNACIDABLE
item_flags = ABSTRACT | DROPDEL
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
color = null
/obj/item/storage/back_tentacles/equipped(/mob/living/carbon/human/user, slot)
if(ishuman(user)
color = user.dna.features["mcolor"]

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0001: Expected ')'
return ..()
storage_type = /datum/storage/backpack

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0000: Error recovery had to skip to maplestation_modules/code/modules/mob/living/carbon/human/species_types/deep_skrell.dm:231:1

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0001: Expected end of object statement

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0001: Invalid indentation

/obj/item/storage/back_tentacles/visual_equipped(mob/living/carbon/human/user, slot)


/obj/item/storage/back_tentacles/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, TRAIT_BACKPACK_REPLACEMENT)

/datum/species/deep_skrell/proc/on_death(mob/living/died, gibbed)
SIGNAL_HANDLER
died.drop_all_contents()

/datum/quirk/webbedhands
name = "Webbed Hands"
desc = "Your fingers are connected by a waterproof webbing. Useful for swimming! Less so for wearing gloves..."
value = -6
quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED
gain_text = span_danger("Your fingers have grown webbing!")
lose_text = span_notice("The webbing has retracted back into your hands.")
medical_record_text = "Patient has webbed hands."
mob_trait = WEBBED_HANDS

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0404: Unknown identifier "WEBBED_HANDS"
hardcore_value = 4
var/datum/weakref/gloves

/datum/quirk/gloves/add(client/client_source)
var/mob/living/carbon/human/human_holder = quirk_holder
var/obj/item/clothing/gloves/equipped_gloves = human_holder.back
if(istype(equipped_gloves))
quirk_holder.add_mood_event("webbed_hands", /datum/mood_event/webbed_hands)
RegisterSignal(human_holder.back, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(on_unequipped_gloves))

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0404: Could not find path .proc/on_unequipped_gloves
else
RegisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equipped_item))

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0404: Could not find path .proc/on_equipped_item

/datum/quirk/webbedhands/remove()
UnregisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM)

var/obj/item/clothing/equipped_gloves = gloves?.resolve()
if(equipped_gloves)
UnregisterSignal(equipped_gloves, COMSIG_ITEM_POST_UNEQUIP)
quirk_holder.clear_mood_event("webbed_hands")

/// Signal handler for when the quirk_holder equips an item. If it's gloves, adds the webbed_hands mood event.
/datum/quirk/badback/proc/on_equipped_item(mob/living/source, obj/item/equipped_item, slot)
SIGNAL_HANDLER

if(!(slot & ITEM_SLOT_HANDS) || !istype(equipped_item, /obj/item/clothing/gloves))
return

quirk_holder.add_mood_event("webbed_hands", /datum/mood_event/webbed_hands)
RegisterSignal(equipped_item, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(on_unequipped_backpack))
UnregisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM)
gloves = WEAKREF(equipped_item)

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0404: Unknown identifier "gloves"

/// Signal handler for when the quirk_holder unequips an equipped gloves. Removes the webbed_hands mood event.
/datum/quirk/badback/proc/on_unequipped_gloves(obj/item/source, force, atom/newloc, no_move, invdrop, silent)
SIGNAL_HANDLER

UnregisterSignal(source, COMSIG_ITEM_POST_UNEQUIP)
quirk_holder.clear_mood_event("webbed_hands")
gloves = null

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

View workflow job for this annotation

GitHub Actions / Run Linters / linters

OD0404: Unknown identifier "gloves"
RegisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equipped_item))

/datum/mood_event/webbed_hands
description = "Gloves compress the webbing between your fingers painfully!"
mood_change = -13

Loading
Loading