Merge pull request #39 from Citadel-Station-13/master

updater
This commit is contained in:
Trilbyspaceclone
2019-05-05 06:25:23 -04:00
committed by GitHub
75 changed files with 3131 additions and 2444 deletions
File diff suppressed because it is too large Load Diff
+1
View File
@@ -121,3 +121,4 @@
#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop"
#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun"
#define ORGAN_SLOT_TAIL "tail"
#define ORGAN_SLOT_PENIS "penis"
+1
View File
@@ -102,6 +102,7 @@
#define CAT_SANDWICH "Sandwiches"
#define CAT_SOUP "Soups"
#define CAT_SPAGHETTI "Spaghettis"
#define CAT_SUSHI "Fish"
#define RCD_FLOORWALL 1
#define RCD_AIRLOCK 2
+1
View File
@@ -69,6 +69,7 @@
#define TRAIT_TAGGER "tagger"
#define TRAIT_PHOTOGRAPHER "photographer"
#define TRAIT_MUSICIAN "musician"
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
// common trait sources
#define TRAIT_GENERIC "generic"
@@ -108,5 +108,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/toy/eightball = 1,
/obj/item/reagent_containers/pill/floorpill = 1,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
/obj/item/storage/pill_bottle/penis_enlargement = 2,
"" = 3
))
@@ -19,6 +19,22 @@
max_items = 1
attack_hand_interact = FALSE
/datum/component/storage/concrete/pockets/small/collar
max_items = 1
/datum/component/storage/concrete/pockets/small/collar/Initialize()
. = ..()
can_hold = typecacheof(list(
/obj/item/reagent_containers/food/snacks/cookie,
/obj/item/reagent_containers/food/snacks/sugarcookie))
/datum/component/storage/concrete/pockets/small/collar/locked/Initialize()
. = ..()
can_hold = typecacheof(list(
/obj/item/reagent_containers/food/snacks/cookie,
/obj/item/reagent_containers/food/snacks/sugarcookie,
/obj/item/key/collar))
/datum/component/storage/concrete/pockets/tiny
max_items = 1
max_w_class = WEIGHT_CLASS_TINY
+1 -1
View File
@@ -32,7 +32,7 @@
if(!IsAvailable())
return
var/turf/T = get_turf(target)
if(target in view(user.client.view, get_turf(user)))
if(target in view(user.client.view, user))
var/obj/spot1 = new phaseout(get_turf(user), user.dir)
user.forceMove(T)
playsound(T, dash_sound, 25, 1)
+9
View File
@@ -84,3 +84,12 @@
/datum/quirk/monochromatic/remove()
if(quirk_holder)
quirk_holder.remove_client_colour(/datum/client_colour/monochrome)
/datum/quirk/crocrin_immunity
name = "Crocin Immunity"
desc = "You're one of the few people in the galaxy who are genetically immune to Crocin and Hexacrocin products and their addictive properties! However, you can still get brain damage from Hexacrocin addiction."
mob_trait = TRAIT_CROCRIN_IMMUNE
value = 0
gain_text = "<span class='notice'>You feel more prudish.</span>"
lose_text = "<span class='notice'>You don't feel as prudish as before.</span>"
medical_record_text = "Patient exhibits a special gene that makes them immune to Crocin and Hexacrocin."
+3 -1
View File
@@ -15,7 +15,9 @@
/obj/item/gun/energy,
/obj/item/melee/baton,
/obj/item/ammo_box/magazine/recharge,
/obj/item/modular_computer))
/obj/item/modular_computer,
/obj/item/gun/ballistic/automatic/magrifle_e,
/obj/item/gun/ballistic/automatic/pistol/mag_e))
/obj/machinery/recharger/RefreshParts()
for(var/obj/item/stock_parts/capacitor/C in component_parts)
+9 -1
View File
@@ -122,7 +122,7 @@
new /obj/item/reagent_containers/pill/antirad(src)
new /obj/item/reagent_containers/food/drinks/bottle/vodka(src)
new /obj/item/healthanalyzer(src)
/obj/item/storage/firstaid/o2
name = "oxygen deprivation treatment kit"
@@ -312,3 +312,11 @@
/obj/item/storage/pill_bottle/mutarad/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/reagent_containers/pill/mutarad(src)
/obj/item/storage/pill_bottle/penis_enlargement
name = "penis enlargement pills"
desc = "You want penis enlargement pills?"
/obj/item/storage/pill_bottle/penis_enlargement/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/reagent_containers/pill/penis_enlargement(src)
+3 -3
View File
@@ -26,7 +26,7 @@
icon_state = "captain"
item_state = "that"
flags_inv = 0
armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/captain
@@ -50,7 +50,7 @@
name = "head of personnel's cap"
icon_state = "hopcap"
desc = "The symbol of true bureaucratic micromanagement."
armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
dog_fashion = /datum/dog_fashion/head/hop
/obj/item/clothing/head/hopcap/beret
@@ -200,4 +200,4 @@
/obj/item/clothing/head/beret/qm
name = "quartermaster's beret"
desc = "This headwear shows off your Cargonian leadership"
icon_state = "qmberet"
icon_state = "qmberet"
+42 -2
View File
@@ -171,17 +171,57 @@
icon_state = "stripedbluescarf"
item_color = "stripedbluescarf"
/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys
///////////
//COLLARS//
///////////
/obj/item/clothing/neck/petcollar
name = "pet collar"
desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule."
icon_state = "petcollar"
item_color = "petcollar"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar
var/tagname = null
/obj/item/clothing/neck/petcollar/attack_self(mob/user)
tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN)
name = "[initial(name)] - [tagname]"
/obj/item/clothing/neck/petcollar/locked
name = "locked collar"
desc = "A collar that has a small lock on it to keep it from being removed."
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked
var/lock = FALSE
/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/key/collar, mob/user, params)
if(lock != FALSE)
to_chat(user, "<span class='warning'>With a click the collar unlocks!</span>")
lock = FALSE
item_flags = NONE
else
to_chat(user, "<span class='warning'>With a click the collar locks!</span>")
lock = TRUE
item_flags = NODROP
return
/obj/item/clothing/neck/petcollar/locked/attack_hand(mob/user)
if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE)
to_chat(user, "<span class='warning'>The collar is locked! You'll need unlock the collar before you can take it off!</span>")
return
..()
/obj/item/key/collar
name = "Collar Key"
desc = "A key for a tiny lock on a collar or bag."
/obj/item/clothing/neck/petcollar/Initialize()
. = ..()
new /obj/item/reagent_containers/food/snacks/cookie(src)
/obj/item/clothing/neck/petcollar/locked/Initialize()
. = ..()
new /obj/item/key/collar(src)
//////////////
//DOPE BLING//
//////////////
@@ -191,4 +231,4 @@
desc = "Damn, it feels good to be a gangster."
icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bling"
item_color = "bling"
item_color = "bling"
@@ -102,3 +102,13 @@
list_reagents = list("nutriment" = 2, "vitamin" = 2)
tastes = list("bread" = 2)
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/tuna_sandwich
name = "tuna sandwich"
desc = "Both a salad and a sandwich in one."
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "tunasandwich"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
tastes = list("tuna" = 4, "mayonnaise" = 2, "bread" = 2)
foodtype = GRAIN | MEAT
@@ -0,0 +1,95 @@
//////////////////////////Sushi Components///////////////////////
/obj/item/reagent_containers/food/snacks/sushi_rice
name = "Sushi Rice"
desc = "A bowl of sticky rice for making sushi."
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushi_rice"
list_reagents = list("sodiumchloride" = 5)
tastes = list("rice" = 5, "salt" = 1)
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/sea_weed
name = "Sea Weed Sheet"
desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes,"
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sea_weed"
list_reagents = list("sodiumchloride" = 2)
tastes = list("plants" = 2, "salt" = 1)
foodtype = VEGETABLES
/obj/item/reagent_containers/food/snacks/tuna
name = "Canned Tuna"
desc = "A small can of tuna fish beloved by felines."
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "tuna_can"
//trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat
list_reagents = list("sodiumchloride" = 5, "mercury" = 2)
tastes = list("tuna" = 15, "mercury" = 1, "salt" = 3)
foodtype = MEAT
//////////////////////////Sushi/////////////////////////////////
/obj/item/reagent_containers/food/snacks/sushie_basic
name = "Funa Hosomaki"
desc = "A small cylindrical filled with rice and fish."
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_basic"
bonus_reagents = list("vitamin" = 2)
list_reagents = list("nutriment" = 1)
bitesize = 1
filling_color = "#F2EEEA" //rgb(242, 238, 234)
tastes = list("fish" = 1, "rice" = 1, "salt" = 1)
foodtype = MEAT | VEGETABLES
/obj/item/reagent_containers/food/snacks/sushie_adv
name = "Funa Nigiri"
desc = "A pice of carp lightly placed on some rice."
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_adv"
bonus_reagents = list("vitamin" = 2)
list_reagents = list("nutriment" = 2)
bitesize = 1
filling_color = "#F2EEEA" //rgb(242, 238, 234)
tastes = list("fish" = 1, "rice" = 1, "salt" = 1)
foodtype = MEAT | VEGETABLES
/obj/item/reagent_containers/food/snacks/sushie_pro
name = "Funa Nigiri"
desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!"
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_pro"
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 8, "vitamin" = 1)
bitesize = 1
filling_color = "#F2EEEA" //rgb(242, 238, 234)
tastes = list("fish" = 1, "rice" = 1, "salt" = 1)
foodtype = MEAT | VEGETABLES
/obj/item/reagent_containers/food/snacks/tobiko
name = "Tobiko"
desc = "Spider eggs wrapped in a thin salted Kudzu pod"
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "sushie_egg"
list_reagents = list("nutriment" = 3, "vitamin" = 2)
filling_color = "#FF3333" // R225 G051 B051
tastes = list("seaweed" = 1, "salty" = 2)
foodtype = MEAT | VEGETABLES
/obj/item/reagent_containers/food/snacks/riceball
name = "Onigiri"
desc = "A ball of rice with some light salt and a wrap of Kudzu skin."
icon = 'modular_citadel/icons/obj/food/food.dmi'
icon_state = "riceball"
list_reagents = list("nutriment" = 5, "sodiumchloride" = 2)
tastes = list("rice" = 4, "salt" = 1)
foodtype = GRAIN
/obj/item/reagent_containers/food/snacks/sashimi
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself."
icon_state = "sashimi"
bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4)
list_reagents = list("nutriment" = 6, "capsaicin" = 5)
filling_color = "#FA8072"
tastes = list("fish" = 1, "hot peppers" = 1)
foodtype = MEAT | TOXIC
@@ -1,5 +1,3 @@
////////////////////////////////////////////////KEBABS////////////////////////////////////////////////
/datum/crafting_recipe/food/humankebab
@@ -71,47 +69,6 @@
result = /obj/item/reagent_containers/food/snacks/fishfingers
subcategory = CAT_MEAT
/datum/crafting_recipe/food/sashimi
name = "Sashimi"
reqs = list(
/datum/reagent/consumable/soysauce = 5,
/obj/item/reagent_containers/food/snacks/spidereggs = 1,
/obj/item/reagent_containers/food/snacks/carpmeat = 1
)
result = /obj/item/reagent_containers/food/snacks/sashimi
subcategory = CAT_MEAT
/datum/crafting_recipe/food/sushi_basic
name = "Funa Hosomaki"
reqs = list(
/datum/reagent/consumable/soysauce = 3,
/obj/item/reagent_containers/food/snacks/salad/ricebowl = 1,
/obj/item/reagent_containers/food/snacks/carpmeat = 2,
/obj/item/reagent_containers/food/snacks/grown/kudzupod = 3,
)
result = /obj/item/reagent_containers/food/snacks/sushi_basic
subcategory = CAT_MEAT
/datum/crafting_recipe/food/sushi_adv
name = "Funa Nigiri"
reqs = list(
/datum/reagent/consumable/soysauce = 5,
/obj/item/reagent_containers/food/snacks/salad/ricebowl = 1,
/obj/item/reagent_containers/food/snacks/carpmeat = 1
)
result = /obj/item/reagent_containers/food/snacks/sushi_adv
subcategory = CAT_MEAT
/datum/crafting_recipe/food/sushi_pro
name = "Well made Funa Nigiri"
reqs = list(
/datum/reagent/consumable/soysauce = 10,
/obj/item/reagent_containers/food/snacks/salad/ricebowl = 2,
/obj/item/reagent_containers/food/snacks/carpmeat = 2
)
result = /obj/item/reagent_containers/food/snacks/sushi_pro
subcategory = CAT_MEAT
////////////////////////////////////////////////MR SPIDER////////////////////////////////////////////////
/datum/crafting_recipe/food/spidereggsham
@@ -124,16 +81,6 @@
result = /obj/item/reagent_containers/food/snacks/spidereggsham
subcategory = CAT_MEAT
/datum/crafting_recipe/food/sushi_egg
name = "Tobiko"
reqs = list(
/datum/reagent/consumable/soysauce = 6,
/obj/item/reagent_containers/food/snacks/spidereggs = 1,
/obj/item/reagent_containers/food/snacks/grown/kudzupod = 2,
)
result = /obj/item/reagent_containers/food/snacks/tobiko
subcategory = CAT_MEAT
////////////////////////////////////////////////MISC RECIPE's////////////////////////////////////////////////
/datum/crafting_recipe/food/cornedbeef
@@ -62,5 +62,13 @@
result = /obj/item/reagent_containers/food/snacks/notasandwich
subcategory = CAT_SANDWICH
/datum/crafting_recipe/food/notasandwich
name = "Tuna sandwich"
reqs = list(
/obj/item/reagent_containers/food/snacks/breadslice/plain = 2,
/obj/item/reagent_containers/food/snacks/tuna = 1,
/obj/item/reagent_containers/food/snacks/grown/onion = 1,
/obj/item/reagent_containers/food/condiment/mayonnaise = 5
)
result = /obj/item/reagent_containers/food/snacks/tuna_sandwich
subcategory = CAT_SANDWICH
@@ -0,0 +1,94 @@
//////////////////////////Sushi Components///////////////////////
/datum/crafting_recipe/food/sushi_rice
name = "Sushi Rice"
reqs = list(
/datum/reagent/water = 40,
/datum/reagent/consumable/rice = 10
)
result = /obj/item/reagent_containers/food/snacks/sushi_rice
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/sea_weed
name = "Sea Weed Sheet"
reqs = list(
/datum/reagent/water = 30,
/datum/reagent/consumable/soysauce = 5,
/obj/item/reagent_containers/food/snacks/grown/kudzupod = 1,
)
result = /obj/item/reagent_containers/food/snacks/sea_weed
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/tuna_can
name = "Can of Tuna"
reqs = list(
/datum/reagent/consumable/sodiumchloride = 15,
/datum/reagent/consumable/cooking_oil = 5,
/obj/item/reagent_containers/food/snacks/carpmeat = 1,
)
result = /obj/item/reagent_containers/food/snacks/tuna
subcategory = CAT_SUSHI
//////////////////////////Sushi/////////////////////////////////
/datum/crafting_recipe/food/sashimi
name = "Sashimi"
reqs = list(
/datum/reagent/consumable/soysauce = 5,
/obj/item/reagent_containers/food/snacks/spidereggs = 1,
/obj/item/reagent_containers/food/snacks/carpmeat = 1
)
result = /obj/item/reagent_containers/food/snacks/sashimi
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/riceball
name = "Onigiri"
reqs = list(
/datum/reagent/consumable/soysauce = 1,
/obj/item/reagent_containers/food/snacks/sea_weed = 1,
/obj/item/reagent_containers/food/snacks/sushi_rice = 1
)
result = /obj/item/reagent_containers/food/snacks/riceball
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/sushie_egg
name = "Tobiko"
reqs = list(
/datum/reagent/consumable/soysauce = 6,
/obj/item/reagent_containers/food/snacks/spidereggs = 1,
/obj/item/reagent_containers/food/snacks/sea_weed = 2,
)
result = /obj/item/reagent_containers/food/snacks/tobiko
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/sushie_basic
name = "Funa Hosomaki"
reqs = list(
/datum/reagent/consumable/soysauce = 3,
/obj/item/reagent_containers/food/snacks/sushi_rice = 1,
/obj/item/reagent_containers/food/snacks/carpmeat = 2,
/obj/item/reagent_containers/food/snacks/sea_weed = 3,
)
result = /obj/item/reagent_containers/food/snacks/sushie_basic
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/sushie_adv
name = "Funa Nigiri"
reqs = list(
/datum/reagent/consumable/soysauce = 5,
/obj/item/reagent_containers/food/snacks/sushi_rice = 1,
/obj/item/reagent_containers/food/snacks/carpmeat = 1
)
result = /obj/item/reagent_containers/food/snacks/sushie_adv
subcategory = CAT_SUSHI
/datum/crafting_recipe/food/sushie_pro
name = "Well made Funa Nigiri"
reqs = list(
/datum/reagent/consumable/soysauce = 10,
/obj/item/reagent_containers/food/snacks/sushi_rice = 2,
/obj/item/reagent_containers/food/snacks/carpmeat = 5,
/obj/item/reagent_containers/food/snacks/sea_weed = 1
)
result = /obj/item/reagent_containers/food/snacks/sushie_pro
subcategory = CAT_SUSHI
+2
View File
@@ -304,6 +304,8 @@
else if(href_list["create"])
var/amount = (text2num(href_list["amount"]))
//Can't be outside these (if you change this keep a sane limit)
amount = CLAMP(amount, 1, 50)
var/datum/design/D = locate(href_list["create"])
create_product(D, amount)
updateUsrDialog()
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,62 @@
/*
Hello and welcome to sprite_accessories: For sprite accessories, such as hair,
facial hair, and possibly tattoos and stuff somewhere along the line. This file is
intended to be friendly for people with little to no actual coding experience.
The process of adding in new hairstyles has been made pain-free and easy to do.
Enjoy! - Doohl
Notice: This all gets automatically compiled in a list in dna.dm, so you do not
have to define any UI values for sprite accessories manually for hair and facial
hair. Just add in new hair types and the game will naturally adapt.
!!WARNING!!: changing existing hair information can be VERY hazardous to savefiles,
to the point where you may completely corrupt a server's savefiles. Please refrain
from doing this unless you absolutely know what you are doing, and have defined a
conversion in savefile.dm
*/
/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female,var/roundstart = FALSE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked
if(!istype(L))
L = list()
if(!istype(male))
male = list()
if(!istype(female))
female = list()
for(var/path in typesof(prototype))
if(path == prototype)
continue
if(roundstart)
var/datum/sprite_accessory/P = path
if(initial(P.locked))
continue
var/datum/sprite_accessory/D = new path()
if(D.icon_state)
L[D.name] = D
else
L += D.name
switch(D.gender)
if(MALE)
male += D.name
if(FEMALE)
female += D.name
else
male += D.name
female += D.name
return L
/datum/sprite_accessory
var/icon //the icon file the accessory is located in
var/icon_state //the icon_state of the accessory
var/name //the preview name of the accessory
var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations
var/gender_specific //Something that can be worn by either gender, but looks different on each
var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none.
var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears.
var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects
var/dimension_x = 32
var/dimension_y = 32
var/center = FALSE //Should we center the sprite?
@@ -0,0 +1,25 @@
//////////.//////////////////
// MutantParts Definitions //
/////////////////////////////
/datum/sprite_accessory/body_markings
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/body_markings/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/body_markings/dtiger
name = "Dark Tiger Body"
icon_state = "dtiger"
gender_specific = 1
/datum/sprite_accessory/body_markings/ltiger
name = "Light Tiger Body"
icon_state = "ltiger"
gender_specific = 1
/datum/sprite_accessory/body_markings/lbelly
name = "Light Belly"
icon_state = "lbelly"
gender_specific = 1
@@ -0,0 +1,7 @@
datum/sprite_accessory/caps
icon = 'icons/mob/mutant_bodyparts.dmi'
color_src = HAIR
/datum/sprite_accessory/caps/round
name = "Round"
icon_state = "round"
@@ -0,0 +1,12 @@
/datum/sprite_accessory/ears
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/ears/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/ears/cat
name = "Cat"
icon_state = "cat"
hasinner = 1
color_src = HAIR
@@ -0,0 +1,18 @@
/datum/sprite_accessory/frills
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/frills/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/frills/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/frills/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/frills/aquatic
name = "Aquatic"
icon_state = "aqua"
@@ -0,0 +1,89 @@
/////////////////////////////
// Facial Hair Definitions //
/////////////////////////////
/datum/sprite_accessory/facial_hair
icon = 'icons/mob/human_face.dmi'
gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P)
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/facial_hair/abe
name = "Beard (Abraham Lincoln)"
icon_state = "facial_abe"
/datum/sprite_accessory/facial_hair/brokenman
name = "Beard (Broken Man)"
icon_state = "facial_brokenman"
/datum/sprite_accessory/facial_hair/chinstrap
name = "Beard (Chinstrap)"
icon_state = "facial_chin"
/datum/sprite_accessory/facial_hair/dwarf
name = "Beard (Dwarf)"
icon_state = "facial_dwarf"
/datum/sprite_accessory/facial_hair/fiveoclock
name = "Beard (Five o Clock Shadow)"
icon_state = "facial_fiveoclock"
/datum/sprite_accessory/facial_hair/fullbeard
name = "Beard (Full)"
icon_state = "facial_fullbeard"
/datum/sprite_accessory/facial_hair/gt
name = "Beard (Goatee)"
icon_state = "facial_gt"
/datum/sprite_accessory/facial_hair/hip
name = "Beard (Hipster)"
icon_state = "facial_hip"
/datum/sprite_accessory/facial_hair/jensen
name = "Beard (Jensen)"
icon_state = "facial_jensen"
/datum/sprite_accessory/facial_hair/neckbeard
name = "Beard (Neckbeard)"
icon_state = "facial_neckbeard"
/datum/sprite_accessory/facial_hair/vlongbeard
name = "Beard (Very Long)"
icon_state = "facial_wise"
/datum/sprite_accessory/facial_hair/longbeard
name = "Beard (Long)"
icon_state = "facial_longbeard"
/datum/sprite_accessory/facial_hair/fu
name = "Moustache (Fu Manchu)"
icon_state = "facial_fumanchu"
/datum/sprite_accessory/facial_hair/hogan
name = "Moustache (Hulk Hogan)"
icon_state = "facial_hogan" //-Neek
/datum/sprite_accessory/facial_hair/selleck
name = "Moustache (Selleck)"
icon_state = "facial_selleck"
/datum/sprite_accessory/facial_hair/chaplin
name = "Moustache (Square)"
icon_state = "facial_chaplin"
/datum/sprite_accessory/facial_hair/vandyke
name = "Moustache (Van Dyke)"
icon_state = "facial_vandyke"
/datum/sprite_accessory/facial_hair/watson
name = "Moustache (Watson)"
icon_state = "facial_watson"
/datum/sprite_accessory/facial_hair/shaved
name = "Shaved"
icon_state = null
gender = NEUTER
/datum/sprite_accessory/facial_hair/elvis
name = "Sideburns (Elvis)"
icon_state = "facial_elvis"
@@ -0,0 +1,460 @@
//////////////////////
// Hair Definitions //
//////////////////////
/datum/sprite_accessory/hair
icon = 'icons/mob/human_face.dmi' // default icon for all hairs
// please make sure they're sorted alphabetically and, where needed, categorized
// try to capitalize the names please~
// try to spell
// you do not need to define _s or _l sub-states, game automatically does this for you
/datum/sprite_accessory/hair/afro
name = "Afro"
icon_state = "hair_afro"
/datum/sprite_accessory/hair/afro2
name = "Afro 2"
icon_state = "hair_afro2"
/datum/sprite_accessory/hair/afro_large
name = "Afro (Large)"
icon_state = "hair_bigafro"
/datum/sprite_accessory/hair/antenna
name = "Ahoge"
icon_state = "hair_antenna"
/datum/sprite_accessory/hair/bald
name = "Bald"
icon_state = null
/datum/sprite_accessory/hair/balding
name = "Balding Hair"
icon_state = "hair_e"
/datum/sprite_accessory/hair/bedhead
name = "Bedhead"
icon_state = "hair_bedhead"
/datum/sprite_accessory/hair/bedhead2
name = "Bedhead 2"
icon_state = "hair_bedheadv2"
/datum/sprite_accessory/hair/bedhead3
name = "Bedhead 3"
icon_state = "hair_bedheadv3"
/datum/sprite_accessory/hair/beehive
name = "Beehive"
icon_state = "hair_beehive"
/datum/sprite_accessory/hair/beehive2
name = "Beehive 2"
icon_state = "hair_beehivev2"
/datum/sprite_accessory/hair/bob
name = "Bob Hair"
icon_state = "hair_bob"
/datum/sprite_accessory/hair/bob2
name = "Bob Hair 2"
icon_state = "hair_bob2"
/datum/sprite_accessory/hair/bob3
name = "Bob Hair 3"
icon_state = "hair_bobcut"
/datum/sprite_accessory/hair/bobcurl
name = "Bobcurl"
icon_state = "hair_bobcurl"
/datum/sprite_accessory/hair/boddicker
name = "Boddicker"
icon_state = "hair_boddicker"
/datum/sprite_accessory/hair/bowl
name = "Bowl"
icon_state = "hair_bowlcut"
/datum/sprite_accessory/hair/braid
name = "Braid (Floorlength)"
icon_state = "hair_braid"
/datum/sprite_accessory/hair/braided
name = "Braided"
icon_state = "hair_braided"
/datum/sprite_accessory/hair/front_braid
name = "Braided Front"
icon_state = "hair_braidfront"
/datum/sprite_accessory/hair/not_floorlength_braid
name = "Braid (High)"
icon_state = "hair_braid2"
/datum/sprite_accessory/hair/lowbraid
name = "Braid (Low)"
icon_state = "hair_hbraid"
/datum/sprite_accessory/hair/shortbraid
name = "Braid (Short)"
icon_state = "hair_shortbraid"
/datum/sprite_accessory/hair/braidtail
name = "Braided Tail"
icon_state = "hair_braidtail"
/datum/sprite_accessory/hair/bun
name = "Bun Head"
icon_state = "hair_bun"
/datum/sprite_accessory/hair/bun2
name = "Bun Head 2"
icon_state = "hair_bunhead2"
/datum/sprite_accessory/hair/largebun
name = "Bun (Large)"
icon_state = "hair_largebun"
/datum/sprite_accessory/hair/business
name = "Business Hair"
icon_state = "hair_business"
/datum/sprite_accessory/hair/business2
name = "Business Hair 2"
icon_state = "hair_business2"
/datum/sprite_accessory/hair/business3
name = "Business Hair 3"
icon_state = "hair_business3"
/datum/sprite_accessory/hair/business4
name = "Business Hair 4"
icon_state = "hair_business4"
/datum/sprite_accessory/hair/buzz
name = "Buzzcut"
icon_state = "hair_buzzcut"
/datum/sprite_accessory/hair/combover
name = "Combover"
icon_state = "hair_combover"
/datum/sprite_accessory/hair/crew
name = "Crewcut"
icon_state = "hair_crewcut"
/datum/sprite_accessory/hair/curls
name = "Curls"
icon_state = "hair_curls"
/datum/sprite_accessory/hair/cut
name = "Cut Hair"
icon_state = "hair_c"
/datum/sprite_accessory/hair/devillock
name = "Devil Lock"
icon_state = "hair_devilock"
/datum/sprite_accessory/hair/dreadlocks
name = "Dreadlocks"
icon_state = "hair_dreads"
/datum/sprite_accessory/hair/drillhair
name = "Drill Hair"
icon_state = "hair_drillhair"
/datum/sprite_accessory/hair/drillhairextended
name = "Drill Hair (Extended)"
icon_state = "hair_drillhairextended"
/datum/sprite_accessory/hair/emo
name = "Emo"
icon_state = "hair_emo"
/datum/sprite_accessory/hair/feather
name = "Feather"
icon_state = "hair_feather"
/datum/sprite_accessory/hair/sargeant
name = "Flat Top"
icon_state = "hair_sargeant"
/datum/sprite_accessory/hair/bigflattop
name = "Flat Top (Big)"
icon_state = "hair_bigflattop"
/datum/sprite_accessory/hair/fag
name = "Flow Hair"
icon_state = "hair_f"
/datum/sprite_accessory/hair/gelled
name = "Gelled Back"
icon_state = "hair_gelled"
/datum/sprite_accessory/hair/gentle
name = "Gentle"
icon_state = "hair_gentle"
/datum/sprite_accessory/hair/halfbang
name = "Half-banged Hair"
icon_state = "hair_halfbang"
/datum/sprite_accessory/hair/halfbang2
name = "Half-banged Hair 2"
icon_state = "hair_halfbang2"
/datum/sprite_accessory/hair/hedgehog
name = "Hedgehog Hair"
icon_state = "hair_hedgehog"
/datum/sprite_accessory/hair/himecut
name = "Hime Cut"
icon_state = "hair_himecut"
/datum/sprite_accessory/hair/himecut2
name = "Hime Cut 2"
icon_state = "hair_himecut2"
/datum/sprite_accessory/hair/himeup
name = "Hime Updo"
icon_state = "hair_himeup"
/datum/sprite_accessory/hair/hitop
name = "Hitop"
icon_state = "hair_hitop"
/datum/sprite_accessory/hair/jensen
name = "Jensen Hair"
icon_state = "hair_jensen"
/datum/sprite_accessory/hair/keanu
name = "Keanu Hair"
icon_state = "hair_keanu"
/datum/sprite_accessory/hair/kusangi
name = "Kusanagi Hair"
icon_state = "hair_kusanagi"
/datum/sprite_accessory/hair/long
name = "Long Hair 1"
icon_state = "hair_long"
/datum/sprite_accessory/hair/long2
name = "Long Hair 2"
icon_state = "hair_long2"
/datum/sprite_accessory/hair/long3
name = "Long Hair 3"
icon_state = "hair_long3"
/datum/sprite_accessory/hair/long_over_eye
name = "Long Over Eye"
icon_state = "hair_longovereye"
/datum/sprite_accessory/hair/longbangs
name = "Long Bangs"
icon_state = "hair_lbangs"
/datum/sprite_accessory/hair/longemo
name = "Long Emo"
icon_state = "hair_longemo"
/datum/sprite_accessory/hair/longfringe
name = "Long Fringe"
icon_state = "hair_longfringe"
/datum/sprite_accessory/hair/sidepartlongalt
name = "Long Side Part"
icon_state = "hair_longsidepart"
/datum/sprite_accessory/hair/megaeyebrows
name = "Mega Eyebrows"
icon_state = "hair_megaeyebrows"
/datum/sprite_accessory/hair/messy
name = "Messy"
icon_state = "hair_messy"
/datum/sprite_accessory/hair/mohawk
name = "Mohawk"
icon_state = "hair_d"
/datum/sprite_accessory/hair/reversemohawk
name = "Mohawk (Reverse)"
icon_state = "hair_reversemohawk"
/datum/sprite_accessory/hair/odango
name = "Odango"
icon_state = "hair_odango"
/datum/sprite_accessory/hair/ombre
name = "Ombre"
icon_state = "hair_ombre"
/datum/sprite_accessory/hair/oneshoulder
name = "One Shoulder"
icon_state = "hair_oneshoulder"
/datum/sprite_accessory/hair/over_eye
name = "Over Eye"
icon_state = "hair_shortovereye"
//Donator item - fractious
/datum/sprite_accessory/hair/over_eye_fr
name = "Over Eye (fract)"
icon_state = "hair_shortovereye_1f"
ckeys_allowed = list("fractious")
/datum/sprite_accessory/hair/parted
name = "Parted"
icon_state = "hair_parted"
/datum/sprite_accessory/hair/partedside
name = "Parted (Side)"
icon_state = "hair_part"
/datum/sprite_accessory/hair/kagami
name = "Pigtails"
icon_state = "hair_kagami"
/datum/sprite_accessory/hair/pigtail
name = "Pigtails 2"
icon_state = "hair_pigtails"
/datum/sprite_accessory/hair/pigtail2
name = "Pigtails 3"
icon_state = "hair_pigtails2"
/datum/sprite_accessory/hair/pixie
name = "Pixie Cut"
icon_state = "hair_pixie"
/datum/sprite_accessory/hair/pompadour
name = "Pompadour"
icon_state = "hair_pompadour"
/datum/sprite_accessory/hair/bigpompadour
name = "Pompadour (Big)"
icon_state = "hair_bigpompadour"
/datum/sprite_accessory/hair/ponytail1
name = "Ponytail"
icon_state = "hair_ponytail"
/datum/sprite_accessory/hair/ponytail2
name = "Ponytail 2"
icon_state = "hair_ponytail2"
/datum/sprite_accessory/hair/ponytail3
name = "Ponytail 3"
icon_state = "hair_ponytail3"
/datum/sprite_accessory/hair/ponytail4
name = "Ponytail 4"
icon_state = "hair_ponytail4"
/datum/sprite_accessory/hair/ponytail5
name = "Ponytail 5"
icon_state = "hair_ponytail5"
/datum/sprite_accessory/hair/highponytail
name = "Ponytail (High)"
icon_state = "hair_highponytail"
/datum/sprite_accessory/hair/longponytail
name = "Ponytail (Long)"
icon_state = "hair_longstraightponytail"
/datum/sprite_accessory/hair/sidetail
name = "Ponytail (Side)"
icon_state = "hair_sidetail"
/datum/sprite_accessory/hair/sidetail2
name = "Ponytail (Side) 2"
icon_state = "hair_sidetail2"
/datum/sprite_accessory/hair/sidetail3
name = "Ponytail (Side) 3"
icon_state = "hair_sidetail3"
/datum/sprite_accessory/hair/sidetail4
name = "Ponytail (Side) 4"
icon_state = "hair_sidetail4"
/datum/sprite_accessory/hair/quiff
name = "Quiff"
icon_state = "hair_quiff"
/datum/sprite_accessory/hair/short
name = "Short Hair"
icon_state = "hair_a"
/datum/sprite_accessory/hair/shorthair2
name = "Short Hair 2"
icon_state = "hair_shorthair2"
/datum/sprite_accessory/hair/shorthair3
name = "Short Hair 3"
icon_state = "hair_shorthair3"
/datum/sprite_accessory/hair/shoulderlength
name = "Shoulder-length Hair"
icon_state = "hair_b"
/datum/sprite_accessory/hair/sidecut
name = "Sidecut"
icon_state = "hair_sidecut"
/datum/sprite_accessory/hair/skinhead
name = "Skinhead"
icon_state = "hair_skinhead"
/datum/sprite_accessory/hair/protagonist
name = "Slightly Long Hair"
icon_state = "hair_protagonist"
/datum/sprite_accessory/hair/spiky
name = "Spiky"
icon_state = "hair_spikey"
/datum/sprite_accessory/hair/spiky2
name = "Spiky 2"
icon_state = "hair_spiky"
/datum/sprite_accessory/hair/spiky3
name = "Spiky 3"
icon_state = "hair_spiky2"
/datum/sprite_accessory/hair/swept
name = "Swept Back Hair"
icon_state = "hair_swept"
/datum/sprite_accessory/hair/swept2
name = "Swept Back Hair 2"
icon_state = "hair_swept2"
/datum/sprite_accessory/hair/tressshoulder
name = "Tress Shoulder"
icon_state = "hair_tressshoulder"
/datum/sprite_accessory/hair/updo
name = "Updo"
icon_state = "hair_updo"
/datum/sprite_accessory/hair/longer
name = "Very Long Hair"
icon_state = "hair_vlong"
/datum/sprite_accessory/hair/longest
name = "Very Long Hair 2"
icon_state = "hair_longest"
/datum/sprite_accessory/hair/longest2
name = "Very Long Over Eye"
icon_state = "hair_longest2"
/datum/sprite_accessory/hair/longestalt
name = "Very Long with Fringe"
icon_state = "hair_vlongfringe"
@@ -0,0 +1,26 @@
/datum/sprite_accessory/horns
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/horns/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/horns/simple
name = "Simple"
icon_state = "simple"
/datum/sprite_accessory/horns/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/horns/curled
name = "Curled"
icon_state = "curled"
/datum/sprite_accessory/horns/ram
name = "Ram"
icon_state = "ram"
/datum/sprite_accessory/horns/angler
name = "Angeler"
icon_state = "angler"
@@ -0,0 +1,8 @@
/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them.
icon = null //These datums exist for selecting legs on preference, and little else
/datum/sprite_accessory/legs/none
name = "Normal Legs"
/datum/sprite_accessory/legs/digitigrade_lizard
name = "Digitigrade Legs"
@@ -0,0 +1,68 @@
/datum/sprite_accessory/moth_wings
icon = 'icons/mob/wings.dmi'
color_src = null
/datum/sprite_accessory/moth_wings/plain
name = "Plain"
icon_state = "plain"
/datum/sprite_accessory/moth_wings/monarch
name = "Monarch"
icon_state = "monarch"
/datum/sprite_accessory/moth_wings/luna
name = "Luna"
icon_state = "luna"
/datum/sprite_accessory/moth_wings/atlas
name = "Atlas"
icon_state = "atlas"
/datum/sprite_accessory/moth_wings/reddish
name = "Reddish"
icon_state = "redish"
/datum/sprite_accessory/moth_wings/royal
name = "Royal"
icon_state = "royal"
/datum/sprite_accessory/moth_wings/gothic
name = "Gothic"
icon_state = "gothic"
/datum/sprite_accessory/moth_wings/lovers
name = "Lovers"
icon_state = "lovers"
/datum/sprite_accessory/moth_wings/whitefly
name = "White Fly"
icon_state = "whitefly"
/datum/sprite_accessory/moth_wings/punished
name = "Burnt Off"
icon_state = "punished"
locked = TRUE
/datum/sprite_accessory/moth_wings/firewatch
name = "Firewatch"
icon_state = "firewatch"
/datum/sprite_accessory/moth_wings/deathhead
name = "Deathshead"
icon_state = "deathhead"
/datum/sprite_accessory/moth_wings/poison
name = "Poison"
icon_state = "poison"
/datum/sprite_accessory/moth_wings/ragged
name = "Ragged"
icon_state = "ragged"
/datum/sprite_accessory/moth_wings/moonfly
name = "Moon Fly"
icon_state = "moonfly"
/datum/sprite_accessory/moth_wings/snow
name = "Snow"
icon_state = "snow"
@@ -0,0 +1,53 @@
/datum/sprite_accessory/spines
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/spines_animated
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/spines/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/spines_animated/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/spines/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/spines_animated/short
name = "Short"
icon_state = "short"
/datum/sprite_accessory/spines/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
/datum/sprite_accessory/spines_animated/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
/datum/sprite_accessory/spines/long
name = "Long"
icon_state = "long"
/datum/sprite_accessory/spines_animated/long
name = "Long"
icon_state = "long"
/datum/sprite_accessory/spines/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
/datum/sprite_accessory/spines_animated/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
/datum/sprite_accessory/spines/aqautic
name = "Aquatic"
icon_state = "aqua"
/datum/sprite_accessory/spines_animated/aqautic
name = "Aquatic"
icon_state = "aqua"
@@ -0,0 +1,18 @@
/datum/sprite_accessory/snouts
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/snouts/sharp
name = "Sharp"
icon_state = "sharp"
/datum/sprite_accessory/snouts/round
name = "Round"
icon_state = "round"
/datum/sprite_accessory/snouts/sharplight
name = "Sharp + Light"
icon_state = "sharplight"
/datum/sprite_accessory/snouts/roundlight
name = "Round + Light"
icon_state = "roundlight"
@@ -0,0 +1,96 @@
///////////////////////
// Socks Definitions //
///////////////////////
/datum/sprite_accessory/socks
icon = 'icons/mob/underwear.dmi'
/datum/sprite_accessory/socks/nude
name = "Nude"
icon_state = null
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/socks/black_knee
name = "Knee-high (Black)"
icon_state = "black_knee"
/datum/sprite_accessory/socks/commie_knee
name = "Knee-High (Commie)"
icon_state = "commie_knee"
/datum/sprite_accessory/socks/usa_knee
name = "Knee-High (Freedom)"
icon_state = "assblastusa_knee"
/datum/sprite_accessory/socks/rainbow_knee
name = "Knee-high (Rainbow)"
icon_state = "rainbow_knee"
/datum/sprite_accessory/socks/striped_knee
name = "Knee-high (Striped)"
icon_state = "striped_knee"
/datum/sprite_accessory/socks/thin_knee
name = "Knee-high (Thin)"
icon_state = "thin_knee"
/datum/sprite_accessory/socks/uk_knee
name = "Knee-High (UK)"
icon_state = "uk_knee"
/datum/sprite_accessory/socks/white_knee
name = "Knee-high (White)"
icon_state = "white_knee"
/datum/sprite_accessory/socks/black_norm
name = "Normal (Black)"
icon_state = "black_norm"
/datum/sprite_accessory/socks/white_norm
name = "Normal (White)"
icon_state = "white_norm"
/datum/sprite_accessory/socks/pantyhose
name = "Pantyhose"
icon_state = "pantyhose"
/datum/sprite_accessory/socks/black_short
name = "Short (Black)"
icon_state = "black_short"
/datum/sprite_accessory/socks/white_short
name = "Short (White)"
icon_state = "white_short"
/datum/sprite_accessory/socks/black_thigh
name = "Thigh-high (Black)"
icon_state = "black_thigh"
/datum/sprite_accessory/socks/commie_thigh
name = "Thigh-high (Commie)"
icon_state = "commie_thigh"
/datum/sprite_accessory/socks/usa_thigh
name = "Thigh-high (Freedom)"
icon_state = "assblastusa_thigh"
/datum/sprite_accessory/socks/rainbow_thigh
name = "Thigh-high (Rainbow)"
icon_state = "rainbow_thigh"
/datum/sprite_accessory/socks/striped_thigh
name = "Thigh-high (Striped)"
icon_state = "striped_thigh"
/datum/sprite_accessory/socks/thin_thigh
name = "Thigh-high (Thin)"
icon_state = "thin_thigh"
/datum/sprite_accessory/socks/uk_thigh
name = "Thigh-high (UK)"
icon_state = "uk_thigh"
/datum/sprite_accessory/socks/white_thigh
name = "Thigh-high (White)"
icon_state = "white_thigh"
@@ -0,0 +1,55 @@
/datum/sprite_accessory/tails
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/tails_animated
icon = 'icons/mob/mutant_bodyparts.dmi'
/datum/sprite_accessory/tails/lizard/smooth
name = "Smooth"
icon_state = "smooth"
/datum/sprite_accessory/tails_animated/lizard/smooth
name = "Smooth"
icon_state = "smooth"
/datum/sprite_accessory/tails/lizard/dtiger
name = "Dark Tiger"
icon_state = "dtiger"
/datum/sprite_accessory/tails_animated/lizard/dtiger
name = "Dark Tiger"
icon_state = "dtiger"
/datum/sprite_accessory/tails/lizard/ltiger
name = "Light Tiger"
icon_state = "ltiger"
/datum/sprite_accessory/tails_animated/lizard/ltiger
name = "Light Tiger"
icon_state = "ltiger"
/datum/sprite_accessory/tails/lizard/spikes
name = "Spikes"
icon_state = "spikes"
/datum/sprite_accessory/tails_animated/lizard/spikes
name = "Spikes"
icon_state = "spikes"
/datum/sprite_accessory/tails/human/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/tails_animated/human/none
name = "None"
icon_state = "none"
/*
/datum/sprite_accessory/tails/human/cat
name = "Cat"
icon_state = "cat"
color_src = HAIR
/datum/sprite_accessory/tails_animated/human/cat
name = "Cat"
icon_state = "cat"
color_src = HAIR*/
@@ -0,0 +1,308 @@
////////////////////////////
// Undershirt Definitions //
////////////////////////////
/datum/sprite_accessory/undershirt
icon = 'icons/mob/underwear.dmi'
gender = NEUTER
/datum/sprite_accessory/undershirt/nude
name = "Nude"
icon_state = null
// please make sure they're sorted alphabetically and categorized
/datum/sprite_accessory/undershirt/bluejersey
name = "Shirt, Jersey - Blue"
icon_state = "shirt_bluejersey"
/datum/sprite_accessory/undershirt/redjersey
name = "Shirt, Jersey - Red"
icon_state = "shirt_redjersey"
/datum/sprite_accessory/undershirt/bluepolo
name = "Shirt, Polo - Blue"
icon_state = "bluepolo"
/datum/sprite_accessory/undershirt/grayyellowpolo
name = "Shirt, Polo - Gray, Yellow"
icon_state = "grayyellowpolo"
/datum/sprite_accessory/undershirt/redpolo
name = "Shirt, Polo - Red"
icon_state = "redpolo"
/datum/sprite_accessory/undershirt/whitepolo
name = "Shirt, Polo - White"
icon_state = "whitepolo"
/datum/sprite_accessory/undershirt/alienshirt
name = "Shirt - Alien"
icon_state = "shirt_alien"
/datum/sprite_accessory/undershirt/mondmondjaja
name = "Shirt - Band"
icon_state = "band"
/datum/sprite_accessory/undershirt/shirt_black
name = "Shirt - Black"
icon_state = "shirt_black"
/datum/sprite_accessory/undershirt/blueshirt
name = "Shirt - Blue"
icon_state = "shirt_blue"
/datum/sprite_accessory/undershirt/clownshirt
name = "Shirt - Clown"
icon_state = "shirt_clown"
/datum/sprite_accessory/undershirt/commie
name = "Shirt - Commie"
icon_state = "shirt_commie"
/datum/sprite_accessory/undershirt/greenshirt
name = "Shirt - Green"
icon_state = "shirt_green"
/datum/sprite_accessory/undershirt/shirt_grey
name = "Shirt - Grey"
icon_state = "shirt_grey"
/datum/sprite_accessory/undershirt/ian
name = "Shirt - Ian"
icon_state = "ian"
/datum/sprite_accessory/undershirt/ilovent
name = "Shirt - I Love NT"
icon_state = "ilovent"
/datum/sprite_accessory/undershirt/lover
name = "Shirt - Lover"
icon_state = "lover"
/datum/sprite_accessory/undershirt/matroska
name = "Shirt - Matroska"
icon_state = "matroska"
/datum/sprite_accessory/undershirt/meat
name = "Shirt - Meat"
icon_state = "shirt_meat"
/datum/sprite_accessory/undershirt/nano
name = "Shirt - Nanotrasen"
icon_state = "shirt_nano"
/datum/sprite_accessory/undershirt/peace
name = "Shirt - Peace"
icon_state = "peace"
/datum/sprite_accessory/undershirt/pacman
name = "Shirt - Pogoman"
icon_state = "pogoman"
/datum/sprite_accessory/undershirt/question
name = "Shirt - Question"
icon_state = "shirt_question"
/datum/sprite_accessory/undershirt/redshirt
name = "Shirt - Red"
icon_state = "shirt_red"
/datum/sprite_accessory/undershirt/skull
name = "Shirt - Skull"
icon_state = "shirt_skull"
/datum/sprite_accessory/undershirt/ss13
name = "Shirt - SS13"
icon_state = "shirt_ss13"
/datum/sprite_accessory/undershirt/stripe
name = "Shirt - Striped"
icon_state = "shirt_stripes"
/datum/sprite_accessory/undershirt/tiedye
name = "Shirt - Tie-dye"
icon_state = "shirt_tiedye"
/datum/sprite_accessory/undershirt/uk
name = "Shirt - UK"
icon_state = "uk"
/datum/sprite_accessory/undershirt/usa
name = "Shirt - USA"
icon_state = "shirt_assblastusa"
/datum/sprite_accessory/undershirt/shirt_white
name = "Shirt - White"
icon_state = "shirt_white"
/datum/sprite_accessory/undershirt/blackshortsleeve
name = "Shirt, Short Sleeved - Black"
icon_state = "blackshortsleeve"
/datum/sprite_accessory/undershirt/blueshortsleeve
name = "Shirt, Short Sleeved - Blue"
icon_state = "blueshortsleeve"
/datum/sprite_accessory/undershirt/greenshortsleeve
name = "Shirt, Short Sleeved - Green"
icon_state = "greenshortsleeve"
/datum/sprite_accessory/undershirt/purpleshortsleeve
name = "Shirt, Short Sleeved - Purple"
icon_state = "purpleshortsleeve"
/datum/sprite_accessory/undershirt/whiteshortsleeve
name = "Shirt, Short Sleeved - White"
icon_state = "whiteshortsleeve"
/datum/sprite_accessory/undershirt/blueshirtsport
name = "Shirt, Sports - Blue"
icon_state = "blueshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/greenshirtsport
name = "Shirt, Sports - Green"
icon_state = "greenshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/redshirtsport
name = "Shirt, Sports - Red"
icon_state = "redshirtsport"
gender = NEUTER
/datum/sprite_accessory/undershirt/redtop
name = "Shirt, Short - Red"
icon_state = "redtop"
/datum/sprite_accessory/undershirt/whitetop
name = "Shirt, Short - White"
icon_state = "whitetop"
/datum/sprite_accessory/undershirt/tshirt_blue
name = "T-Shirt - Blue"
icon_state = "blueshirt"
/datum/sprite_accessory/undershirt/tshirt_green
name = "T-Shirt - Green"
icon_state = "greenshirt"
/datum/sprite_accessory/undershirt/tshirt_red
name = "T-Shirt - Red"
icon_state = "redshirt"
/datum/sprite_accessory/undershirt/yellowshirt
name = "T-Shirt - Yellow"
icon_state = "yellowshirt"
/datum/sprite_accessory/undershirt/tank_black
name = "Tank Top - Black"
icon_state = "tank_black"
/datum/sprite_accessory/undershirt/tankfire
name = "Tank Top - Fire"
icon_state = "tank_fire"
/datum/sprite_accessory/undershirt/tank_grey
name = "Tank Top - Grey"
icon_state = "tank_grey"
/datum/sprite_accessory/undershirt/female_midriff
name = "Tank Top - Midriff"
icon_state = "tank_midriff"
/datum/sprite_accessory/undershirt/tank_red
name = "Tank Top - Red"
icon_state = "tank_red"
/datum/sprite_accessory/undershirt/tankstripe
name = "Tank Top - Striped"
icon_state = "tank_stripes"
/datum/sprite_accessory/undershirt/tank_white
name = "Tank Top - White"
icon_state = "tank_white"
/datum/sprite_accessory/undershirt/female_red
name = "Bra - Red"
icon_state = "bra_red"
/datum/sprite_accessory/undershirt/female_pink
name = "Bra - Pink"
icon_state = "bra_pink"
/datum/sprite_accessory/undershirt/female_kinky
name = "Bra - Kinky Black"
icon_state = "bra_kinky"
/datum/sprite_accessory/undershirt/female_green
name = "Bra - Green"
icon_state = "bra_green"
/datum/sprite_accessory/undershirt/female_commie
name = "Bra - Freedom"
icon_state = "bra_assblastusa"
/datum/sprite_accessory/undershirt/female_commie
name = "Bra - Commie"
icon_state = "bra_commie"
/datum/sprite_accessory/undershirt/female_babyblue
name = "Bra, Baby Blue"
icon_state = "bra_babyblue"
/datum/sprite_accessory/undershirt/female_black
name = "Bra - Black"
icon_state = "bra_black"
/datum/sprite_accessory/undershirt/female_uk
name = "Bra - UK"
icon_state = "bra_uk"
/datum/sprite_accessory/undershirt/female_white
name = "Bra - White"
icon_state = "bra_white"
/datum/sprite_accessory/undershirt/female_white_neko
name = "Bra, Neko - white"
icon_state = "bra_neko_white"
/datum/sprite_accessory/undershirt/female_black_neko
name = "Bra, Neko - Black"
icon_state = "bra_neko_black"
/datum/sprite_accessory/undershirt/female_blackalt
name = "Bra, Sports - Black"
icon_state = "bra_sports_black"
/datum/sprite_accessory/undershirt/sports_bra
name = "Bra, Sports 1 - White"
icon_state = "sports_bra"
/datum/sprite_accessory/undershirt/female_whitealt
name = "Bra, Sports 2 - White"
icon_state = "bra_sports_white"
/datum/sprite_accessory/undershirt/sports_bra2
name = "Bra, Sports 3 - White"
icon_state = "sports_bra_alt"
/datum/sprite_accessory/undershirt/female_yellow
name = "Bra - Yellow"
icon_state = "bra_yellow"
/datum/sprite_accessory/undershirt/female_thong
name = "Bra, Strapless - Pink"
icon_state = "bra_strapless_pink"
/datum/sprite_accessory/undershirt/female_blue
name = "Bra, Strapless - Blue"
icon_state = "bra_blue"
/datum/sprite_accessory/undershirt/swimsuit_green
name = "Swimsuit, Top - Green"
icon_state = "bra_swimming_green"
/datum/sprite_accessory/undershirt/swimsuit_purple
name = "Swimsuit, Top - Purple"
icon_state = "bra_swimming_purple"
@@ -0,0 +1,171 @@
///////////////////////////
// Underwear Definitions //
///////////////////////////
/datum/sprite_accessory/underwear
icon = 'icons/mob/underwear.dmi'
gender = NEUTER
/datum/sprite_accessory/underwear/nude
name = "Nude"
icon_state = null
/datum/sprite_accessory/underwear/mankini
name = "Mankini - Green"
icon_state = "mankini_green"
/datum/sprite_accessory/underwear/male_kinky
name = "Jockstrap - White"
icon_state = "jockstrap_white"
/datum/sprite_accessory/underwear/male_white
name = "Briefs - White"
icon_state = "briefs_white"
/datum/sprite_accessory/underwear/male_black
name = "Briefs - Black"
icon_state = "briefs_black"
/datum/sprite_accessory/underwear/male_grey
name = "Briefs - Grey"
icon_state = "briefs_grey"
/datum/sprite_accessory/underwear/male_red
name = "Briefs - Red"
icon_state = "briefs_red"
/datum/sprite_accessory/underwear/male_green
name = "Briefs - Green"
icon_state = "briefs_green"
/datum/sprite_accessory/underwear/male_blue
name = "Briefs - Blue"
icon_state = "briefs_blue"
/datum/sprite_accessory/underwear/male_blackalt
name = "Boxers - Black"
icon_state = "boxers_black"
/datum/sprite_accessory/underwear/male_greyalt
name = "Boxers - Grey"
icon_state = "boxers_grey"
/datum/sprite_accessory/underwear/male_hearts
name = "Boxers - Heart"
icon_state = "boxers_heart"
/datum/sprite_accessory/underwear/male_stripe
name = "Boxers - Striped"
icon_state = "boxers_striped"
/datum/sprite_accessory/underwear/male_commie
name = "Boxers - Striped Communist"
icon_state = "boxers_commie"
/datum/sprite_accessory/underwear/male_usastripe
name = "Boxers - Striped Freedom"
icon_state = "boxers_assblastusa"
/datum/sprite_accessory/underwear/male_uk
name = "Boxers - Striped UK"
icon_state = "boxers_uk"
/datum/sprite_accessory/underwear/female_whitealt
name = "Boxer Briefs - White"
icon_state = "boxer_briefs_white"
/datum/sprite_accessory/underwear/female_blackalt
name = "Boxer Briefs - Black"
icon_state = "boxer_briefs_black"
/datum/sprite_accessory/underwear/female_pink
name = "Boxer Briefs - Pink"
icon_state = "boxer_briefs_pink"
/datum/sprite_accessory/underwear/female_babyblue
name = "Boxer Briefs - Baby Blue"
icon_state = "boxer_briefs_babyblue"
/datum/sprite_accessory/underwear/female_yellow
name = "Boxer Briefs - Yellow"
icon_state = "boxer_briefs_yellow"
/datum/sprite_accessory/underwear/female_black
name = "Panties - Black"
icon_state = "panties_black"
/datum/sprite_accessory/underwear/female_blue
name = "Panties - Blue"
icon_state = "panties_blue"
/datum/sprite_accessory/underwear/female_commie
name = "Panties - Commie"
icon_state = "panties_commie"
/datum/sprite_accessory/underwear/female_usastripe
name = "Panties - Freedom"
icon_state = "panties_assblastusa"
/datum/sprite_accessory/underwear/female_green
name = "Panties - Green"
icon_state = "panties_green"
/datum/sprite_accessory/underwear/female_kinky
name = "Panties - Kinky Black"
icon_state = "panties_kinky"
/datum/sprite_accessory/underwear/female_red
name = "Panties - Red"
icon_state = "panties_red"
/datum/sprite_accessory/underwear/female_uk
name = "Panties - UK"
icon_state = "panties_uk"
/datum/sprite_accessory/underwear/female_white
name = "Panties - White"
icon_state = "panties_white"
/datum/sprite_accessory/underwear/female_white_neko
name = "Panties, Neko - White"
icon_state = "panties_neko_white"
/datum/sprite_accessory/underwear/female_black_neko
name = "Panties, Neko - Black"
icon_state = "panties_neko_black"
/datum/sprite_accessory/underwear/swimsuit_red
name = "Swimsuit, One Piece - Red"
icon_state = "swimming_red"
/datum/sprite_accessory/underwear/swimsuit
name = "Swimsuit, One Piece - Black"
icon_state = "swimming_black"
/datum/sprite_accessory/underwear/swimsuit_blue
name = "Swimsuit, One Piece - Striped Blue"
icon_state = "swimming_blue"
/datum/sprite_accessory/underwear/swimsuit_green
name = "Swimsuit, Bottom - Green"
icon_state = "panties_swimming_green"
/datum/sprite_accessory/underwear/swimsuit_purple
name = "Swimsuit, Bottom - Purple"
icon_state = "panties_swimming_purple"
/datum/sprite_accessory/underwear/female_thong_black
name = "Thong - Black"
icon_state = "thong_black"
/datum/sprite_accessory/underwear/female_thong
name = "Thong - Pink"
icon_state = "thong_pink"
/datum/sprite_accessory/underwear/female_babydoll
name = "Babydoll - Black"
icon_state = "babydoll"
@@ -0,0 +1,26 @@
/datum/sprite_accessory/wings/none
name = "None"
icon_state = "none"
/datum/sprite_accessory/wings_open
icon = 'icons/mob/wings.dmi'
/datum/sprite_accessory/wings_open/angel
name = "Angel"
icon_state = "angel"
color_src = 0
dimension_x = 46
center = TRUE
dimension_y = 34
/datum/sprite_accessory/wings
icon = 'icons/mob/wings.dmi'
/datum/sprite_accessory/wings/angel
name = "Angel"
icon_state = "angel"
color_src = 0
dimension_x = 46
center = TRUE
dimension_y = 34
locked = TRUE
@@ -39,6 +39,19 @@
restraint_check = TRUE
emote_type = EMOTE_AUDIBLE
/datum/emote/living/carbon/human/mawp
key = "mawp"
key_third_person = "mawps"
message = "mawps annoyingly."
emote_type = EMOTE_AUDIBLE
/datum/emote/living/carbon/human/mawp/run_emote(mob/living/user, params)
. = ..()
if(.)
if(ishuman(user))
if(prob(10))
user.adjustEarDamage(-5, -5)
/datum/emote/living/carbon/human/mumble
key = "mumble"
key_third_person = "mumbles"
+9 -4
View File
@@ -1,9 +1,14 @@
/mob/living/carbon/human/say_mod(input, message_mode)
verb_say = dna.species.say_mod
if(slurring)
return "slurs"
else
. = ..()
switch(slurring)
if(25 to 50)
return "jumbles"
if(50 to 75)
return "slurs"
if(75 to INFINITY)
return "garbles"
else
. = ..()
/mob/living/carbon/human/treat_message(message)
message = dna.species.handle_speech(message,src)
+1 -6
View File
@@ -532,7 +532,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
stuttering = max(stuttering-1, 0)
if(slurring)
slurring = max(slurring-1,0)
slurring = max(slurring-1,0,drunkenness)
if(cultslurring)
cultslurring = max(cultslurring-1, 0)
@@ -550,16 +550,11 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
drunkenness = max(drunkenness - (drunkenness * 0.04), 0)
if(drunkenness >= 6)
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "drunk", /datum/mood_event/drunk)
if(prob(25))
slurring += 2
jitteriness = max(jitteriness - 3, 0)
if(has_trait(TRAIT_DRUNK_HEALING))
adjustBruteLoss(-0.12, FALSE)
adjustFireLoss(-0.06, FALSE)
if(drunkenness >= 11 && slurring < 5)
slurring += 1.2
if(mind && (mind.assigned_role == "Scientist" || mind.assigned_role == "Research Director"))
if(SSresearch.science_tech)
if(drunkenness >= 12.9 && drunkenness <= 13.8)
+1 -1
View File
@@ -334,7 +334,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
message = stutter(message)
if(slurring)
message = slur(message)
message = slur(message,slurring)
if(cultslurring)
message = cultslur(message)
+7 -7
View File
@@ -64,7 +64,7 @@
p++
return sanitize(t)
/proc/slur(n)
/proc/slur(n,var/strength=50)
var/phrase = html_decode(n)
var/leng = lentext(phrase)
var/counter=lentext(phrase)
@@ -72,7 +72,7 @@
var/newletter=""
while(counter>=1)
newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2)
if(rand(1,3)==3)
if(rand(1,100)<=strength)
if(lowertext(newletter)=="o")
newletter="u"
if(lowertext(newletter)=="s")
@@ -83,17 +83,17 @@
newletter="oo"
if(lowertext(newletter)=="c")
newletter="k"
if(rand(1,20)==20)
if(rand(1,100) <= strength*0.5)
if(newletter==" ")
newletter="...huuuhhh..."
if(newletter==".")
newletter=" *BURP*."
switch(rand(1,20))
if(1)
if(rand(1,100) <= strength)
if(rand(1,5) == 1)
newletter+="'"
if(10)
if(rand(1,5) == 1)
newletter+="[newletter]"
if(20)
if(rand(1,5) == 1)
newletter+="[newletter][newletter]"
newphrase+="[newletter]";counter-=1
return newphrase
+4
View File
@@ -200,6 +200,10 @@
charge = 0
update_icon()
/obj/item/stock_parts/cell/lascarbine
name = "laser carbine power supply"
maxcharge = 2500
/obj/item/stock_parts/cell/pulse //200 pulse shots
name = "pulse rifle power cell"
maxcharge = 40000
@@ -88,6 +88,9 @@
icon_state = "riotshotgun"
mag_type = /obj/item/ammo_box/magazine/internal/shot/riot
sawn_desc = "Come with me if you want to live."
unique_reskin = list("Tatical" = "riotshotgun",
"Wood Stock" = "wood_riotshotgun"
)
/obj/item/gun/ballistic/shotgun/riot/attackby(obj/item/A, mob/user, params)
..()
@@ -200,6 +203,10 @@
icon_state = "cshotgun"
mag_type = /obj/item/ammo_box/magazine/internal/shot/com
w_class = WEIGHT_CLASS_HUGE
unique_reskin = list("Tatical" = "cshotgun",
"Slick" = "cshotgun_slick"
)
/obj/item/gun/ballistic/shotgun/automatic/combat/compact
name = "compact combat shotgun"
@@ -207,6 +214,10 @@
icon_state = "cshotgunc"
mag_type = /obj/item/ammo_box/magazine/internal/shot/com/compact
w_class = WEIGHT_CLASS_NORMAL
unique_reskin = list("Tatical" = "cshotgunc",
"Slick" = "cshotgunc_slick"
)
//Dual Feed Shotgun
@@ -39,6 +39,21 @@
selfcharge = EGUN_SELFCHARGE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
/obj/item/gun/energy/laser/carbine
name = "laser carbine"
desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal laser gun."
icon = 'icons/obj/guns/energy.dmi'
icon_state = "lasernew"
item_state = "laser"
force = 10
throwforce = 10
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
cell_type = /obj/item/stock_parts/cell/lascarbine
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/gun/energy/laser/carbine/nopin
pin = null
/obj/item/gun/energy/laser/captain/scattershot
name = "scatter shot laser rifle"
icon_state = "lasercannon"
@@ -1277,8 +1277,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(!M.has_trait(TRAIT_ALCOHOL_TOLERANCE))
M.confused = max(M.confused+2,0)
M.Dizzy(10)
if (!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
M.slurring += 3
switch(current_cycle)
if(51 to 200)
@@ -1306,8 +1305,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
M.dizziness +=1.5
switch(current_cycle)
if(15 to 45)
if(!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
M.slurring += 3
if(45 to 55)
if(prob(50))
@@ -1336,8 +1334,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
M.dizziness +=2
switch(current_cycle)
if(15 to 45)
if(!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
M.slurring += 3
if(45 to 55)
if(prob(50))
@@ -1364,8 +1361,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A drink enjoyed by people during the 1960's."
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M)
if (!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
switch(current_cycle)
if(1 to 5)
M.Dizzy(10)
@@ -402,8 +402,7 @@
taste_description = "mushroom"
/datum/reagent/mushroomhallucinogen/on_mob_life(mob/living/carbon/M)
if(!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
switch(current_cycle)
if(1 to 5)
M.Dizzy(5)
@@ -1863,3 +1863,20 @@
description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results."
color = "#FAEAFF"
taste_description = "synthetic catnip"
/datum/reagent/penis_enlargement
name = "Penis Enlargement"
id = "penis_enlargement"
description = "A patented chemical forumula by Doctor Ronald Hyatt that is guaranteed to bring maximum GROWTH and LENGTH to your penis, today!"
color = "#888888"
taste_description = "chinese dragon powder"
metabolization_rate = INFINITY //So it instantly removes all of itself. Don't want to put strain on the system.
/datum/reagent/penis_enlargement/on_mob_life(mob/living/carbon/C)
var/obj/item/organ/genital/penis/P = C.getorganslot(ORGAN_SLOT_PENIS)
if(P)
var/added_length = round(volume/30,0.01) //Every 30u gives an extra inch. Rounded to the nearest 0.01 so float fuckery doesn't occur with the division by 30.
if(added_length >= 0.20) //Only add the length if it's greater than or equal to 0.2. This is to prevent people from smoking the reagents and causing the penis to update constantly.
P.length += added_length
P.update()
..()
@@ -233,3 +233,7 @@
/obj/item/reagent_containers/pill/get_belt_overlay()
return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "pouch")
/obj/item/reagent_containers/pill/penis_enlargement
name = "penis enlargement pill"
list_reagents = list("penis_enlargement" = 30)
+157 -121
View File
@@ -1,6 +1,10 @@
/////////////////////////////////////////
/////////////////Weapons/////////////////
/////////////////////////////////////////
///////////////////////////////
///////Weapons & Ammo//////////
///////////////////////////////
//////////////
//Ammo Boxes//
//////////////
/datum/design/c38/sec
id = "sec_38"
@@ -13,6 +17,40 @@
id = "sec_38lethal"
build_path = /obj/item/ammo_box/c38/lethal
//////////////
//WT550 Mags//
//////////////
/datum/design/mag_oldsmg
name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)"
desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG."
id = "mag_oldsmg"
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000)
build_path = /obj/item/ammo_box/magazine/wt550m9
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_oldsmg/ap_mag
name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
id = "mag_oldsmg_ap"
materials = list(MAT_METAL = 6000, MAT_SILVER = 600)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_oldsmg/ic_mag
name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
id = "mag_oldsmg_ic"
materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
//////////////
//Ammo Shells/
//////////////
/datum/design/rubbershot/sec
id = "sec_rshot"
build_type = PROTOLATHE
@@ -43,6 +81,40 @@
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/stunshell
name = "Stun Shell"
desc = "A stunning shell for a shotgun."
id = "stunshell"
build_type = PROTOLATHE
materials = list(MAT_METAL = 200)
build_path = /obj/item/ammo_casing/shotgun/stunslug
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/techshell
name = "Unloaded Technological Shotshell"
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
id = "techshotshell"
build_type = PROTOLATHE
materials = list(MAT_METAL = 1000, MAT_GLASS = 200)
build_path = /obj/item/ammo_casing/shotgun/techshell
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE
/datum/design/cryostatis_shotgun_dart
name = "Cryostasis Shotgun Dart"
desc = "A shotgun dart designed with similar internals to that of a cryostatis beaker, allowing reagents to not react when inside."
id = "shotgundartcryostatis"
build_type = PROTOLATHE
materials = list(MAT_METAL = 3500)
build_path = /obj/item/ammo_casing/shotgun/dart/noreact
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
//////////////
//Firing Pins/
//////////////
/datum/design/pin_testing
name = "Test-Range Firing Pin"
desc = "This safety firing pin allows firearms to be operated within proximity to a firing range."
@@ -63,6 +135,20 @@
category = list("Firing Pins")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
//////////////
//Guns////////
//////////////
/datum/design/lasercarbine
name = "Laser Carbine"
desc = "Beefed up version of a standard laser gun."
id = "lasercarbine"
build_type = PROTOLATHE
materials = list(MAT_METAL = 15000, MAT_GLASS = 10000, MAT_GOLD = 2500, MAT_SILVER = 2500)
build_path = /obj/item/gun/energy/laser/carbine/nopin
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/stunrevolver
name = "Tesla Revolver"
desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers."
@@ -83,16 +169,6 @@
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/tele_shield
name = "Telescopic Riot Shield"
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
id = "tele_shield"
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200)
build_path = /obj/item/shield/riot/tele
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/beamrifle
name = "Beam Marksman Rifle"
desc = "A powerful long ranged anti-material rifle that fires charged particle beams to obliterate targets."
@@ -122,11 +198,11 @@
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000)
build_path = /obj/item/gun/syringe/rapidsyringe
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL //uwu
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
/datum/design/temp_gun
name = "Temperature Gun"
desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
desc = "A gun that shoots temperature beam like projectiles to change temperature."
id = "temp_gun"
build_type = PROTOLATHE
materials = list(MAT_METAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000)
@@ -145,46 +221,6 @@
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
/datum/design/large_grenade
name = "Large Grenade"
desc = "A grenade that affects a larger area and use larger containers."
id = "large_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000)
build_path = /obj/item/grenade/chem_grenade/large
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE //Citadel edit added to science
/datum/design/pyro_grenade
name = "Pyro Grenade"
desc = "An advanced grenade that is able to self ignite its mixture."
id = "pyro_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_PLASMA = 500)
build_path = /obj/item/grenade/chem_grenade/pyro
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
/datum/design/cryo_grenade
name = "Cryo Grenade"
desc = "An advanced grenade that rapidly cools its contents upon detonation."
id = "cryo_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
build_path = /obj/item/grenade/chem_grenade/cryo
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
/datum/design/adv_grenade
name = "Advanced Release Grenade"
desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter."
id = "adv_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
build_path = /obj/item/grenade/chem_grenade/adv_release
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
/datum/design/xray
name = "X-ray Laser Gun"
desc = "Not quite as menacing as it sounds"
@@ -215,64 +251,6 @@
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
//WT550 Mags
/datum/design/mag_oldsmg
name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)"
desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG."
id = "mag_oldsmg"
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000)
build_path = /obj/item/ammo_box/magazine/wt550m9
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_oldsmg/ap_mag
name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
id = "mag_oldsmg_ap"
materials = list(MAT_METAL = 6000, MAT_SILVER = 600)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_oldsmg/ic_mag
name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
id = "mag_oldsmg_ic"
materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/stunshell
name = "Stun Shell"
desc = "A stunning shell for a shotgun."
id = "stunshell"
build_type = PROTOLATHE
materials = list(MAT_METAL = 200)
build_path = /obj/item/ammo_casing/shotgun/stunslug
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/techshell
name = "Unloaded Technological Shotshell"
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
id = "techshotshell"
build_type = PROTOLATHE
materials = list(MAT_METAL = 1000, MAT_GLASS = 200)
build_path = /obj/item/ammo_casing/shotgun/techshell
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE
/datum/design/suppressor
name = "Universal Suppressor"
desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels."
id = "suppressor"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
build_path = /obj/item/suppressor
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/gravitygun
name = "One-point Bluespace-gravitational Manipulator"
desc = "A multi-mode device that blasts one-point bluespace-gravitational bolts that locally distort gravity."
@@ -293,12 +271,70 @@
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/cryostatis_shotgun_dart
name = "Cryostasis Shotgun Dart"
desc = "A shotgun dart designed with similar internals to that of a cryostatis beaker, allowing reagents to not react when inside."
id = "shotgundartcryostatis"
///////////
//Grenades/
///////////
/datum/design/large_grenade
name = "Large Grenade"
desc = "A grenade that affects a larger area and use larger containers."
id = "large_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 3500)
build_path = /obj/item/ammo_casing/shotgun/dart/noreact
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
materials = list(MAT_METAL = 3000)
build_path = /obj/item/grenade/chem_grenade/large
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
/datum/design/pyro_grenade
name = "Pyro Grenade"
desc = "An advanced grenade that is able to self ignite its mixture."
id = "pyro_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_PLASMA = 500)
build_path = /obj/item/grenade/chem_grenade/pyro
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
/datum/design/cryo_grenade
name = "Cryo Grenade"
desc = "An advanced grenade that rapidly cools its contents upon detonation."
id = "cryo_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
build_path = /obj/item/grenade/chem_grenade/cryo
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
/datum/design/adv_grenade
name = "Advanced Release Grenade"
desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter."
id = "adv_Grenade"
build_type = PROTOLATHE
materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
build_path = /obj/item/grenade/chem_grenade/adv_release
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
//////////
//MISC////
//////////
/datum/design/tele_shield
name = "Telescopic Riot Shield"
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
id = "tele_shield"
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200)
build_path = /obj/item/shield/riot/tele
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/suppressor
name = "Universal Suppressor"
desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels."
id = "suppressor"
build_type = PROTOLATHE
materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
build_path = /obj/item/suppressor
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
+1 -1
View File
@@ -564,7 +564,7 @@
display_name = "Weapon Development Technology"
description = "Our researchers have found new to weaponize just about everything now."
prereq_ids = list("engineering")
design_ids = list("pin_testing", "tele_shield")
design_ids = list("pin_testing", "tele_shield", "lasercarbine")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
export_price = 5000
@@ -0,0 +1,4 @@
author: "BurgerBB"
delete-after: True
changes:
- tweak: "Increased the spawn area of the City of Cogs (Reebe). This does not affect the area in which builders can build."
@@ -0,0 +1,4 @@
author: "BurgerBB"
delete-after: True
changes:
- rscadd: "Adds a new 0 cost trait that makes you immune* to Crocin and Hexacrocin"
@@ -0,0 +1,5 @@
author: "BurgerBB"
delete-after: True
changes:
- tweak: "Tweaks how slurring works so it's more of a gradual change into slurring instead of immediate."
- balance: "Slurring is now directly proportional to your drunkenness, with other sources of slur being added on top of it."
@@ -0,0 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- rscadd: "new lockable colalr"
@@ -0,0 +1,7 @@
author: "BurgerBB"
delete-after: True
changes:
- tweak: "Bras are now separate from underwear, meaning you can mix and match bras if you're into that."
- tweak: "Men can wear female accessory clothing, and females can wear men accessory clothing. It's not a fetish, mom, it's PROGRESSIVE."
- code_imp: "Reorganized accessories into their own files to prevent a massive 1000 line file."
- server: "i'm 10% sure that merging this PR will cause preference corruption sooooooooooo I just need to hear from @deathride58 or perhaps someone else on how much damage this could possibly do."
@@ -0,0 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- tweak: "armor"
@@ -0,0 +1,5 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- bugfix: "missing hopes and dreams"
- code_imp: "orgized the weapon file to be more cat brain friendly"
@@ -0,0 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- imageadd: "This means sprite right?"
@@ -0,0 +1,5 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- rscadd: "mag gun uses cells"
- balance: "kev things their to op"
@@ -0,0 +1,5 @@
author: "BurgerBB"
delete-after: True
changes:
- tweak: "Tweaked penis."
- balance: "Rebalanced penis."
@@ -0,0 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- bugfix: "laser carbine"
@@ -0,0 +1,4 @@
author: "deathride58"
delete-after: True
changes:
- tweak: "Biogenerators now have a sane limit for production"
@@ -0,0 +1,4 @@
author: "BurgerBB"
delete-after: True
changes:
- rscadd: "Adds penis enlargement pills."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 35 KiB

