diff --git a/config/game_options.txt b/config/game_options.txt index 94e6203385ca..9f16a048d576 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -351,6 +351,7 @@ ROUNDSTART_RACES oozeling ROUNDSTART_RACES ipc ROUNDSTART_RACES simian ROUNDSTART_RACES arachnid +ROUNDSTART_RACES rattus ## Races that are better than humans in some ways, but worse in others ROUNDSTART_RACES ethereal diff --git a/monkestation/code/__HELPERS/names.dm b/monkestation/code/__HELPERS/names.dm new file mode 100644 index 000000000000..4ec6a1dfbb9e --- /dev/null +++ b/monkestation/code/__HELPERS/names.dm @@ -0,0 +1,9 @@ +GLOBAL_LIST_INIT(rattus_last_names, world.file2list("monkestation/strings/names/rattus_last.txt")) +GLOBAL_LIST_INIT(rattus_names_female, world.file2list("monkestation/strings/names/rattus_female_first.txt")) +GLOBAL_LIST_INIT(rattus_names_male, world.file2list("monkestation/strings/names/rattus_male_first.txt")) + +/proc/rattus_name(gender) + if(gender == MALE) + return "[pick(GLOB.rattus_names_male)] [pick(GLOB.rattus_last_names)]" + else + return "[pick(GLOB.rattus_names_female)] [pick(GLOB.rattus_last_names)]" diff --git a/monkestation/code/modules/mob/living/carbon/human/human.dm b/monkestation/code/modules/mob/living/carbon/human/human.dm index 531d405af991..ac0fdea95a08 100644 --- a/monkestation/code/modules/mob/living/carbon/human/human.dm +++ b/monkestation/code/modules/mob/living/carbon/human/human.dm @@ -1,2 +1,5 @@ /mob/living/carbon/human/species/arachnid race = /datum/species/arachnid + +/mob/living/carbon/human/species/rattus + race = /datum/species/rattus diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/rattus.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/rattus.dm new file mode 100644 index 000000000000..3f623e6f9fb2 --- /dev/null +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/rattus.dm @@ -0,0 +1,202 @@ +#define SPECIES_RATTUS "rattus" + +#define RATTUS_BELT_ICON 'monkestation/icons/mob/clothing/species/rattus/belts.dmi' +#define RATTUS_BACK_ICON 'monkestation/icons/mob/clothing/species/rattus/back.dmi' + +/* + LORE (also called the bullshit i made up with pizza and kitsune) + A cargo ship crashed into the dessert plannet of Voltaire + This cargo ship was full of cheese, wine, and french personel (all of which died) + + the rattus being savage cannibals they are go into the cargo ship and eat the fench obsorbing thier dna, turning all of the rattus french. + they later developed space travel and said to NanoTrasen "Bonjour, je suis maintenant là pour voler tout votre fromage !" +*/ + +/datum/species/rattus + name = "Rattus Norvegicus" + plural_form = "Rattus" + id = SPECIES_RATTUS + changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN + species_traits = list( + NO_UNDERWEAR, + MUTCOLORS, + NOEYESPRITES, + ) + inherent_traits = list( + TRAIT_NO_JUMPSUIT, + TRAIT_VAULTING, + TRAIT_NIGHT_VISION, + TRAIT_POOR_AIM, + TRAIT_SMOKER, + NOAUGMENTS, + ) + inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID + species_cookie = /obj/item/food/cheese/wedge + meat = /obj/item/food/meat/slab/mouse + liked_food = DAIRY | SUGAR | ALCOHOL //("Sad European" -MechaDH) + disliked_food = MEAT | VEGETABLES | RAW | JUNKFOOD | GRAIN | FRUIT | FRIED | GROSS | TOXIC | PINEAPPLE | BREAKFAST | CLOTH | NUTS | SEAFOOD | ORANGES | BUGS | GORE + maxhealthmod = 0.75 + stunmod = 1.25 + speedmod = -0.3 + brutemod = 1.75 + burnmod = 4 + payday_modifier = 0.5 + mutanttongue = /obj/item/organ/internal/tongue/rattus + species_language_holder = /datum/language_holder/rattus + death_sound = "monkestation/sound/voice/rattus/rattusdeath.ogg" + no_equip_flags = ITEM_SLOT_ICLOTHING | ITEM_SLOT_NECK | ITEM_SLOT_GLOVES | ITEM_SLOT_FEET | ITEM_SLOT_BACKPACK | ITEM_SLOT_BACK + custom_worn_icons = list( + LOADOUT_ITEM_BELT = RATTUS_BELT_ICON, + LOADOUT_ITEM_MISC = RATTUS_BACK_ICON, + ) + offset_features = list( + OFFSET_HANDS = list(0,-3), + OFFSET_HEAD = list(0,-5), + OFFSET_SUIT = list(0,-5), + OFFSET_EARS = list(0,-5), + OFFSET_BELT = list(0,-6), + OFFSET_EYES = list(0,-6), + OFFSET_FACE = list(0,-6), + OFFSET_ACCESSORY = list(0,-6), + OFFSET_S_STORE = list(0,-6), + OFFSET_FACEMASK = list(0,-5), + OFFSET_GLASSES = list(0,-6), + ) + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/rattus, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/rattus, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/rattus, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/rattus, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/rattus, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/rattus, + ) + family_heirlooms = list( + /obj/item/trash/raisins, + /obj/item/trash/cheesie, + /obj/item/trash/candy, + /obj/item/trash/chips, + /obj/item/trash/sosjerky, + /obj/item/trash/pistachios, + /obj/item/trash/peanuts, + /obj/item/trash/boritos, + /obj/item/trash/boritos/green, + /obj/item/trash/boritos/purple, + /obj/item/trash/boritos/red, + /obj/item/trash/popcorn, + /obj/item/trash/energybar, + /obj/item/trash/semki, + /obj/item/trash/cnds, + /obj/item/trash/syndi_cakes, + /obj/item/trash/shrimp_chips, + /obj/item/trash/waffles, + /obj/item/trash/tray, + /obj/item/trash/can, + /obj/item/shard, + /obj/item/broken_bottle, + /obj/item/light/tube/broken, + /obj/item/light/bulb/broken, + /obj/item/assembly/mousetrap/armed, + /obj/item/reagent_containers/cup/rag, + /obj/item/popsicle_stick, + /obj/item/shard/plasma, + ) + +/datum/species/rattus/get_species_description() + return "Rats, rats, we're the rats. \ + We prey at night, we stalk at night, we're the rats. \ + I'm the giant rat that makes all of the rules. \ + Let's see what kind of trouble we can get ourselves into." + +/datum/species/rattus/random_name(gender,unique,lastname) + var/randname = rattus_name(gender) + if(lastname) + randname += " [lastname]" + return randname + +/datum/species/rattus/get_scream_sound(mob/living/carbon/human/human) + return 'monkestation/sound/voice/rattus/rattusscream.ogg' + +/datum/species/rattus/get_laugh_sound(mob/living/carbon/human/human) + return 'monkestation/sound/voice/rattus/rattuslaugh.ogg' + +/datum/language_holder/rattus + understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/rattus = list(LANGUAGE_ATOM)) + spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/rattus = list(LANGUAGE_ATOM)) + +/datum/language/rattus + name = "Rattus French" + desc = "The traditional lanugage of the Rattus peoples." + key = "r" + space_chance = 100 + default_priority = 90 + syllables = list("lager","maotai","bulleit","cognac","raki","mojito","smirnoff","brandy","sazerac","parmesan","mozzarella","ricotta","brie","camembert","provolone","gorgonzola","muenster","mascarpone","monterey","havarti","squeak","(rat sounds)","hon","hun","baugete","baugette","cigarette","viva","wine","cheese","fromage","omelette-du-fromage","(INCOHERENT YELLING)","fuck","tabarnak","le","honhonhon","accoutrement","eiffel-tower","blue-cheese") + icon = 'monkestation/icons/misc/language.dmi' + icon_state = "rattus" + +/obj/item/bodypart/head/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + is_dimorphic = FALSE + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + +/obj/item/bodypart/head/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + is_dimorphic = FALSE + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + +/obj/item/bodypart/chest/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + is_dimorphic = FALSE + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + +/obj/item/bodypart/arm/left/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + +/obj/item/bodypart/arm/right/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + +/obj/item/bodypart/leg/left/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + + +/obj/item/bodypart/leg/right/rattus + icon_greyscale = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + husk_type = "rattus" + icon_husk = 'monkestation/icons/mob/species/rattus/bodyparts.dmi' + limb_id = SPECIES_RATTUS + bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + dmg_overlay_type = "monkey" + +/obj/item/organ/internal/tongue/rattus + name = "rattus tongue" + desc = "A fleshy muscle mostly used for lying. Reaks of alcohol and cheese." + say_mod = "squeaks" + +/obj/item/organ/internal/tongue/rattus/get_possible_languages() + return ..() + /datum/language/rattus diff --git a/monkestation/icons/misc/language.dmi b/monkestation/icons/misc/language.dmi index 8b28a744054b..b31649a8755c 100644 Binary files a/monkestation/icons/misc/language.dmi and b/monkestation/icons/misc/language.dmi differ diff --git a/monkestation/icons/mob/clothing/species/rattus/back.dmi b/monkestation/icons/mob/clothing/species/rattus/back.dmi new file mode 100644 index 000000000000..8a4522cd235f Binary files /dev/null and b/monkestation/icons/mob/clothing/species/rattus/back.dmi differ diff --git a/monkestation/icons/mob/clothing/species/rattus/belts.dmi b/monkestation/icons/mob/clothing/species/rattus/belts.dmi new file mode 100644 index 000000000000..4fcc9f8f4b16 Binary files /dev/null and b/monkestation/icons/mob/clothing/species/rattus/belts.dmi differ diff --git a/monkestation/icons/mob/clothing/species/rattus/glasses.dmi b/monkestation/icons/mob/clothing/species/rattus/glasses.dmi new file mode 100644 index 000000000000..d5e2964d6300 Binary files /dev/null and b/monkestation/icons/mob/clothing/species/rattus/glasses.dmi differ diff --git a/monkestation/icons/mob/clothing/species/rattus/suit.dmi b/monkestation/icons/mob/clothing/species/rattus/suit.dmi new file mode 100644 index 000000000000..92d02218f37f Binary files /dev/null and b/monkestation/icons/mob/clothing/species/rattus/suit.dmi differ diff --git a/monkestation/icons/mob/species/rattus/bodyparts.dmi b/monkestation/icons/mob/species/rattus/bodyparts.dmi new file mode 100644 index 000000000000..65b8395e8bfa Binary files /dev/null and b/monkestation/icons/mob/species/rattus/bodyparts.dmi differ diff --git a/monkestation/sound/voice/rattus/rattusdeath.ogg b/monkestation/sound/voice/rattus/rattusdeath.ogg new file mode 100644 index 000000000000..719eb6102f62 Binary files /dev/null and b/monkestation/sound/voice/rattus/rattusdeath.ogg differ diff --git a/monkestation/sound/voice/rattus/rattuslaugh.ogg b/monkestation/sound/voice/rattus/rattuslaugh.ogg new file mode 100644 index 000000000000..f44e849f2c69 Binary files /dev/null and b/monkestation/sound/voice/rattus/rattuslaugh.ogg differ diff --git a/monkestation/sound/voice/rattus/rattusscream.ogg b/monkestation/sound/voice/rattus/rattusscream.ogg new file mode 100644 index 000000000000..b5fee6284347 Binary files /dev/null and b/monkestation/sound/voice/rattus/rattusscream.ogg differ diff --git a/monkestation/strings/names/rattus_female_first.txt b/monkestation/strings/names/rattus_female_first.txt new file mode 100644 index 000000000000..2a07813ab190 --- /dev/null +++ b/monkestation/strings/names/rattus_female_first.txt @@ -0,0 +1,100 @@ +Abby +Alice +Amber +Angel +Bella +Biscuit +Blossom +Bonnie +Buttercup +Callie +Candy +Caramel +Cassie +Celeste +Charlotte +Cherry +Cinnamon +Cleo +Clover +Cookie +Daisy +Daphne +Dixie +Dolly +Ember +Evie +Faith +Fifi +Fluffy +Freckles +Ginger +Gypsy +Hazel +Honey +Ivy +Jasmine +Jewel +Josie +Joy +Juno +Kiki +Kira +Lacey +Layla +Lexi +Lily +Luna +Maisy +Maple +Margo +Marigold +Matilda +Mia +Millie +Mocha +Molly +Nala +Nibbles +Nutmeg +Olive +Penny +Pepper +Petal +Phoebe +Pixie +Poppy +Pumpkin +Rosie +Ruby +Sadie +Saffron +Sassy +Scout +Skittles +Snickers +Squeaky +Star +Stella +Sunny +Sweetie +Taffy +Tinkerbell +Tulip +Twinkle +Willow +Winnie +Xena +Yara +Yuki +Zoey +Zara +Zinnia +Zuzu +Ziggy +Zara +Zia +Zola +Zuri +Zeva +Zia \ No newline at end of file diff --git a/monkestation/strings/names/rattus_last.txt b/monkestation/strings/names/rattus_last.txt new file mode 100644 index 000000000000..25b0af611872 --- /dev/null +++ b/monkestation/strings/names/rattus_last.txt @@ -0,0 +1,100 @@ +Ratclaw +Verminfur +Tailbiter +Skavenshadow +Fangtooth +Whiskertail +Clawfang +Squeaksword +Furgnaw +Vermintail +Ratslicer +Snikch +Gnawblade +Stabbwhisker +Ratfurrow +Tailripper +Skavenskull +Ratfang +Verminspike +Squeakstrike +Clawtooth +Gnawwhisker +Ratclawber +Sniktalon +Skavenfur +Ripsqueak +Verminclaw +Tailwhisk +Clawwhisk +Furblade +Squeaknail +Ratshadow +Gnawfang +Stabbfur +Verminstrike +Clawclaw +Skavenslicer +Ratbiter +Whiskersnarl +Furclaw +Squeakblade +Fangwhisker +Ratnail +Skavenshank +Gnawtail +Ratspike +Verminnail +Tailfang +Clawstrike +Furwhisker +Squeakslice +Ratwhisk +Skavenbite +Sniktfur +Gnawclaw +Ripwhisk +Verminslash +Tailwhisker +Clawblade +Ratstrike +Whiskernail +Furbiter +Squeakshank +Fangtail +Ratsnarl +Skaventail +Gnawtooth +Stabbnail +Verminbite +Clawshadow +Ratclawshank +Snikcnail +Skavenstrike +Squeakclaw +Furslicer +Tailbiter +Clawfur +Ratwhisker +Whiskerstrike +Fangclaw +Gnawblade +Ratspike +Verminsnarl +Clawshank +Skavennail +Squeaktooth +Fursnarl +Tailslicer +Ratstrike +Whiskerwhisk +Sniktblade +Gnawshadow +Skavenbite +Ratslash +Verminclaw +Clawwhisker +Squeakslice +Furclaw +Tailstrike +Ratshank \ No newline at end of file diff --git a/monkestation/strings/names/rattus_male_first.txt b/monkestation/strings/names/rattus_male_first.txt new file mode 100644 index 000000000000..8ed384c490f8 --- /dev/null +++ b/monkestation/strings/names/rattus_male_first.txt @@ -0,0 +1,100 @@ +Albert +Alvin +Archie +Artie +Atlas +Basil +Benji +Bernie +Biscuit +Boris +Bruno +Buddy +Buster +Caesar +Charlie +Chester +Chico +Chip +Clyde +Cosmo +Dexter +Eddie +Felix +Finn +Frankie +Fred +George +Gizmo +Gobo +Gus +Hamlet +Hank +Harvey +Henry +Hugo +Iggy +Jack +Jasper +Jerry +Joey +Leo +Loki +Louie +Lucky +Marley +Max +Mickey +Milo +Monty +Morty +Nibbles +Nigel +Oliver +Ollie +Oscar +Otto +Peanut +Percy +Peter +Pippin +Pip +Quincy +Ralph +Remy +Ricky +Ringo +Rocky +Romeo +Rudy +Rusty +Scooter +Simba +Squeaky +Squeak +Stanley +Stitch +Teddy +Theo +Toby +Tommy +Victor +Walter +Whiskers +Wilbur +Wiggles +Winston +Woody +Wookie +Wriggle +Xavier +Yoda +Yogi +Ziggy +Zippy +Zorro +Zuma +Zane +Zeke +Zeus +Zeki \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index d6d7bf5094f2..042ce46f6ab5 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5469,6 +5469,7 @@ #include "interface\skin.dmf" #include "monkestation\code\__DEFINES\projectile.dm" #include "monkestation\code\__HELPERS\_lists.dm" +#include "monkestation\code\__HELPERS\names.dm" #include "monkestation\code\__HELPERS\reagents.dm" #include "monkestation\code\__HELPERS\turfs.dm" #include "monkestation\code\_onclick\hud\alert.dm" @@ -6056,6 +6057,7 @@ #include "monkestation\code\modules\mob\living\carbon\human\species_type\oozeling.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\plasmamen.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\podpeople.dm" +#include "monkestation\code\modules\mob\living\carbon\human\species_type\rattus.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\shadowpeople.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\simian.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\skeletons.dm"