Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
64013f9
Update parts.dm
Bluedino1025 Aug 12, 2024
1147b2f
Update head.dm
Bluedino1025 Aug 12, 2024
d3c4ace
Update _tongue.dm
Bluedino1025 Aug 12, 2024
dc8d141
Update _eyes.dm
Bluedino1025 Aug 12, 2024
14735ef
Update _ears.dm
Bluedino1025 Aug 12, 2024
116b5a3
Create werewolf
Bluedino1025 Aug 12, 2024
8f1e35b
Rename werewolf to werewolf.dm
Bluedino1025 Aug 12, 2024
825321e
Update misc_bodyparts.dm
Bluedino1025 Aug 12, 2024
e2d66c2
Update _tongue.dm
Bluedino1025 Aug 12, 2024
b03e5ff
Update head.dm
Bluedino1025 Aug 12, 2024
5a7de77
Update misc_bodyparts.dm
Bluedino1025 Aug 12, 2024
edf02c9
Update head.dm
Bluedino1025 Aug 12, 2024
e268dbd
Update parts.dm
Bluedino1025 Aug 12, 2024
2bb6e9a
Update misc_bodyparts.dm
Bluedino1025 Aug 12, 2024
01b725b
Update _tongue.dm
Bluedino1025 Aug 12, 2024
14c86d3
Update werewolf.dm
Bluedino1025 Aug 13, 2024
414cd6c
Create werewolf.dm
Bluedino1025 Aug 14, 2024
9049fe5
Update mobs.dm
Bluedino1025 Aug 17, 2024
74164d3
Update maplestation.dme
Bluedino1025 Aug 17, 2024
5a23169
Update werewolf.dm
Bluedino1025 Aug 17, 2024
c202505
Update werewolf.dm
Bluedino1025 Aug 17, 2024
39c8611
Update werewolf.dm
Bluedino1025 Aug 17, 2024
363eb9a
Update werewolf.dm
Bluedino1025 Aug 17, 2024
faec84b
Update werewolf.dm
Bluedino1025 Aug 17, 2024
cd36053
Update misc_bodyparts.dm
Bluedino1025 Aug 17, 2024
07a3fad
Update werewolf.dm
Bluedino1025 Aug 17, 2024
8f89e24
extreme agony
Bluedino1025 Aug 18, 2024
6aafb3b
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Bluedino1025 Aug 18, 2024
d6be63e
this caused so many errors
Bluedino1025 Aug 18, 2024
5b32ffe
eck
Bluedino1025 Aug 18, 2024
b9b8952
holy shit it finally works
Bluedino1025 Aug 18, 2024
d0b4000
Merge branch 'master' into patch-2
Bluedino1025 Aug 18, 2024
096ee38
agh
Bluedino1025 Aug 18, 2024
c6c0c4e
shit was fucked, less fucked now
Bluedino1025 Aug 18, 2024
f6b8ab9
a
Bluedino1025 Aug 18, 2024
75ade92
agony
Bluedino1025 Aug 18, 2024
539dbf3
fix the check
Bluedino1025 Aug 18, 2024
8d5eedc
YIPPEE
Bluedino1025 Aug 19, 2024
b67f97d
forgor a detail
Bluedino1025 Aug 19, 2024
c502531
Merge branch 'master' into patch-2
Bluedino1025 Aug 19, 2024
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: 3 additions & 0 deletions maplestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6442,6 +6442,7 @@
#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\werewolf.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"
Expand Down Expand Up @@ -6482,9 +6483,11 @@
#include "maplestation_modules\code\modules\surgery\organs\autosurgeon.dm"
#include "maplestation_modules\code\modules\surgery\organs\ears.dm"
#include "maplestation_modules\code\modules\surgery\organs\eyes.dm"
#include "maplestation_modules\code\modules\surgery\organs\heart.dm"
#include "maplestation_modules\code\modules\surgery\organs\liver.dm"
#include "maplestation_modules\code\modules\surgery\organs\tails.dm"
#include "maplestation_modules\code\modules\surgery\organs\tongue.dm"
#include "maplestation_modules\code\modules\surgery\organs\werewolf_parts.dm"
#include "maplestation_modules\code\modules\uplink\uplink_devices.dm"
#include "maplestation_modules\code\modules\uplink\uplink_infiltrator.dm"
#include "maplestation_modules\code\modules\uplink\uplink_items.dm"
Expand Down
1 change: 1 addition & 0 deletions maplestation_modules/code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
#define SPECIES_REPLOID "reploid"
#define SPECIES_SYNTH "synth"
#define SPECIES_ORNITHID "ornithid"
#define SPECIES_WEREWOLF "werewolf"
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/datum/species/werewolf
name = "werewolf"
id = SPECIES_WEREWOLF
inherent_traits = list(
TRAIT_USES_SKINTONES,
TRAIT_NO_UNDERWEAR,
TRAIT_NO_AUGMENTS,
TRAIT_IGNOREDAMAGESLOWDOWN,
TRAIT_PUSHIMMUNE,
TRAIT_STUNIMMUNE,
TRAIT_PRIMITIVE,
TRAIT_CAN_STRIP,
TRAIT_CHUNKYFINGERS
)
mutanttongue = /obj/item/organ/internal/tongue/werewolf
mutantears = /obj/item/organ/internal/ears/werewolf
mutanteyes = /obj/item/organ/internal/eyes/werewolf
mutantbrain = /obj/item/organ/internal/brain/werewolf
mutantliver = obj/item/organ/internal/liver/werewolf
mutantheart = obj/item/organ/internal/heart/werewolf
external_organs = list(
/obj/item/organ/external/tail/cat = "Cat",
)
skinned_type = /obj/item/stack/sheet/animalhide/human
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
no_equip_flags = ITEM_SLOT_MASK | ITEM_SLOT_OCLOTHING | ITEM_SLOT_GLOVES | ITEM_SLOT_FEET | ITEM_SLOT_ICLOTHING | ITEM_SLOT_SUITSTORE

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