@@ -54,8 +54,11 @@
/obj/item/clothing/neck/petcollar = 5,
/obj/item/clothing/under/mankini = 1,
/obj/item/dildo/flared/huge = 1
)
premium = list(/obj/item/electropack/shockcollar = 3)
)
premium = list(
/obj/item/electropack/shockcollar = 3,
/obj/item/clothing/neck/petcollar/locked = 1
)
refill_canister = /obj/item/vending_refill/kink
/*
/obj/machinery/vending/nazivend
@@ -4,7 +4,7 @@
icon_state = "penis"
icon = 'modular_citadel/icons/obj/genitals/penis.dmi'
zone = "groin"
slot = "penis"
slot = ORGAN_SLOT_PENIS
w_class = 3
can_masturbate_with = TRUE
masturbation_verb = "stroke"
@@ -40,7 +40,8 @@
var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]"
icon_state = sanitize_text(string)
var/lowershape = lowertext(shape)
desc = "You see a [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[length > 1 ? "es" : ""] long."
desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(girth, 0.25)] inch[round(girth, 0.25) != 1 ? "es" : ""] in girth."
if(owner)
if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"])
if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow...
@@ -123,7 +123,7 @@
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
///research memes///
/*
/obj/item/gun/ballistic/automatic/pistol/mag/nopin
pin = null
spawnwithmagazine = FALSE
@@ -155,7 +155,7 @@
materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250)
build_path = /obj/item/ammo_box/magazine/mmag/small
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
*/
//////toy memes/////
/obj/item/projectile/bullet/reusable/foam_dart/mag
@@ -271,7 +271,8 @@
recoil = 0.15
casing_ejector = 0
///research///
/*
//research///
/obj/item/gun/ballistic/automatic/magrifle/nopin
pin = null
@@ -304,7 +305,7 @@
materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500)
build_path = /obj/item/ammo_box/magazine/mmag
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
*/
///foamagrifle///
/obj/item/ammo_box/magazine/toy/foamag
@@ -326,10 +327,9 @@
spread = 60
w_class = WEIGHT_CLASS_BULKY
weapon_weight = WEAPON_HEAVY
/*
// TECHWEBS IMPLEMENTATION
*/
//
/datum/techweb_node/magnetic_weapons
id = "magnetic_weapons"
@@ -339,7 +339,7 @@
design_ids = list("magrifle", "magpisol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
*/
//////Hyper-Burst Rifle//////
@@ -0,0 +1,279 @@
///ammo///
/obj/item/ammo_casing/caseless/mag_e
var/energy_cost = 0
/obj/item/ammo_casing/caseless/mag_e/amagm_e
desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon."
caliber = "mag_e"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/magrifle
energy_cost = 300
/obj/item/ammo_casing/caseless/mag_e/anlmagm_e
desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload."
caliber = "mag_e"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmagrifle
energy_cost = 300
/obj/item/ammo_casing/caseless/mag_e/amags
desc = "A ferromagnetic slug intended to be launched out of a compatible weapon."
caliber = "mag_e"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/mags
energy_cost = 200
/obj/item/ammo_casing/caseless/mag_e/anlmags
desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload."
caliber = "mag_e"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mag-casing-live"
projectile_type = /obj/item/projectile/bullet/nlmags
energy_cost = 200
///magazines///
/obj/item/ammo_box/magazine/mmag_e/
name = "magrifle magazine (non-lethal disabler)"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mediummagmag"
ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e
caliber = "mag_e"
max_ammo = 24
multiple_sprites = 2
/obj/item/ammo_box/magazine/mmag_e/lethal
name = "magrifle magazine (lethal)"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "mediummagmag"
ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e
max_ammo = 24
/obj/item/ammo_box/magazine/mmag_e/small
name = "magpistol magazine (non-lethal disabler)"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "nlmagmag"
ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags
caliber = "mag_e"
max_ammo = 15
multiple_sprites = 2
/obj/item/ammo_box/magazine/mmag_e/small/lethal
name = "magpistol magazine (lethal)"
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "smallmagmag"
ammo_type = /obj/item/ammo_casing/caseless/mag_e/amags
///cells///
/obj/item/stock_parts/cell/magrifle_e
name = "magrifle power supply"
maxcharge = 14400
/obj/item/stock_parts/cell/magpistol_e
name = "magpistol power supply"
maxcharge = 6000
///sci designs///
/datum/design/magrifle_e
name = "Magrifle"
desc = "An upscaled Magpistol in rifle form."
id = "magrifle_e"
build_type = PROTOLATHE
materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000)
build_path = /obj/item/gun/ballistic/automatic/magrifle_e/nopin
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_magrifle_e
name = "Magrifle Magazine (Lethal)"
desc = "A 24-round magazine for the Magrifle."
id = "mag_magrifle_e"
build_type = PROTOLATHE
materials = list(MAT_METAL = 8000, MAT_SILVER = 1000)
build_path = /obj/item/ammo_box/magazine/mmag_e/lethal
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_magrifle_e/nl
name = "Magrifle Magazine (Non-Lethal)"
desc = "A 24- round non-lethal magazine for the Magrifle."
id = "mag_magrifle_e_nl"
materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500)
build_path = /obj/item/ammo_box/magazine/mmag_e
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/magpistol_e
name = "Magpistol"
desc = "A weapon which fires ferromagnetic slugs."
id = "magpistol_e"
build_type = PROTOLATHE
materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000)
build_path = /obj/item/gun/ballistic/automatic/pistol/mag_e/nopin
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_magpistol_e
name = "Magpistol Magazine"
desc = "A 14 round magazine for the Magpistol."
id = "mag_magpistol_e"
build_type = PROTOLATHE
materials = list(MAT_METAL = 4000, MAT_SILVER = 500)
build_path = /obj/item/ammo_box/magazine/mmag_e/small/lethal
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/mag_magpistol_e/nl
name = "Magpistol Magazine (Non-Lethal)"
desc = "A 14 round non-lethal magazine for the Magpistol."
id = "mag_magpistol_e_nl"
materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250)
build_path = /obj/item/ammo_box/magazine/mmag_e/small
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/*
// TECHWEBS IMPLEMENTATION
*/
/datum/techweb_node/magnetic_weapons
id = "magnetic_weapons"
display_name = "Magnetic Weapons"
description = "Weapons using magnetic technology"
prereq_ids = list("weaponry", "adv_weaponry", "emp_adv")
design_ids = list("magrifle_e", "magpistol_e", "mag_magrifle_e", "mag_magrifle_e_nl", "mag_magpistol_e", "mag_magpistol_e_nl")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
///magrifle///
/obj/item/gun/ballistic/automatic/magrifle_e
name = "\improper Magnetic Rifle"
desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs."
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magrifle"
item_state = "arg"
slot_flags = 0
mag_type = /obj/item/ammo_box/magazine/mmag_e
fire_sound = 'sound/weapons/magrifle.ogg'
can_suppress = 0
burst_size = 3
fire_delay = 2
spread = 5
recoil = 0.15
casing_ejector = 0
var/obj/item/stock_parts/cell/cell
var/cell_type = /obj/item/stock_parts/cell/magrifle_e
var/dead_cell = FALSE
/obj/item/gun/ballistic/automatic/magrifle_e/can_shoot()
if(QDELETED(cell))
return 0
var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
if(!shot)
return 0
if(cell.charge < shot.energy_cost*burst_size)
return 0
. = ..()
/obj/item/gun/ballistic/automatic/magrifle_e/shoot_live_shot()
var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
cell.use(shot.energy_cost)
. = ..()
/obj/item/gun/ballistic/automatic/magrifle_e/emp_act(severity)
. = ..()
if(!(. & EMP_PROTECT_CONTENTS))
cell.use(round(cell.charge / severity))
/obj/item/gun/ballistic/automatic/magrifle_e/get_cell()
return cell
/obj/item/gun/ballistic/automatic/magrifle_e/Initialize()
. = ..()
if(cell_type)
cell = new cell_type(src)
else
cell = new(src)
if(!dead_cell)
cell.give(cell.maxcharge)
/obj/item/gun/ballistic/automatic/magrifle_e/nopin
pin = null
spawnwithmagazine = FALSE
///magpistol///
/obj/item/gun/ballistic/automatic/pistol/mag_e
name = "magpistol"
desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities."
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "magpistol"
force = 10
fire_sound = 'sound/weapons/magpistol.ogg'
mag_type = /obj/item/ammo_box/magazine/mmag_e/small
can_suppress = 0
casing_ejector = 0
fire_delay = 2
recoil = 0.2
var/obj/item/stock_parts/cell/cell
var/cell_type = /obj/item/stock_parts/cell/magpistol_e
var/dead_cell = FALSE
/obj/item/gun/ballistic/automatic/pistol/mag_e/can_shoot()
if(QDELETED(cell))
return 0
var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
if(!shot)
return 0
if(cell.charge < shot.energy_cost)
return 0
. = ..()
/obj/item/gun/ballistic/automatic/pistol/mag_e/shoot_live_shot()
var/obj/item/ammo_casing/caseless/mag_e/shot = chambered
cell.use(shot.energy_cost)
. = ..()
/obj/item/gun/ballistic/automatic/pistol/mag_e/emp_act(severity)
. = ..()
if(!(. & EMP_PROTECT_CONTENTS))
cell.use(round(cell.charge / severity))
/obj/item/gun/ballistic/automatic/pistol/mag_e/get_cell()
return cell
/obj/item/gun/ballistic/automatic/pistol/mag_e/Initialize()
. = ..()
if(cell_type)
cell = new cell_type(src)
else
cell = new(src)
if(!dead_cell)
cell.give(cell.maxcharge)
/obj/item/gun/ballistic/automatic/pistol/mag_e/update_icon()
..()
if(magazine)
cut_overlays()
add_overlay("magpistol-magazine")
else
cut_overlays()
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
/obj/item/gun/ballistic/automatic/pistol/mag_e/nopin
pin = null
spawnwithmagazine = FALSE
@@ -17,30 +17,3 @@
/obj/item/gun/energy/laser/redtag
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
/obj/item/gun/energy/laser/carbine
name = "VGS blaster carbine"
desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal blaster carbine."
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
icon_state = "lasernew"
item_state = "laser"
force = 10
throwforce = 10
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
cell_type = /obj/item/stock_parts/cell/lascarbine
/obj/item/gun/energy/laser/carbine/nopin
pin = null
/obj/item/stock_parts/cell/lascarbine
name = "laser carbine power supply"
maxcharge = 2500
/datum/design/lasercarbine
name = "VGS Blaster Carbine"
desc = "Beefed up version of a normal blaster carbine."
id = "lasercarbine"
build_type = PROTOLATHE
materials = list(MAT_GOLD = 2500, MAT_METAL = 5000, MAT_GLASS = 5000)
build_path = /obj/item/gun/energy/laser/carbine/nopin
category = list("Weapons")
@@ -97,7 +97,7 @@
color = "#FFADFF"//PINK, rgb(255, 173, 255)
/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M)
if(M && M.canbearoused)
if(M && M.canbearoused && !M.has_trait(TRAIT_CROCRIN_IMMUNE))
if(prob(33))
M.adjustArousalLoss(2)
if(prob(5))
@@ -119,7 +119,7 @@
overdose_threshold = 20
/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M)
if(M && M.canbearoused)
if(M && M.canbearoused && !M.has_trait(TRAIT_CROCRIN_IMMUNE))
if(prob(33))
M.adjustArousalLoss(6)//not quite six times as powerful, but still considerably more powerful.
if(prob(5))
@@ -151,7 +151,7 @@
..()
/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M)
if(M && M.canbearoused && prob(33))
if(M && M.canbearoused && !M.has_trait(TRAIT_CROCRIN_IMMUNE) && prob(33))
if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
var/mob/living/carbon/human/H = M
if(prob(50)) //Less spam
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

