Merge remote-tracking branch 'origin/master' into rustsql
This commit is contained in:
@@ -537,4 +537,9 @@
|
||||
path = /obj/item/clothing/suit/custom/exo
|
||||
ckeywhitelist = list("jesterz7")
|
||||
|
||||
/datum/gear/donator/choker
|
||||
name = "NT Choker"
|
||||
slot = SLOT_NECK
|
||||
path = /obj/item/clothing/neck/petcollar/choker
|
||||
ckeywhitelist = list("trigillass")
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids)
|
||||
var/path //item-to-spawn path
|
||||
var/cost = 1 //normally, each loadout costs a single point.
|
||||
var/geargroupID //defines the ID that the gear inherits from the config
|
||||
var/loadout_flags = 0
|
||||
var/loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION
|
||||
var/list/loadout_initial_colors = list()
|
||||
|
||||
//NEW DONATOR SYTSEM STUFF
|
||||
|
||||
@@ -15,6 +15,18 @@
|
||||
name = "Black beret"
|
||||
path = /obj/item/clothing/head/beret/black
|
||||
|
||||
/datum/gear/head/redberet
|
||||
name = "Red beret"
|
||||
path = /obj/item/clothing/head/beret
|
||||
|
||||
/datum/gear/head/purpleberet
|
||||
name = "Purple beret"
|
||||
path = /obj/item/clothing/head/beret/purple
|
||||
|
||||
/datum/gear/head/blueberet
|
||||
name = "Blue beret"
|
||||
path = /obj/item/clothing/head/beret/blue
|
||||
|
||||
/datum/gear/head/flatcap
|
||||
name = "Flat cap"
|
||||
path = /obj/item/clothing/head/flatcap
|
||||
|
||||
@@ -20,3 +20,14 @@
|
||||
path = /obj/item/clothing/mask/gas
|
||||
cost = 2
|
||||
restricted_roles = list("Chief Engineer", "Atmospheric Technician", "Station Engineer") //*shrug
|
||||
|
||||
/datum/gear/mask/sterile
|
||||
name = "Aesthetic sterile mask"
|
||||
path = /obj/item/clothing/mask/surgical/aesthetic
|
||||
cost = 2
|
||||
|
||||
/datum/gear/mask/paper
|
||||
name = "Paper mask"
|
||||
path = /obj/item/clothing/mask/paper
|
||||
cost = 2
|
||||
|
||||
|
||||
@@ -30,6 +30,10 @@
|
||||
name = "Choker"
|
||||
path = /obj/item/clothing/neck/petcollar/choker
|
||||
|
||||
/datum/gear/neck/cowbell
|
||||
name = "Cowbell collar"
|
||||
path = /obj/item/clothing/neck/necklace/cowbell
|
||||
|
||||
/datum/gear/neck/scarf
|
||||
name = "White scarf"
|
||||
subcategory = LOADOUT_SUBCATEGORY_NECK_SCARVES
|
||||
@@ -86,7 +90,7 @@
|
||||
/datum/gear/neck/polycloak
|
||||
name = "Polychromatic Cloak"
|
||||
path = /obj/item/clothing/neck/cloak/polychromic
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#FFFFFF", "#808080")
|
||||
|
||||
/datum/gear/neck/altpolycloak
|
||||
@@ -94,3 +98,9 @@
|
||||
path = /obj/item/clothing/neck/cloak/alt/polychromic
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#676767", "#4C4C4C")
|
||||
|
||||
/datum/gear/neck/cancloak
|
||||
name = "Canvas Cloak"
|
||||
path = /obj/item/clothing/neck/cancloak/polychromic
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#585858", "#373737", "#BEBEBE")
|
||||
|
||||
@@ -34,6 +34,12 @@
|
||||
name = "White shoes"
|
||||
path = /obj/item/clothing/shoes/sneakers/white
|
||||
|
||||
/datum/gear/shoes/poly
|
||||
name = "Polychromic shoes"
|
||||
path = /obj/item/clothing/shoes/sneakers/poly/polychromic
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#1D1D1D")
|
||||
|
||||
/datum/gear/shoes/gildedcuffs
|
||||
name = "Gilded leg wraps"
|
||||
path= /obj/item/clothing/shoes/wraps
|
||||
|
||||
@@ -101,9 +101,16 @@
|
||||
name = "Polychromic winter coat"
|
||||
path = /obj/item/clothing/suit/hooded/wintercoat/polychromic
|
||||
cost = 4 //too many people with neon green coats is hard on the eyes
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#6A6964", "#C4B8A6", "#0000FF")
|
||||
|
||||
/datum/gear/suit/coat/wbreakpoly
|
||||
name = "Polychromic windbreaker"
|
||||
path = /obj/item/clothing/suit/toggle/wbreakpoly/polychromic
|
||||
cost = 4
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#464F65", "#916035", "#474747")
|
||||
|
||||
/datum/gear/suit/coat/med
|
||||
name = "Medical winter coat"
|
||||
path = /obj/item/clothing/suit/hooded/wintercoat/medical
|
||||
@@ -159,6 +166,13 @@
|
||||
path = /obj/item/clothing/suit/jacket/miljacket
|
||||
subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS
|
||||
|
||||
/datum/gear/suit/urbanjacket
|
||||
name = "Urban Jacket"
|
||||
path = /obj/item/clothing/suit/jacket/urbanjacket/polychromic
|
||||
subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#26321D", "#CBBDAF", "#292929")
|
||||
|
||||
/datum/gear/suit/ianshirt
|
||||
name = "Ian Shirt"
|
||||
path = /obj/item/clothing/suit/ianshirt
|
||||
|
||||
@@ -32,6 +32,10 @@
|
||||
name = "Tan suit"
|
||||
path = /obj/item/clothing/under/suit/tan
|
||||
|
||||
/datum/gear/uniform/suit/charismatic_suit
|
||||
name = "Charismatic suit"
|
||||
path = /obj/item/clothing/under/suit/charismatic_suit
|
||||
|
||||
/datum/gear/uniform/suit/white
|
||||
name = "White suit"
|
||||
path = /obj/item/clothing/under/suit/white
|
||||
@@ -47,7 +51,7 @@
|
||||
/datum/gear/uniform/maidcostume/polychromic
|
||||
name = "Polychromic maid costume"
|
||||
path = /obj/item/clothing/under/rank/civilian/janitor/maid/polychromic
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#000000")
|
||||
|
||||
/datum/gear/uniform/mailmanuniform
|
||||
@@ -166,6 +170,13 @@
|
||||
name = "Tan Pants"
|
||||
path = /obj/item/clothing/under/pants/tan
|
||||
|
||||
/datum/gear/uniform/pants/polypants
|
||||
name = "Polychromic Pants"
|
||||
path = /obj/item/clothing/under/pants/polypants/polychromic
|
||||
cost = 2
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#75634F", "#3D3D3D", "#575757")
|
||||
|
||||
/datum/gear/uniform/pants/track
|
||||
name = "Track Pants"
|
||||
path = /obj/item/clothing/under/pants/track
|
||||
@@ -229,49 +240,49 @@
|
||||
name = "Polychromic Jumpsuit"
|
||||
path = /obj/item/clothing/under/misc/polyjumpsuit
|
||||
cost = 2
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#808080", "#353535")
|
||||
|
||||
/datum/gear/uniform/skirt/poly
|
||||
name = "Polychromic Jumpskirt"
|
||||
path = /obj/item/clothing/under/dress/skirt/polychromic
|
||||
cost = 2
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#F08080", "#808080")
|
||||
|
||||
/datum/gear/uniform/suit/poly
|
||||
name = "Polychromic Button-up Shirt"
|
||||
path = /obj/item/clothing/under/misc/poly_shirt
|
||||
cost = 3
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#353535", "#353535")
|
||||
|
||||
/datum/gear/uniform/skirt/poly/pleated
|
||||
name = "Polychromic Pleated Sweaterskirt"
|
||||
path = /obj/item/clothing/under/dress/skirt/polychromic/pleated
|
||||
cost = 3
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#8CC6FF", "#808080", "#FF3535")
|
||||
|
||||
/datum/gear/uniform/polykilt
|
||||
name = "Polychromic Kilt"
|
||||
path = /obj/item/clothing/under/costume/kilt/polychromic
|
||||
cost = 3
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#F08080")
|
||||
|
||||
/datum/gear/uniform/shorts/poly
|
||||
name = "Polychromic Shorts"
|
||||
path = /obj/item/clothing/under/misc/polyshorts
|
||||
cost = 3
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#353535", "#808080", "#808080")
|
||||
|
||||
/datum/gear/uniform/shorts/poly/athletic
|
||||
name = "Polychromic Athletic Shorts"
|
||||
path = /obj/item/clothing/under/shorts/polychromic
|
||||
cost = 2
|
||||
loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION | LOADOUT_CAN_COLOR_POLYCHROMIC
|
||||
loadout_initial_colors = list("#FFFFFF", "#F08080")
|
||||
|
||||
/datum/gear/uniform/hopcasual
|
||||
|
||||
@@ -51,58 +51,58 @@
|
||||
blood_overlay_type = "coat"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
allowed = list(
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/flashlight,
|
||||
/obj/item/analyzer,
|
||||
/obj/item/radio,
|
||||
/obj/item/gun,
|
||||
/obj/item/melee/baton,
|
||||
/obj/item/restraints/handcuffs,
|
||||
/obj/item/reagent_containers/hypospray,
|
||||
/obj/item/hypospray,
|
||||
/obj/item/healthanalyzer,
|
||||
/obj/item/reagent_containers/syringe,
|
||||
/obj/item/reagent_containers/glass/bottle/vial,
|
||||
/obj/item/reagent_containers/glass/beaker,
|
||||
/obj/item/storage/pill_bottle,
|
||||
/obj/item/taperecorder)
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/flashlight,
|
||||
/obj/item/analyzer,
|
||||
/obj/item/radio,
|
||||
/obj/item/gun,
|
||||
/obj/item/melee/baton,
|
||||
/obj/item/restraints/handcuffs,
|
||||
/obj/item/reagent_containers/hypospray,
|
||||
/obj/item/hypospray,
|
||||
/obj/item/healthanalyzer,
|
||||
/obj/item/reagent_containers/syringe,
|
||||
/obj/item/reagent_containers/glass/bottle/vial,
|
||||
/obj/item/reagent_containers/glass/beaker,
|
||||
/obj/item/storage/pill_bottle,
|
||||
/obj/item/taperecorder)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
var/unbuttoned = 0
|
||||
var/unbuttoned = FALSE
|
||||
|
||||
verb/toggle()
|
||||
set name = "Toggle coat buttons"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
/obj/item/clothing/suit/storage/fluff/fedcoat/verb/toggle()
|
||||
set name = "Toggle coat buttons"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE))
|
||||
return FALSE
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE))
|
||||
return FALSE
|
||||
|
||||
switch(unbuttoned)
|
||||
if(0)
|
||||
icon_state = "[initial(icon_state)]_open"
|
||||
item_state = "[initial(item_state)]_open"
|
||||
unbuttoned = 1
|
||||
to_chat(usr,"You unbutton the coat.")
|
||||
if(1)
|
||||
icon_state = "[initial(icon_state)]"
|
||||
item_state = "[initial(item_state)]"
|
||||
unbuttoned = 0
|
||||
to_chat(usr,"You button up the coat.")
|
||||
usr.update_inv_wear_suit()
|
||||
switch(unbuttoned)
|
||||
if(FALSE)
|
||||
icon_state = "[initial(icon_state)]_open"
|
||||
item_state = "[initial(item_state)]_open"
|
||||
unbuttoned = TRUE
|
||||
to_chat(usr,"You unbutton the coat.")
|
||||
if(TRUE)
|
||||
icon_state = "[initial(icon_state)]"
|
||||
item_state = "[initial(item_state)]"
|
||||
unbuttoned = FALSE
|
||||
to_chat(usr,"You button up the coat.")
|
||||
usr.update_inv_wear_suit()
|
||||
|
||||
//Variants
|
||||
//Variants
|
||||
/obj/item/clothing/suit/storage/fluff/fedcoat/medsci
|
||||
icon_state = "fedblue"
|
||||
item_state = "fedblue"
|
||||
icon_state = "fedblue"
|
||||
item_state = "fedblue"
|
||||
|
||||
/obj/item/clothing/suit/storage/fluff/fedcoat/eng
|
||||
icon_state = "fedeng"
|
||||
item_state = "fedeng"
|
||||
icon_state = "fedeng"
|
||||
item_state = "fedeng"
|
||||
|
||||
/obj/item/clothing/suit/storage/fluff/fedcoat/capt
|
||||
icon_state = "fedcapt"
|
||||
item_state = "fedcapt"
|
||||
icon_state = "fedcapt"
|
||||
item_state = "fedcapt"
|
||||
|
||||
//"modern" ones for fancy
|
||||
|
||||
@@ -124,18 +124,18 @@
|
||||
)
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
|
||||
|
||||
//Variants
|
||||
//Variants
|
||||
/obj/item/clothing/suit/storage/fluff/modernfedcoat/medsci
|
||||
icon_state = "fedmodernblue"
|
||||
item_state = "fedmodernblue"
|
||||
icon_state = "fedmodernblue"
|
||||
item_state = "fedmodernblue"
|
||||
|
||||
/obj/item/clothing/suit/storage/fluff/modernfedcoat/eng
|
||||
icon_state = "fedmoderneng"
|
||||
item_state = "fedmoderneng"
|
||||
icon_state = "fedmoderneng"
|
||||
item_state = "fedmoderneng"
|
||||
|
||||
/obj/item/clothing/suit/storage/fluff/modernfedcoat/sec
|
||||
icon_state = "fedmodernsec"
|
||||
item_state = "fedmodernsec"
|
||||
icon_state = "fedmodernsec"
|
||||
item_state = "fedmodernsec"
|
||||
|
||||
/obj/item/clothing/head/caphat/formal/fedcover
|
||||
name = "Federation Officer's Cap"
|
||||
@@ -146,22 +146,22 @@
|
||||
mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi'
|
||||
item_state = "fedcapofficer"
|
||||
|
||||
//Variants
|
||||
//Variants
|
||||
/obj/item/clothing/head/caphat/formal/fedcover/medsci
|
||||
icon_state = "fedcapsci"
|
||||
item_state = "fedcapsci"
|
||||
icon_state = "fedcapsci"
|
||||
item_state = "fedcapsci"
|
||||
|
||||
/obj/item/clothing/head/caphat/formal/fedcover/eng
|
||||
icon_state = "fedcapeng"
|
||||
item_state = "fedcapeng"
|
||||
icon_state = "fedcapeng"
|
||||
item_state = "fedcapeng"
|
||||
|
||||
/obj/item/clothing/head/caphat/formal/fedcover/sec
|
||||
icon_state = "fedcapsec"
|
||||
item_state = "fedcapsec"
|
||||
icon_state = "fedcapsec"
|
||||
item_state = "fedcapsec"
|
||||
|
||||
/obj/item/clothing/head/caphat/formal/fedcover/black
|
||||
icon_state = "fedcapblack"
|
||||
item_state = "fedcapblack"
|
||||
icon_state = "fedcapblack"
|
||||
item_state = "fedcapblack"
|
||||
|
||||
//orvilike caps
|
||||
/obj/item/clothing/head/kepi/orvi
|
||||
|
||||
@@ -585,3 +585,12 @@
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi'
|
||||
mutantrace_variation = NONE
|
||||
|
||||
/obj/item/clothing/neck/petcollar/choker
|
||||
name = "NT Choker"
|
||||
desc = "NT property since January 21st, 2562."
|
||||
icon = 'icons/obj/custom.dmi'
|
||||
icon_state = "choker"
|
||||
mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi'
|
||||
item_state = "choker"
|
||||
tagname = null
|
||||
|
||||
@@ -300,3 +300,24 @@
|
||||
user.nextsoundemote = world.time + 7
|
||||
var/sound = pick('sound/voice/slime_squish.ogg')
|
||||
playsound(user, sound, 50, 1, -1)
|
||||
|
||||
/datum/emote/living/pain
|
||||
key = "pain"
|
||||
key_third_person = "cries out in pain!"
|
||||
message = "cries out in pain!"
|
||||
emote_type = EMOTE_AUDIBLE
|
||||
muzzle_ignore = FALSE
|
||||
restraint_check = FALSE
|
||||
|
||||
/datum/emote/living/pain/run_emote(mob/living/user, params)
|
||||
if(!(. = ..()))
|
||||
return
|
||||
if(user.nextsoundemote >= world.time)
|
||||
return
|
||||
user.nextsoundemote = world.time + 7
|
||||
var/sound
|
||||
if(user.gender == MALE)
|
||||
sound = pick('modular_citadel/sound/voice/human_male_pain_1.ogg', 'modular_citadel/sound/voice/human_male_pain_2.ogg', 'modular_citadel/sound/voice/human_male_pain_3.ogg', 'modular_citadel/sound/voice/human_male_pain_rare.ogg')
|
||||
else
|
||||
sound = pick('modular_citadel/sound/voice/human_female_pain_1.ogg', 'modular_citadel/sound/voice/human_female_pain_2.ogg', 'modular_citadel/sound/voice/human_female_pain_3.ogg')
|
||||
playsound(user, sound, 50, 0, 0)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
item_state = "arg"
|
||||
slot_flags = 0
|
||||
mag_type = /obj/item/ammo_box/magazine/m556 //Uses the m90gl's magazine, just like the NT-ARG
|
||||
fire_sound = 'sound/weapons/gunshot_smg.ogg'
|
||||
fire_sound = 'sound/weapons/rifleshot.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 6 //in line with XCOMEU stats. This can fire 5 bursts from a full magazine.
|
||||
fire_delay = 1
|
||||
@@ -85,23 +85,20 @@
|
||||
|
||||
///projectiles///
|
||||
|
||||
/obj/item/projectile/bullet/cflechetteap //shreds armor
|
||||
/obj/item/projectile/bullet/cflechetteap //shreds armor but no wounds
|
||||
name = "flechette (armor piercing)"
|
||||
damage = 8
|
||||
armour_penetration = 80
|
||||
damage = 15
|
||||
armour_penetration = 100
|
||||
wound_bonus = -100
|
||||
|
||||
/obj/item/projectile/bullet/cflechettes //shreds flesh and forces bleeding
|
||||
/obj/item/projectile/bullet/cflechettes //causes wounds fast but is heavily countered by armor
|
||||
name = "flechette (serrated)"
|
||||
damage = 15
|
||||
dismemberment = 10
|
||||
armour_penetration = -80
|
||||
|
||||
/obj/item/projectile/bullet/cflechettes/on_hit(atom/target, blocked = FALSE)
|
||||
if((blocked != 100) && iscarbon(target))
|
||||
var/mob/living/carbon/C = target
|
||||
C.bleed(10)
|
||||
return ..()
|
||||
|
||||
wound_bonus = 15
|
||||
sharpness = SHARP_EDGED
|
||||
wound_falloff_tile = 0
|
||||
|
||||
///ammo casings (CASELESS AMMO CASINGS WOOOOOOOO)///
|
||||
|
||||
/obj/item/ammo_casing/caseless/flechetteap
|
||||
@@ -148,7 +145,7 @@
|
||||
slot_flags = 0
|
||||
pin = /obj/item/firing_pin/implant/pindicate
|
||||
mag_type = /obj/item/ammo_box/magazine/flechette
|
||||
fire_sound = 'sound/weapons/gunshot_smg.ogg'
|
||||
fire_sound = 'sound/weapons/rifleshot.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 5
|
||||
fire_delay = 1
|
||||
@@ -168,15 +165,19 @@
|
||||
|
||||
///unique variant///
|
||||
|
||||
/obj/item/projectile/bullet/cflechetteshredder
|
||||
/obj/item/projectile/bullet/cflechetteshredder //you only get this with a 30TC bundle,5 magazines, as such this should be the superior ammotype
|
||||
name = "flechette (shredder)"
|
||||
damage = 5
|
||||
dismemberment = 40
|
||||
damage = 10
|
||||
dismemberment = 50
|
||||
wound_bonus = 50
|
||||
armour_penetration = 100
|
||||
sharpness = SHARP_EDGED
|
||||
wound_falloff_tile = 0
|
||||
|
||||
/obj/item/ammo_casing/caseless/flechetteshredder
|
||||
name = "flechette (shredder)"
|
||||
desc = "A serrated flechette made of a special alloy that forms a monofilament edge."
|
||||
projectile_type = /obj/item/projectile/bullet/cflechettes
|
||||
projectile_type = /obj/item/projectile/bullet/cflechetteshredder
|
||||
|
||||
/obj/item/ammo_box/magazine/flechette/shredder
|
||||
name = "flechette magazine (shredder)"
|
||||
@@ -185,7 +186,7 @@
|
||||
|
||||
/obj/item/gun/ballistic/automatic/flechette/shredder
|
||||
name = "\improper CX Shredder"
|
||||
desc = "A flechette launching machine pistol made of ultra-light CFRP optimized for firing serrated monofillament flechettes."
|
||||
desc = "A flechette launching machine pistol made of ultra-light CFRP optimized for firing serrated monofilament flechettes."
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
spread = 15
|
||||
recoil = 0.1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
The Recolourable Energy Gun
|
||||
*//////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
obj/item/gun/energy/e_gun/cx
|
||||
/obj/item/gun/energy/e_gun/cx
|
||||
name = "\improper CX Model D Energy Gun"
|
||||
desc = "An overpriced hybrid energy gun with two settings: disable, and kill. Manufactured by CX Armories. Has a polychromic coating."
|
||||
icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi'
|
||||
@@ -14,18 +14,18 @@ obj/item/gun/energy/e_gun/cx
|
||||
flight_y_offset = 10
|
||||
var/body_color = "#252528"
|
||||
|
||||
obj/item/gun/energy/e_gun/cx/ComponentInitialize()
|
||||
/obj/item/gun/energy/e_gun/cx/ComponentInitialize()
|
||||
. = ..()
|
||||
AddElement(/datum/element/update_icon_updates_onmob)
|
||||
|
||||
obj/item/gun/energy/e_gun/cx/update_overlays()
|
||||
/obj/item/gun/energy/e_gun/cx/update_overlays()
|
||||
. = ..()
|
||||
var/mutable_appearance/body_overlay = mutable_appearance('modular_citadel/icons/obj/guns/cit_guns.dmi', "cxegun_body")
|
||||
if(body_color)
|
||||
body_overlay.color = body_color
|
||||
. += body_overlay
|
||||
|
||||
obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user)
|
||||
/obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user)
|
||||
. = ..()
|
||||
if(!in_range(src, user)) //Basic checks to prevent abuse
|
||||
return
|
||||
@@ -39,7 +39,7 @@ obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user)
|
||||
body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
|
||||
obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE)
|
||||
/obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE)
|
||||
. = ..()
|
||||
if(isinhands)
|
||||
var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body")
|
||||
|
||||
@@ -54,13 +54,8 @@
|
||||
return..()
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
//If they've opted out, then route processing though liver.
|
||||
//If they've opted out, ignore and return early.
|
||||
if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT))
|
||||
var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(L)
|
||||
L.applyOrganDamage(0.25)
|
||||
else
|
||||
H.adjustToxLoss(1)
|
||||
return..()
|
||||
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
|
||||
//otherwise proceed as normal
|
||||
@@ -85,9 +80,6 @@
|
||||
|
||||
/datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders.
|
||||
if(!(M.client?.prefs.cit_toggles & FORCED_FEM))
|
||||
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(L)
|
||||
L.applyOrganDamage(0.25)
|
||||
return ..()
|
||||
|
||||
var/obj/item/organ/genital/penis/P = M.getorganslot(ORGAN_SLOT_PENIS)
|
||||
@@ -122,9 +114,6 @@
|
||||
/datum/reagent/fermi/BEsmaller/on_mob_life(mob/living/carbon/M)
|
||||
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
|
||||
if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B)
|
||||
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(L)
|
||||
L.applyOrganDamage(-0.25)
|
||||
return ..()
|
||||
B.modify_size(-0.05)
|
||||
return ..()
|
||||
@@ -203,11 +192,6 @@
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT))
|
||||
var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(L)
|
||||
L.applyOrganDamage(0.25)
|
||||
else
|
||||
H.adjustToxLoss(1)
|
||||
return ..()
|
||||
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
|
||||
//otherwise proceed as normal
|
||||
@@ -226,10 +210,8 @@
|
||||
/datum/reagent/fermi/penis_enlarger/overdose_process(mob/living/carbon/human/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
|
||||
if(!istype(M))
|
||||
return ..()
|
||||
// let's not kill them if they didn't consent.
|
||||
if(!(M.client?.prefs.cit_toggles & FORCED_MASC))
|
||||
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(L)
|
||||
L.applyOrganDamage(0.25)
|
||||
return..()
|
||||
|
||||
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
|
||||
@@ -266,9 +248,6 @@
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
|
||||
if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P)
|
||||
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
|
||||
if(L)
|
||||
L.applyOrganDamage(-0.25)
|
||||
return..()
|
||||
|
||||
P.modify_size(-0.1)
|
||||
|
||||
@@ -216,7 +216,6 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/nanite_b_gone/overdose_process(mob/living/carbon/C)
|
||||
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
|
||||
var/datum/component/nanites/N = C.GetComponent(/datum/component/nanites)
|
||||
if(prob(5))
|
||||
to_chat(C, "<span class='warning'>The residual voltage from the nanites causes you to seize up!</b></span>")
|
||||
@@ -230,7 +229,7 @@
|
||||
N.adjust_nanites(-10*cached_purity)
|
||||
..()
|
||||
|
||||
datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume)
|
||||
/datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume)
|
||||
for(var/active_obj in react_objs)
|
||||
if(O == active_obj)
|
||||
return
|
||||
@@ -335,39 +334,75 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume)
|
||||
holder.clear_reagents()
|
||||
|
||||
/datum/reagent/fermi/acidic_buffer
|
||||
name = "Acidic buffer"
|
||||
name = "Strong acidic buffer"
|
||||
description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another."
|
||||
color = "#fbc314"
|
||||
pH = 0
|
||||
chemical_flags = REAGENT_FORCEONNEW
|
||||
can_synth = TRUE
|
||||
var/strength = 1.5
|
||||
|
||||
//Consumes self on addition and shifts pH
|
||||
/datum/reagent/fermi/acidic_buffer/on_new(datapH)
|
||||
if(!holder)
|
||||
return ..()
|
||||
if(holder.reagents_holder_flags & NO_REACT)
|
||||
return..()
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
return ..()
|
||||
data = datapH
|
||||
if(LAZYLEN(holder.reagent_list) == 1)
|
||||
return ..()
|
||||
holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume))
|
||||
if(holder.pH < pH)
|
||||
holder.my_atom.visible_message("<span class='warning'>The beaker fizzes as the buffer is added, to no effect.</b></span>")
|
||||
playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1)
|
||||
return ..()
|
||||
holder.pH = clamp((((holder.pH * (holder.total_volume-(volume*strength)))+(pH * (volume*strength)) )/holder.total_volume), 0, 14) //This is BEFORE removal
|
||||
holder.my_atom.visible_message("<span class='warning'>The beaker fizzes as the pH changes!</b></span>")
|
||||
playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1)
|
||||
holder.remove_reagent(type, volume, ignore_pH = TRUE)
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/acidic_buffer/weak
|
||||
name = "Acidic buffer"
|
||||
description = "This reagent will consume itself and move the pH of a beaker towards acidity when added to another."
|
||||
color = "#fbf344"
|
||||
pH = 4
|
||||
can_synth = TRUE
|
||||
strength = 0.25
|
||||
|
||||
/datum/reagent/fermi/basic_buffer
|
||||
name = "Basic buffer"
|
||||
name = "Strong basic buffer"
|
||||
description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another."
|
||||
color = "#3853a4"
|
||||
pH = 14
|
||||
chemical_flags = REAGENT_FORCEONNEW
|
||||
can_synth = TRUE
|
||||
var/strength = 1.5
|
||||
|
||||
/datum/reagent/fermi/basic_buffer/weak
|
||||
name = "Basic buffer"
|
||||
description = "This reagent will consume itself and move the pH of a beaker towards alkalinity when added to another."
|
||||
color = "#5873c4"
|
||||
pH = 10
|
||||
can_synth = TRUE
|
||||
strength = 0.25
|
||||
|
||||
/datum/reagent/fermi/basic_buffer/on_new(datapH)
|
||||
if(!holder)
|
||||
return ..()
|
||||
if(holder.reagents_holder_flags & NO_REACT)
|
||||
return..()
|
||||
if(holder.has_reagent(/datum/reagent/stabilizing_agent))
|
||||
return ..()
|
||||
data = datapH
|
||||
if(LAZYLEN(holder.reagent_list) == 1)
|
||||
return ..()
|
||||
holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume))
|
||||
if(holder.pH > pH)
|
||||
holder.my_atom.visible_message("<span class='warning'>The beaker froths as the buffer is added, to no effect.</b></span>")
|
||||
playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1)
|
||||
return ..()
|
||||
holder.pH = clamp((((holder.pH * (holder.total_volume-(volume*strength)))+(pH * (volume*strength)) )/holder.total_volume), 0, 14) //This is BEFORE removal
|
||||
holder.my_atom.visible_message("<span class='warning'>The beaker froths as the pH changes!</b></span>")
|
||||
playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1)
|
||||
holder.remove_reagent(type, volume, ignore_pH = TRUE)
|
||||
|
||||
@@ -93,9 +93,8 @@
|
||||
e.set_up(round((volume/28)*(pH-9)), T, 0, 0)
|
||||
e.start()
|
||||
|
||||
if(!ImpureTot == 0) //If impure, v.small emp (0.6 or less)
|
||||
ImpureTot *= volume
|
||||
empulse(T, volume, 1)
|
||||
if(ImpureTot) //If impure, v.small emp (0.6 or less)
|
||||
empulse(T, ImpureTot, 1)
|
||||
|
||||
my_atom.reagents.clear_reagents() //just in case
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user