/obj/item/organ/internal/brain/werewolf/get_attacking_limb(mob/living/carbon/human/target)
name = "werewolf brain"
desc = "a strange mixture of a human and wolf brain"
organ_traits = list(TRAIT_PRIMITIVE, TRAIT_CAN_STRIP)

if(target.body_position == LYING_DOWN)
return owner.get_bodypart(BODY_ZONE_HEAD)
return ..()

/datum/species/werewolf/prepare_human_for_preview(mob/living/carbon/human/human)
human.set_haircolor("#bb9966", update = FALSE) // brown
human.set_hairstyle("Business Hair", update = TRUE)

/datum/species/werewolf/get_species_description()
return "N/A"

/datum/species/human/get_species_lore()
return list(
"N/A",
)

/datum/species/werewolf/create_pref_unique_perks()
var/list/to_add = list()

to_add += list(
list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = "paw",
SPECIES_PERK_NAME = "Primal Primate",
SPECIES_PERK_DESC = "Werewolves are monstrous humans, and can't do most things a human can do. Computers are impossible, \
complex machines are right out, and most clothes don't fit your larger form.",
),
list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = "assistive-listening-systems",
SPECIES_PERK_NAME = "Sensitive Hearing",
SPECIES_PERK_DESC = "Werewolves are more sensitive to loud sounds, such as flashbangs.",
))

return to_add
11 changes: 11 additions & 0 deletions maplestation_modules/code/modules/surgery/organs/ears.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,14 @@
icon_state = "catcyber"
icon = 'maplestation_modules/icons/mob/mutant_bodyparts.dmi'
locked = TRUE

/obj/item/organ/internal/ears/werewolf
name = "wolf ears"
icon = 'icons/obj/clothing/head/costume.dmi'
icon_state = "kitty"
desc = "Allows the user to more easily hear whispers. The user becomes extra vulnerable to loud noises, however"
// Same sensitivity as felinid ears
damage_multiplier = 2
/obj/item/organ/internal/ears/werewolf/on_mob_insert(mob/living/carbon/ear_owner)
. = ..()
organ_traits = list(TRAIT_GOOD_HEARING)
6 changes: 6 additions & 0 deletions maplestation_modules/code/modules/surgery/organs/eyes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,9 @@
/mob/living/carbon
/// Overlay file to take (missing) eye icons from
var/missing_eye_file = 'icons/mob/human/human_face.dmi'