+20 -1
View File
@@ -1628,6 +1628,7 @@
#include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm"
#include "code\modules\food_and_drinks\food\snacks_soup.dm"
#include "code\modules\food_and_drinks\food\snacks_spaghetti.dm"
#include "code\modules\food_and_drinks\food\snacks_sushi.dm"
#include "code\modules\food_and_drinks\food\snacks_vend.dm"
#include "code\modules\food_and_drinks\food\snacks\dough.dm"
#include "code\modules\food_and_drinks\food\snacks\meat.dm"
@@ -1655,6 +1656,7 @@
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm"
#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sushi.dm"
#include "code\modules\games\cas.dm"
#include "code\modules\goonchat\browserOutput.dm"
#include "code\modules\goonchat\jsErrorHandler.dm"
@@ -1874,7 +1876,23 @@
#include "code\modules\mob\dead\new_player\new_player.dm"
#include "code\modules\mob\dead\new_player\poll.dm"
#include "code\modules\mob\dead\new_player\preferences_setup.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\_sprite_accessories.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\body_markings.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\caps.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\ears.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\frills.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\hair_face.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\hair_head.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\horns.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\legs.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\moth_wings.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\pines.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\underwear.dm"
#include "code\modules\mob\dead\new_player\sprite_accessories\wings.dm"
#include "code\modules\mob\dead\observer\login.dm"
#include "code\modules\mob\dead\observer\logout.dm"
#include "code\modules\mob\dead\observer\notificationprefs.dm"
@@ -2954,6 +2972,7 @@
#include "modular_citadel\code\modules\projectiles\guns\ballistic\flechette.dm"
#include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm"
#include "modular_citadel\code\modules\projectiles\guns\ballistic\magweapon.dm"
#include "modular_citadel\code\modules\projectiles\guns\ballistic\magweapon_energy.dm"
#include "modular_citadel\code\modules\projectiles\guns\ballistic\revolver.dm"
#include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm"
#include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm"