From 34927f05abaa3bf03cda9e3063bbf619a48d455a Mon Sep 17 00:00:00 2001 From: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:53:34 +0100 Subject: [PATCH] Wryn removal v2 (#19112) * Removes Wryn * and the sprites * Fixes Co-authored-by: Fox McCloud --- code/__DEFINES/mobs.dm | 1 - code/modules/client/preference/character.dm | 2 +- .../client/preference/link_processing.dm | 8 +- code/modules/clothing/clothing.dm | 4 +- code/modules/clothing/spacesuits/hardsuit.dm | 2 - .../clothing/spacesuits/miscellaneous.dm | 12 +- code/modules/mob/language.dm | 20 -- .../living/carbon/human/body_accessories.dm | 6 - code/modules/mob/living/carbon/human/human.dm | 3 - .../mob/living/carbon/human/species/wryn.dm | 175 ------------------ .../sprite_accessories/wryn/wryn_face.dm | 8 - code/modules/surgery/organs/subtypes/wryn.dm | 11 -- icons/mob/body_accessory.dmi | Bin 4632 -> 4567 bytes icons/mob/human_races/r_wryn.dmi | Bin 15509 -> 0 bytes .../mob/sprite_accessories/wryn/wryn_face.dmi | Bin 280 -> 0 bytes paradise.dme | 3 - 16 files changed, 7 insertions(+), 248 deletions(-) delete mode 100644 code/modules/mob/living/carbon/human/species/wryn.dm delete mode 100644 code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm delete mode 100644 code/modules/surgery/organs/subtypes/wryn.dm delete mode 100644 icons/mob/human_races/r_wryn.dmi delete mode 100644 icons/mob/sprite_accessories/wryn/wryn_face.dmi diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index b25e86a8579..84b25c97d17 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -233,7 +233,6 @@ #define isdiona(A) (is_species(A, /datum/species/diona)) #define ismachineperson(A) (is_species(A, /datum/species/machine)) #define isdrask(A) (is_species(A, /datum/species/drask)) -#define iswryn(A) (is_species(A, /datum/species/wryn)) #define ismoth(A) (is_species(A, /datum/species/moth)) #define isanimal(A) (istype((A), /mob/living/simple_animal)) diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm index 5f0519e2203..f369cc8a984 100644 --- a/code/modules/client/preference/character.dm +++ b/code/modules/client/preference/character.dm @@ -572,7 +572,7 @@ s_tone = random_skin_tone(species) h_style = random_hair_style(gender, species, robohead) f_style = random_facial_hair_style(gender, species, robohead) - if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) randomize_hair_color("hair") randomize_hair_color("facial") if(S.bodyflags & HAS_HEAD_ACCESSORY) diff --git a/code/modules/client/preference/link_processing.dm b/code/modules/client/preference/link_processing.dm index f627d0c5699..ce8c662f443 100644 --- a/code/modules/client/preference/link_processing.dm +++ b/code/modules/client/preference/link_processing.dm @@ -137,18 +137,18 @@ if("age") active_character.age = rand(AGE_MIN, AGE_MAX) if("hair") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.h_colour = rand_hex_color() if("secondary_hair") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.h_sec_colour = rand_hex_color() if("h_style") active_character.h_style = random_hair_style(active_character.gender, active_character.species, robohead) if("facial") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.f_colour = rand_hex_color() if("secondary_facial") - if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Wryn", "Vulpkanin", "Vox")) + if(active_character.species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox")) active_character.f_sec_colour = rand_hex_color() if("f_style") active_character.f_style = random_facial_hair_style(active_character.gender, active_character.species, robohead) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 78959bc4e08..b223d8a4570 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -114,7 +114,7 @@ //Set species_restricted list switch(target_species) if("Human", "Skrell") //humanoid bodytypes - species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Wryn","Drask") + species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Drask") else species_restricted = list(target_species) @@ -635,7 +635,6 @@ BLIND // can't see anything min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - species_restricted = list("exclude","Wryn") flash_protect = FLASH_PROTECTION_WELDER strip_delay = 50 put_on_delay = 50 @@ -665,7 +664,6 @@ BLIND // can't see anything put_on_delay = 80 resistance_flags = NONE hide_tail_by_species = null - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' ) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index e2013effa2d..d42bd705c53 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -21,7 +21,6 @@ var/datum/looping_sound/geiger/soundloop //Species-specific stuff. - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Unathi" = 'icons/mob/clothing/species/unathi/helmet.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/helmet.dmi', @@ -155,7 +154,6 @@ var/obj/item/tank/jetpack/suit/jetpack = null hide_tail_by_species = list("Vox" , "Vulpkanin" , "Unathi" , "Tajaran") - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Unathi" = 'icons/mob/clothing/species/unathi/suit.dmi', "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index ac8327c2ba0..aad2feada83 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -7,7 +7,6 @@ flags_inv = HIDEFACE permeability_coefficient = 0.01 armor = list(MELEE = 35, BULLET = 50, LASER = 50, ENERGY = 15, BOMB = 50, BIO = INFINITY, RAD = 50, FIRE = INFINITY, ACID = INFINITY) - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi', @@ -31,7 +30,6 @@ w_class = WEIGHT_CLASS_BULKY allowed = list(/obj/item/tank/internals, /obj/item/flashlight,/obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/restraints/handcuffs) armor = list(MELEE = 35, BULLET = 50, LASER = 50, ENERGY = 15, BOMB = 50, BIO = INFINITY, RAD = 50, FIRE = INFINITY, ACID = INFINITY) - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' @@ -75,7 +73,6 @@ armor = list(MELEE = 35, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 50, BIO = 450, RAD = 10, FIRE = INFINITY, ACID = INFINITY) strip_delay = 120 resistance_flags = FIRE_PROOF | ACID_PROOF - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi' @@ -179,7 +176,6 @@ desc = "A brand new paramedic EVA helmet. It seems to mold to your head shape. Used for retrieving bodies in space." icon_state = "paramedic-eva-helmet" item_state = "paramedic-eva-helmet" - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi', @@ -199,7 +195,6 @@ icon_state = "paramedic-eva" item_state = "paramedic-eva" desc = "A brand new paramedic EVA suit. The nitrile seems a bit too thin to be space proof. Used for retrieving bodies in space." - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi', @@ -219,7 +214,6 @@ item_state = "s_suit" desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies." armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = INFINITY, RAD = 10, FIRE = 50, ACID = 95) - species_restricted = list("exclude", "Wryn") sprite_sheets = list( "Tajaran" = 'icons/mob/clothing/species/tajaran/suit.dmi', @@ -242,7 +236,7 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = INFINITY, RAD = 10, FIRE = 50, ACID = 95) flash_protect = FLASH_PROTECTION_NONE - species_restricted = list("exclude", "Wryn") + sprite_sheets = list( "Tajaran" = 'icons/mob/clothing/species/tajaran/helmet.dmi', "Unathi" = 'icons/mob/clothing/species/unathi/helmet.dmi', @@ -262,7 +256,6 @@ desc = ". . ." icon_state = "spacemimehelmet" item_state = "spacemimehelmet" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi') sprite_sheets_obj = null @@ -273,7 +266,6 @@ desc = ". . ." icon_state = "spacemime_suit" item_state = "spacemime_items" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') sprite_sheets_obj = null @@ -284,7 +276,6 @@ desc = "An EVA helmet specifically designed for the clown. SPESSHONK!" icon_state = "clownhelmet" item_state = "clownhelmet" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/helmet.dmi') sprite_sheets_obj = null @@ -295,7 +286,6 @@ desc = "An EVA suit specifically designed for the clown. SPESSHONK!" icon_state = "spaceclown_suit" item_state = "spaceclown_items" - species_restricted = list("exclude","Wryn") sprite_sheets = list( "Vox" = 'icons/mob/clothing/species/vox/suit.dmi') sprite_sheets_obj = null diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index bd9091e5083..865a860d224 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -477,26 +477,6 @@ "tizan","chka","tagan","dobry","okt","boda","veta","idi","cyk","blyt","hui","na", "udi","litchki","casa","linka","toly","anatov","vich","vech","vuch","toi","ka","vod") -/datum/language/wryn - name = "Wryn Hivemind" - desc = "Wryn have the strange ability to commune over a psychic hivemind." - speech_verb = "chitters" - ask_verb = "chitters" - exclaim_verbs = list("buzzes") - colour = "alien" - key = "y" - flags = RESTRICTED | HIVEMIND | NOBABEL - follow = TRUE - -/datum/language/wryn/check_special_condition(mob/other) - var/mob/living/carbon/M = other - if(!istype(M)) - return TRUE - if(locate(/obj/item/organ/internal/wryn/hivenode) in M.internal_organs) - return TRUE - - return FALSE - /datum/language/xenocommon name = "Xenomorph" colour = "alien" diff --git a/code/modules/mob/living/carbon/human/body_accessories.dm b/code/modules/mob/living/carbon/human/body_accessories.dm index a00af925e0d..b2cbd07943f 100644 --- a/code/modules/mob/living/carbon/human/body_accessories.dm +++ b/code/modules/mob/living/carbon/human/body_accessories.dm @@ -120,12 +120,6 @@ GLOBAL_LIST_INIT(body_accessory_by_species, list()) animated_icon_state = "straightbushy_a" allowed_species = list("Vulpkanin") -//Wryn -/datum/body_accessory/tail/wryn - name = "Bee Tail" - icon_state = "wryntail" - allowed_species = list("Wryn") - //Moth wings /datum/body_accessory/wing icon = 'icons/mob/sprite_accessories/moth/moth_wings.dmi' diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 81373ad5ca9..d3019a0a141 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -140,9 +140,6 @@ /mob/living/carbon/human/golem/Initialize(mapload) . = ..(mapload, /datum/species/golem) -/mob/living/carbon/human/wryn/Initialize(mapload) - . = ..(mapload, /datum/species/wryn) - /mob/living/carbon/human/nucleation/Initialize(mapload) . = ..(mapload, /datum/species/nucleation) diff --git a/code/modules/mob/living/carbon/human/species/wryn.dm b/code/modules/mob/living/carbon/human/species/wryn.dm deleted file mode 100644 index a88b0efaf8b..00000000000 --- a/code/modules/mob/living/carbon/human/species/wryn.dm +++ /dev/null @@ -1,175 +0,0 @@ -/datum/species/wryn - name = "Wryn" - name_plural = "Wryn" - icobase = 'icons/mob/human_races/r_wryn.dmi' - blacklisted = TRUE - language = "Wryn Hivemind" - tail = "wryntail" - punchdamagelow = 0 - punchdamagehigh = 1 - speed_mod = 1 - warning_low_pressure = -300 - hazard_low_pressure = 1 - blurb = "The wryn (r-in, singular r-in) are a humanoid race that possess many bee-like features. Originating from Alveare they \ - have adapted extremely well to cold environments though have lost most of their muscles over generations.\ - In order to communicate and work with multi-species crew Wryn were forced to take on names. Wryn have tended towards using only \ - first names, these names are generally simplistic and easy to pronounce. Wryn have rarely had to communicate using their mouths, \ - so in order to integrate with the multi-species crew they have been taught broken sol?." - - cold_level_1 = 200 //Default 260 - Lower is better - cold_level_2 = 150 //Default 200 - cold_level_3 = 115 //Default 120 - - heat_level_1 = 300 //Default 360 - Higher is better - heat_level_2 = 310 //Default 400 - heat_level_3 = 317 //Default 1000 - - body_temperature = 286 - - has_organ = list( - "heart" = /obj/item/organ/internal/heart, - "brain" = /obj/item/organ/internal/brain, - "eyes" = /obj/item/organ/internal/eyes/wryn, //3 darksight. - "appendix" = /obj/item/organ/internal/appendix, - "antennae" = /obj/item/organ/internal/wryn/hivenode - ) - - species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, NO_HAIR, HIVEMIND) - inherent_traits = list(TRAIT_NOBREATH) - clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS - bodyflags = HAS_SKIN_COLOR - dietflags = DIET_HERB //bees feed off nectar, so bee people feed off plants too - - dies_at_threshold = TRUE - - reagent_tag = PROCESS_ORG - base_color = "#704300" - flesh_color = "#704300" - blood_color = "#FFFF99" - //Default styles for created mobs. - default_hair = "Antennae" - - var/datum/action/innate/wryn_sting/wryn_sting - -/datum/species/wryn/on_species_gain(mob/living/carbon/human/H) - ..() - wryn_sting = new - wryn_sting.Grant(H) - -/datum/species/wryn/on_species_loss(mob/living/carbon/human/H) - ..() - if(wryn_sting) - wryn_sting.Remove(H) - -/* Wryn Sting Action Begin */ - -//Define the Sting Action -/datum/action/innate/wryn_sting - name = "Wryn Sting" - desc = "Readies Wryn Sting for stinging." - button_icon_state = "wryn_sting_off" //Default Button State - check_flags = AB_CHECK_LYING | AB_CHECK_CONSCIOUS | AB_CHECK_STUNNED - var/button_on = FALSE - -//What happens when you click the Button? -/datum/action/innate/wryn_sting/Trigger() - if(!..()) - return - var/mob/living/carbon/user = owner - if((user.restrained() && user.pulledby) || user.buckled) //Is your Wryn restrained, pulled, or buckled? No stinging! - to_chat(user, "You need freedom of movement to sting someone!") - return - if(user.wear_suit) //Is your Wryn wearing a Hardsuit or a Laboat that's blocking their Stinger? - to_chat(user, "You must remove your hardsuit, labcoat, or jacket before using your Wryn stinger.") - return - if(user.getStaminaLoss() >= 50) //Does your Wryn have enough Stamina to sting? - to_chat(user, "You feel too tired to use your Wryn Stinger at the moment.") - return - else - button_on = TRUE - UpdateButtonIcon() - select_target(user) - -//Update the Button Icon -/datum/action/innate/wryn_sting/UpdateButtonIcon() - if(button_on) - button_icon_state = "wryn_sting_on" - name = "Wryn Stinger \[READY\]" - button.name = name - else - button_icon_state = "wryn_sting_off" - name = "Wryn Stinger" - button.name = name - ..() - -//Select a Target from a List -/datum/action/innate/wryn_sting/proc/select_target(mob/living/carbon/human/user) - var/list/names = list() - for(var/mob/living/carbon/human/M in orange(1)) - names += M - var/target = input("Select a Target: ", "Sting Target", null) as null|anything in names - if(!target) //No one's around! - to_chat(user, "There's no one around to sting so you retract your stinger.") - user.visible_message("") - button_on = FALSE - UpdateButtonIcon() - return - else //Get ready, aim, fire! - user.visible_message(" [user] prepares to use their Wryn stinger!") - sting_target(user, target) - return - -//What does the Wryn Sting do? -/datum/action/innate/wryn_sting/proc/sting_target(mob/living/carbon/human/user, mob/living/carbon/human/target) - button_on = FALSE //For when we Update the Button Icon - if(!(target in orange(1, user))) //Dang, did they get away? - to_chat(user, "You are no longer adjacent to [target]. You retract your stinger for now.") - user.visible_message("") - UpdateButtonIcon() - return - else //Nah, that chump is still here! Sting 'em! Sting 'em good! - var/obj/item/organ/external/organ = target.get_organ(pick("l_leg", "r_leg", "l_foot", "r_foot", "groin")) - to_chat(user, " You sting [target] in their [organ] with your stinger!") - user.visible_message("[user] stings [target] in [organ] with their stinger! ") - user.adjustStaminaLoss(20) //You can't sting infinitely, Wryn - take some Stamina loss - var/dam = rand(3, 7) - target.apply_damage(dam, BRUTE, organ) - playsound(user.loc, 'sound/weapons/bladeslice.ogg', 50, 0) - add_attack_logs(user, target, "Stung by Wryn Stinger - [dam] Brute damage to [organ].") - if(target.restrained()) //Apply tiny BURN damage if target is restrained - if(prob(50)) - user.apply_damage(2, BURN, target) - to_chat(target, "You feel a little burnt! Yowch!") - user.visible_message("[user] is looking a little burnt!") - UpdateButtonIcon() - return - -/* Wryn Sting Action End */ - -/datum/species/wryn/handle_death(gibbed, mob/living/carbon/human/H) - for(var/mob/living/carbon/C in GLOB.alive_mob_list) - if(C.get_int_organ(/obj/item/organ/internal/wryn/hivenode)) - to_chat(C, "Your antennae tingle as you are overcome with pain...") - to_chat(C, "It feels like part of you has died.") // This is bullshit - -/datum/species/wryn/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) - if(target.handcuffed && target.get_int_organ(/obj/item/organ/internal/wryn/hivenode)) - - user.visible_message("[user] begins to violently pull off [target]'s antennae.") - to_chat(target, "[user] grips your antennae and starts violently pulling!") - if(do_mob(user, target, 250)) - var/obj/item/organ/internal/wryn/hivenode/node = new /obj/item/organ/internal/wryn/hivenode - target.remove_language("Wryn Hivemind") - node.remove(target) - node.forceMove(user.loc) - to_chat(user, "You hear a loud crunch as you mercilessly pull off [target]'s antennae.") - to_chat(target, "You hear a loud crunch as your antennae is ripped off your head by [user].") - to_chat(target, "It's so quiet...") - var/obj/item/organ/external/head/head_organ = target.get_organ("head") - head_organ.h_style = "Bald" - target.update_hair() - - add_attack_logs(user, target, "Antennae removed") - return 0 - else - ..() diff --git a/code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm b/code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm deleted file mode 100644 index 668808de217..00000000000 --- a/code/modules/mob/new_player/sprite_accessories/wryn/wryn_face.dm +++ /dev/null @@ -1,8 +0,0 @@ -/datum/sprite_accessory/hair/wryn - icon = 'icons/mob/sprite_accessories/wryn/wryn_face.dmi' - species_allowed = list("Wryn") - glasses_over = 1 - -/datum/sprite_accessory/hair/wryn/wry_antennae_default - name = "Antennae" - icon_state = "antennae" diff --git a/code/modules/surgery/organs/subtypes/wryn.dm b/code/modules/surgery/organs/subtypes/wryn.dm deleted file mode 100644 index cbc60599744..00000000000 --- a/code/modules/surgery/organs/subtypes/wryn.dm +++ /dev/null @@ -1,11 +0,0 @@ -//WRYN ORGAN -/obj/item/organ/internal/wryn/hivenode - name = "antennae" - organ_tag = "antennae" - icon = 'icons/mob/human_races/r_wryn.dmi' - icon_state = "antennae" - parent_organ = "head" - slot = "hivenode" - -/obj/item/organ/internal/eyes/wryn - see_in_dark = 3 diff --git a/icons/mob/body_accessory.dmi b/icons/mob/body_accessory.dmi index 7ae9721d4b30a01eb33b6492f7101ffb7291a2c1..4a9c56c8280da46c68cbc31fdd5fbefa492c6ede 100644 GIT binary patch delta 4341 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 W)KD`O)e!d&Vgp?ho$@=*k^cd~RMb-d delta 4403 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 XVh5{s!Nf>V7%+Ic`njxgN@xNAwH;!! diff --git a/paradise.dme b/paradise.dme index cce964c1fca..c731bdcec75 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1980,7 +1980,6 @@ #include "code\modules\mob\living\carbon\human\species\unathi.dm" #include "code\modules\mob\living\carbon\human\species\vox.dm" #include "code\modules\mob\living\carbon\human\species\vulpkanin.dm" -#include "code\modules\mob\living\carbon\human\species\wryn.dm" #include "code\modules\mob\living\silicon\death.dm" #include "code\modules\mob\living\silicon\laws.dm" #include "code\modules\mob\living\silicon\login.dm" @@ -2209,7 +2208,6 @@ #include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_accessories.dm" #include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_head_markings.dm" #include "code\modules\mob\new_player\sprite_accessories\vulpkanin\vulpkanin_tail_markings.dm" -#include "code\modules\mob\new_player\sprite_accessories\wryn\wryn_face.dm" #include "code\modules\newscaster\datums.dm" #include "code\modules\newscaster\defines.dm" #include "code\modules\newscaster\obj\newscaster.dm" @@ -2535,7 +2533,6 @@ #include "code\modules\surgery\organs\subtypes\unathi.dm" #include "code\modules\surgery\organs\subtypes\vox.dm" #include "code\modules\surgery\organs\subtypes\vulpkanin.dm" -#include "code\modules\surgery\organs\subtypes\wryn.dm" #include "code\modules\surgery\organs\subtypes\xenos.dm" #include "code\modules\telesci\bscrystal.dm" #include "code\modules\telesci\gps.dm"