/obj/item/organ/internal/eyes/werewolf
name = "wolf eyes"
desc = "Large and powerful eyes."
sight_flags = SEE_MOBS
color_cutoffs = list(25, 5, 42)
10 changes: 10 additions & 0 deletions maplestation_modules/code/modules/surgery/organs/heart.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/obj/item/organ/internal/heart/werewolf
name = "massive heart"
desc = "An absolutely monstrous heart."
icon_state = "heart-on"
base_icon_state = "heart"
maxHealth = 2 * STANDARD_ORGAN_THRESHOLD
/obj/item/organ/internal/heart/wolf/Initialize(mapload)
. = ..()
transform = transform.Scale(1.5)

20 changes: 20 additions & 0 deletions maplestation_modules/code/modules/surgery/organs/liver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,23 @@
/obj/item/organ/internal/liver/lizard/Initialize(mapload)
. = ..()
disease_free_foods = typecacheof(/obj/item/food/deadmouse)

/obj/item/organ/internal/liver/werewolf

name = "Beastly liver"
desc = "A large monstrous liver."
icon_state = "liver"
organ_traits = list(TRAIT_STABLELIVER|ORGAN_UNREMOVABLE)
///Var for brute healing via blood
var/blood_brute_healing = 2.5
///Var for burn healing via blood
var/blood_burn_healing = 2.5

/obj/item/organ/internal/liver/werewolf/handle_chemical(mob/living/carbon/organ_owner, datum/reagent/chem, seconds_per_tick, times_fired)
. = ..()
// parent returned COMSIG_MOB_STOP_REAGENT_CHECK or we are failing
if((. & COMSIG_MOB_STOP_REAGENT_CHECK) || (organ_flags & ORGAN_FAILING))
return
if(istype(chem, /datum/reagent/silver))
organ_owner.adjustStaminaLoss(7.5 * REM * seconds_per_tick, updating_stamina = TRUE)
organ_owner.adjustFireLoss(5.0 * REM * seconds_per_tick, updating_health = TRUE)
35 changes: 35 additions & 0 deletions maplestation_modules/code/modules/surgery/organs/tongue.dm
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,38 @@

/obj/item/organ/internal/tongue/lizard/get_possible_languages()
return ..() + /datum/language/impdraconic

/obj/item/organ/internal/tongue/werewolf
name = "wolf tongue"
desc = "A large tongue that looks like a mix of a human's and a wolf's."
icon_state = "werewolf_tongue"
icon = 'maplestation_modules/icons/mob/mutant_bodyparts.dmi'
say_mod = "growls"
modifies_speech = TRUE
taste_sensitivity = 5
liked_foodtypes = GROSS | MEAT | RAW | GORE
disliked_foodtypes = SUGAR

/obj/item/organ/internal/tongue/werewolf/modify_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")

// all occurrences of characters "eiou" (case-insensitive) are replaced with "r"
message = replacetext(message, regex(@"[eiou]", "ig"), "r")
// all characters other than "zhrgbmna .!?-" (case-insensitive) are stripped
message = replacetext(message, regex(@"[^zhrgbmna.!?-\s]", "ig"), "")
// multiple spaces are replaced with a single (whitespace is trimmed)
message = replacetext(message, regex(@"(\s+)", "g"), " ")

var/list/old_words = splittext(message, " ")
var/list/new_words = list()
for(var/word in old_words)
// lower-case "r" at the end of words replaced with "rh"
word = replacetext(word, regex(@"\lr\b"), "rh")
// an "a" or "A" by itself will be replaced with "hra"
word = replacetext(word, regex(@"\b[Aa]\b"), "hra")
new_words += word

message = new_words.Join(" ")
message = capitalize(message)
speech_args[SPEECH_MESSAGE] = message
127 changes: 127 additions & 0 deletions maplestation_modules/code/modules/surgery/organs/werewolf_parts.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
///WEREWOLF
/obj/item/bodypart/head/werewolf
limb_id = SPECIES_WEREWOLF
icon_greyscale = 'maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi'
is_dimorphic = FALSE
should_draw_greyscale = TRUE

/obj/item/bodypart/head/werewolf/update_limb(dropping_limb, is_creating)
. = ..()
var/mob/living/carbon/human/wolf = owner
species_color = wolf.hair_color
draw_color = species_color
burn_modifier = 0.75
brute_modifier = 0.25
unarmed_attack_verb = "bite"
grappled_attack_verb = "maul"
unarmed_attack_effect = ATTACK_EFFECT_BITE
unarmed_attack_sound = 'sound/weapons/bite.ogg'
unarmed_miss_sound = 'sound/weapons/bite.ogg'
unarmed_damage_low = 60
unarmed_damage_high = 75
unarmed_effectiveness = 50
dmg_overlay_type = null
biological_state = (BIO_FLESH|BIO_BLOODED)
head_flags = HEAD_EYESPRITES|HEAD_EYECOLOR|HEAD_EYEHOLES|HEAD_DEBRAIN|HEAD_HAIR

/obj/item/bodypart/chest/werewolf
limb_id = SPECIES_WEREWOLF
icon_greyscale = 'maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi'
is_dimorphic = TRUE
should_draw_greyscale = TRUE

/obj/item/bodypart/chest/werewolf/update_limb(dropping_limb, is_creating)
. = ..()
var/mob/living/carbon/human/wolf = owner
species_color = wolf.hair_color
draw_color = species_color
burn_modifier = 0.75
brute_modifier = 0.25
dmg_overlay_type = null
biological_state = (BIO_FLESH|BIO_BLOODED)
bodypart_traits = list(TRAIT_NO_JUMPSUIT, TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PUSHIMMUNE, TRAIT_STUNIMMUNE)
wing_types = NONE

/obj/item/bodypart/arm/left/werewolf
limb_id = SPECIES_WEREWOLF
icon_greyscale = 'maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi'
should_draw_greyscale = TRUE

/obj/item/bodypart/arm/left/werewolf/update_limb(dropping_limb, is_creating)
. = ..()
var/mob/living/carbon/human/wolf = owner
species_color = wolf.hair_color
draw_color = species_color
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'
unarmed_damage_low = 20
unarmed_damage_high = 25
unarmed_effectiveness = 20
burn_modifier = 0.75
brute_modifier = 0.25
dmg_overlay_type = null
bodypart_traits = list(TRAIT_CHUNKYFINGERS)
biological_state = (BIO_FLESH|BIO_BLOODED)

/obj/item/bodypart/arm/right/werewolf
limb_id = SPECIES_WEREWOLF
icon_greyscale = 'maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi'
should_draw_greyscale = TRUE

/obj/item/bodypart/arm/right/werewolf/update_limb(dropping_limb, is_creating)
. = ..()
var/mob/living/carbon/human/wolf = owner
species_color = wolf.hair_color
draw_color = species_color
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'
unarmed_damage_low = 20
unarmed_damage_high = 25
unarmed_effectiveness = 20
burn_modifier = 0.75
brute_modifier = 0.25
dmg_overlay_type = null
bodypart_traits = list(TRAIT_CHUNKYFINGERS)
biological_state = (BIO_FLESH|BIO_BLOODED)

/obj/item/bodypart/leg/left/werewolf
limb_id = SPECIES_WEREWOLF
icon_greyscale = 'maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi'
should_draw_greyscale = TRUE

/obj/item/bodypart/leg/left/werewolf/update_limb(dropping_limb, is_creating)
. = ..()
var/mob/living/carbon/human/wolf = owner
species_color = wolf.hair_color
draw_color = species_color
burn_modifier = 0.75
brute_modifier = 0.25
speed_modifier = 3
dmg_overlay_type = null
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE
footstep_type = FOOTSTEP_MOB_CLAW
biological_state = (BIO_FLESH|BIO_BLOODED)

/obj/item/bodypart/leg/right/werewolf
limb_id = SPECIES_WEREWOLF
icon_greyscale = 'maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi'
should_draw_greyscale = TRUE

/obj/item/bodypart/leg/right/werewolf/update_limb(dropping_limb, is_creating)
. = ..()
var/mob/living/carbon/human/wolf = owner
species_color = wolf.hair_color
draw_color = species_color
burn_modifier = 0.75
brute_modifier = 0.25
speed_modifier = 3
dmg_overlay_type = null
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_DIGITIGRADE
footstep_type = FOOTSTEP_MOB_CLAW
biological_state = (BIO_FLESH|BIO_BLOODED)
Binary file modified maplestation_modules/icons/mob/mutant_bodyparts.dmi
Binary file not shown.
Binary file not shown.