Merge branch 'master' of https://github.com/PolarisSS13/Polaris into 10/20/2017_syndie_borgs_are_back

This commit is contained in:
Neerti
2017-10-20 13:26:06 -04:00
63 changed files with 685 additions and 353 deletions
@@ -14,7 +14,8 @@ var/list/gear_datums = list()
//create a list of gear datums to sort
for(var/geartype in typesof(/datum/gear)-/datum/gear)
var/datum/gear/G = geartype
if(initial(G.type_category) == geartype)
continue
var/use_name = initial(G.display_name)
var/use_category = initial(G.sort_category)
@@ -205,6 +206,7 @@ var/list/gear_datums = list()
var/sort_category = "General"
var/list/gear_tweaks = list() //List of datums which will alter the item after it has been spawned.
var/exploitable = 0 //Does it go on the exploitable information list?
var/type_category = null
/datum/gear/New()
..()
@@ -1,42 +1,28 @@
/datum/gear/accessory
display_name = "armband, red"
path = /obj/item/clothing/accessory/armband
display_name = "accessory"
slot = slot_tie
sort_category = "Accessories"
type_category = /datum/gear/accessory
path = /obj/item/clothing/accessory
cost = 1
/datum/gear/accessory/cargo
display_name = "armband, cargo"
path = /obj/item/clothing/accessory/armband/cargo
/datum/gear/accessory/armband
display_name = "armband selection"
path = /obj/item/clothing/accessory/armband
/datum/gear/accessory/emt
display_name = "armband, EMT"
path = /obj/item/clothing/accessory/armband/medblue
/datum/gear/accessory/armband/New()
..()
var/list/armbands = list()
for(var/armband in (typesof(/obj/item/clothing/accessory/armband) - typesof(/obj/item/clothing/accessory/armband/med/color)))
var/obj/item/clothing/accessory/armband_type = armband
armbands[initial(armband_type.name)] = armband_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(armbands))
/datum/gear/accessory/engineering
display_name = "armband, engineering"
path = /obj/item/clothing/accessory/armband/engine
/datum/gear/accessory/hydroponics
display_name = "armband, hydroponics"
path = /obj/item/clothing/accessory/armband/hydro
/datum/gear/accessory/medical
display_name = "armband, medical"
path = /obj/item/clothing/accessory/armband/med
/datum/gear/accessory/medical/cross
display_name = "armband, medic"
path = /obj/item/clothing/accessory/armband/med/cross
/datum/gear/accessory/science
display_name = "armband, science"
path = /obj/item/clothing/accessory/armband/science
/datum/gear/accessory/colored
/datum/gear/accessory/armband/colored
display_name = "armband"
path = /obj/item/clothing/accessory/armband/med/color
/datum/gear/accessory/colored/New()
/datum/gear/accessory/armband/colored/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
@@ -74,215 +60,109 @@
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/accessory/wcoat
display_name = "waistcoat"
display_name = "waistcoat selection"
path = /obj/item/clothing/accessory/wcoat
cost = 1
/datum/gear/accessory/wcoat/red
display_name = "waistcoat, red"
path = /obj/item/clothing/accessory/wcoat/red
/datum/gear/accessory/wcoat/grey
display_name = "waistcoat, grey"
path = /obj/item/clothing/accessory/wcoat/grey
/datum/gear/accessory/wcoat/brown
display_name = "waistcoat, brown"
path = /obj/item/clothing/accessory/wcoat/brown
/datum/gear/accessory/swvest
display_name = "sweatervest, black"
path = /obj/item/clothing/accessory/wcoat/swvest
cost = 1
/datum/gear/accessory/swvest/blue
display_name = "sweatervest, blue"
path = /obj/item/clothing/accessory/wcoat/swvest/blue
/datum/gear/accessory/swvest/red
display_name = "sweatervest, red"
path = /obj/item/clothing/accessory/wcoat/swvest/red
/datum/gear/accessory/wcoat/New()
..()
var/list/wcoats = list()
for(var/wcoat in typesof(/obj/item/clothing/accessory/wcoat))
var/obj/item/clothing/accessory/wcoat_type = wcoat
wcoats[initial(wcoat_type.name)] = wcoat_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(wcoats))
/datum/gear/accessory/holster
display_name = "holster, armpit"
path = /obj/item/clothing/accessory/holster/armpit
display_name = "holster selection (Security, CD, HoP)"
path = /obj/item/clothing/accessory/holster
allowed_roles = list("Colony Director", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective")
/datum/gear/accessory/holster/hip
display_name = "holster, hip"
path = /obj/item/clothing/accessory/holster/hip
/datum/gear/accessory/holster/leg
display_name = "holster, leg"
path = /obj/item/clothing/accessory/holster/leg
/datum/gear/accessory/holster/waist
display_name = "holster, waist"
path = /obj/item/clothing/accessory/holster/waist
/datum/gear/accessory/holster/New()
..()
var/list/holsters = list()
for(var/holster in typesof(/obj/item/clothing/accessory/holster))
var/obj/item/clothing/accessory/holster_type = holster
holsters[initial(holster_type.name)] = holster_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(holsters))
/datum/gear/accessory/tie
display_name = "tie, black"
path = /obj/item/clothing/accessory/black
display_name = "tie selection"
path = /obj/item/clothing/accessory/tie
cost = 1
/datum/gear/accessory/tie/blue
display_name = "tie, blue"
path = /obj/item/clothing/accessory/blue
/datum/gear/accessory/tie/blue_clip
display_name = "tie, blue with clip"
path = /obj/item/clothing/accessory/blue_clip
/datum/gear/accessory/tie/blue_long
display_name = "tie, blue long"
path = /obj/item/clothing/accessory/blue_long
/datum/gear/accessory/tie/red
display_name = "tie, red"
path = /obj/item/clothing/accessory/red
/datum/gear/accessory/tie/red_clip
display_name = "tie, red with clip"
path = /obj/item/clothing/accessory/red_clip
/datum/gear/accessory/tie/red_long
display_name = "tie, red long"
path = /obj/item/clothing/accessory/red_long
/datum/gear/accessory/tie/yellow
display_name = "tie, yellow"
path = /obj/item/clothing/accessory/yellow
/datum/gear/accessory/tie/navy
display_name = "tie, navy blue"
path = /obj/item/clothing/accessory/navy
/datum/gear/accessory/tie/white
display_name = "tie, white"
path = /obj/item/clothing/accessory/white
/datum/gear/accessory/tie/horrible
display_name = "tie, socially disgraceful"
path = /obj/item/clothing/accessory/horrible
/datum/gear/accessory/tie/New()
..()
var/list/ties = list()
for(var/tie in typesof(/obj/item/clothing/accessory/tie))
var/obj/item/clothing/accessory/tie_type = tie
ties[initial(tie_type.name)] = tie_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(ties))
/datum/gear/accessory/scarf
display_name = "scarf"
display_name = "scarf selection"
path = /obj/item/clothing/accessory/scarf
cost = 1
/datum/gear/accessory/scarf/red
display_name = "scarf, red"
path = /obj/item/clothing/accessory/scarf/red
/datum/gear/accessory/scarf/New()
..()
var/list/scarfs = list()
for(var/scarf in typesof(/obj/item/clothing/accessory/scarf))
var/obj/item/clothing/accessory/scarf_type = scarf
scarfs[initial(scarf_type.name)] = scarf_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(scarfs))
/datum/gear/accessory/scarf/green
display_name = "scarf, green"
path = /obj/item/clothing/accessory/scarf/green
/datum/gear/accessory/jacket
display_name = "suit jacket selection"
path = /obj/item/clothing/accessory/jacket
cost = 1
/datum/gear/accessory/scarf/darkblue
display_name = "scarf, dark blue"
path = /obj/item/clothing/accessory/scarf/darkblue
/datum/gear/accessory/scarf/purple
display_name = "scarf, purple"
path = /obj/item/clothing/accessory/scarf/purple
/datum/gear/accessory/scarf/yellow
display_name = "scarf, yellow"
path = /obj/item/clothing/accessory/scarf/yellow
/datum/gear/accessory/scarf/orange
display_name = "scarf, orange"
path = /obj/item/clothing/accessory/scarf/orange
/datum/gear/accessory/scarf/lightblue
display_name = "scarf, light blue"
path = /obj/item/clothing/accessory/scarf/lightblue
/datum/gear/accessory/scarf/white
display_name = "scarf, white"
path = /obj/item/clothing/accessory/scarf/white
/datum/gear/accessory/scarf/black
display_name = "scarf, black"
path = /obj/item/clothing/accessory/scarf/black
/datum/gear/accessory/scarf/zebra
display_name = "scarf, zebra"
path = /obj/item/clothing/accessory/scarf/zebra
/datum/gear/accessory/scarf/christmas
display_name = "scarf, christmas"
path = /obj/item/clothing/accessory/scarf/christmas
/datum/gear/accessory/scarf/stripedred
display_name = "scarf, striped red"
path = /obj/item/clothing/accessory/stripedredscarf
/datum/gear/accessory/scarf/stripedgreen
display_name = "scarf, striped green"
path = /obj/item/clothing/accessory/stripedgreenscarf
/datum/gear/accessory/scarf/stripedblue
display_name = "scarf, striped blue"
path = /obj/item/clothing/accessory/stripedbluescarf
/datum/gear/accessory/suitjacket
display_name = "suit jacket, tan"
path = /obj/item/clothing/accessory/tan_jacket
/datum/gear/accessory/suitjacket/charcoal
display_name = "suit jacket, charcoal"
path = /obj/item/clothing/accessory/charcoal_jacket
/datum/gear/accessory/suitjacket/navy
display_name = "suit jacket, navy blue"
path = /obj/item/clothing/accessory/navy_jacket
/datum/gear/accessory/suitjacket/burgundy
display_name = "suit jacket, burgundy"
path = /obj/item/clothing/accessory/burgundy_jacket
/datum/gear/accessory/suitjacket/checkered
display_name = "suit jacket, checkered"
path = /obj/item/clothing/accessory/checkered_jacket
/datum/gear/accessory/jacket/New()
..()
var/list/jackets = list()
for(var/jacket in typesof(/obj/item/clothing/accessory/jacket))
var/obj/item/clothing/accessory/jacket_type = jacket
jackets[initial(jacket_type.name)] = jacket_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(jackets))
/datum/gear/accessory/suitvest
display_name = "suit vest"
path = /obj/item/clothing/accessory/vest
/datum/gear/accessory/brown_vest
display_name = "webbing, engineering"
display_name = "webbing, brown"
path = /obj/item/clothing/accessory/storage/brown_vest
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor")
/datum/gear/accessory/black_vest
display_name = "webbing, security"
display_name = "webbing, black"
path = /obj/item/clothing/accessory/storage/black_vest
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor")
/datum/gear/accessory/white_vest
display_name = "webbing, medical"
display_name = "webbing, white"
path = /obj/item/clothing/accessory/storage/white_vest
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor")
/datum/gear/accessory/brown_drop_pouches
display_name = "drop pouches, engineering"
display_name = "drop pouches, brown"
path = /obj/item/clothing/accessory/storage/brown_drop_pouches
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor")
/datum/gear/accessory/black_drop_pouches
display_name = "drop pouches, security"
display_name = "drop pouches, black"
path = /obj/item/clothing/accessory/storage/black_drop_pouches
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor")
/datum/gear/accessory/white_drop_pouches
display_name = "drop pouches, medical"
display_name = "drop pouches, white"
path = /obj/item/clothing/accessory/storage/white_drop_pouches
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Security Officer","Detective","Head of Security","Warden","Paramedic","Chief Medical Officer","Medical Doctor")
/datum/gear/accessory/fannypack
display_name = "fannypack selection"
cost = 2
path = /obj/item/weapon/storage/belt/fannypack
/datum/gear/accessory/fannypack/New()
..()
@@ -68,9 +68,9 @@
path = /obj/item/clothing/glasses/sunglasses/medhud/aviator/prescription
/datum/gear/eyes/meson
display_name = "Optical Meson Scanners (Engineering)"
display_name = "Optical Meson Scanners (Engineering, Science)"
path = /obj/item/clothing/glasses/meson
allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician")
allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician", "Scientist", "Research Director")
/datum/gear/eyes/meson/prescription
display_name = "Optical Meson Scanners, prescription (Engineering)"
@@ -115,4 +115,3 @@
/datum/gear/eyes/sun/prescriptionsun
display_name = "sunglasses, presciption (Security/Command)"
path = /obj/item/clothing/glasses/sunglasses/prescription
cost = 2
@@ -68,7 +68,7 @@
cost = 3
/datum/gear/gloves/forensic
display_name = "gloves, forensic"
display_name = "gloves, forensic (Detective)"
path = /obj/item/clothing/gloves/forensic
allowed_roles = list("Detective")
@@ -136,7 +136,6 @@
/datum/gear/head/cowboy
display_name = "cowboy, rodeo"
path = /obj/item/clothing/head/cowboy_hat
cost = 3
/datum/gear/head/cowboy/black
display_name = "cowboy, black"
@@ -268,6 +267,11 @@
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/head/kitty
display_name = "kitty ears"
path = /obj/item/clothing/head/kitty
/datum/gear/head/beanie
display_name = "beanie"
path = /obj/item/clothing/head/beanie
@@ -195,6 +195,10 @@
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/shoes/slippers
display_name = "bunny slippers"
path = /obj/item/clothing/shoes/slippers
/datum/gear/shoes/boots/winter
display_name = "winter boots"
path = /obj/item/clothing/shoes/boots/winter
@@ -227,7 +231,7 @@
/datum/gear/shoes/boots/winter/medical
display_name = "medical winter boots"
path = /obj/item/clothing/shoes/boots/winter/medical
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
/datum/gear/shoes/boots/winter/mining
display_name = "mining winter boots"
@@ -149,7 +149,7 @@
/datum/gear/suit/labcoat/emt
display_name = "labcoat, EMT (Medical)"
path = /obj/item/clothing/suit/storage/toggle/labcoat/emt
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
/datum/gear/suit/roles/surgical_apron
display_name = "surgical apron"
@@ -182,7 +182,7 @@
/datum/gear/suit/roles/poncho/medical
display_name = "poncho, medical"
path = /obj/item/clothing/accessory/poncho/roles/medical
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
/datum/gear/suit/roles/poncho/engineering
display_name = "poncho, engineering"
@@ -292,7 +292,7 @@
/datum/gear/suit/wintercoat/medical
display_name = "winter coat, medical"
path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
/datum/gear/suit/wintercoat/science
display_name = "winter coat, science"
@@ -445,7 +445,7 @@
/datum/gear/suit/snowsuit/medical
display_name = "snowsuit, medical"
path = /obj/item/clothing/suit/storage/snowsuit/medical
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist")
/datum/gear/suit/snowsuit/science
display_name = "snowsuit, science"
@@ -243,7 +243,6 @@
/datum/gear/uniform/scrub
display_name = "scrubs selection"
path = /obj/item/clothing/under/rank/medical/scrubs
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Roboticist")
/datum/gear/uniform/scrub/New()
..()
@@ -455,3 +454,7 @@
/datum/gear/uniform/red_swept_dress
display_name = "red swept dress"
path = /obj/item/clothing/under/dress/red_swept_dress
/datum/gear/uniform/bathrobe
display_name = "bathrobe"
path = /obj/item/clothing/under/bathrobe
@@ -594,6 +594,12 @@ obj/item/clothing/suit/storage/toggle/peacoat
icon_state = "smw_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_black", slot_l_hand_str = "suit_black")
/obj/item/clothing/suit/storage/toggle/hoodie/nrti
name = "New Reykjavik Technical Institute hoodie"
desc = "A warm, gray sweatshirt. It bears the letters ‘NRT’ on the back, in reference to Sif's premiere technical institute."
icon_state = "nrti_hoodie"
item_state_slots = list(slot_r_hand_str = "suit_grey", slot_l_hand_str = "suit_grey")
/obj/item/clothing/suit/whitedress
name = "white dress"
desc = "A fancy dress."
@@ -80,51 +80,51 @@
return //we aren't an object on the ground so don't call parent
..()
/obj/item/clothing/accessory/blue
/obj/item/clothing/accessory/tie
name = "blue tie"
icon_state = "bluetie"
/obj/item/clothing/accessory/red
/obj/item/clothing/accessory/tie/red
name = "red tie"
icon_state = "redtie"
/obj/item/clothing/accessory/blue_clip
/obj/item/clothing/accessory/tie/blue_clip
name = "blue tie with a clip"
icon_state = "bluecliptie"
/obj/item/clothing/accessory/blue_long
/obj/item/clothing/accessory/tie/blue_long
name = "blue long tie"
icon_state = "bluelongtie"
/obj/item/clothing/accessory/red_clip
/obj/item/clothing/accessory/tie/red_clip
name = "red tie with a clip"
icon_state = "redcliptie"
/obj/item/clothing/accessory/red_long
/obj/item/clothing/accessory/tie/red_long
name = "red long tie"
icon_state = "redlongtie"
/obj/item/clothing/accessory/black
/obj/item/clothing/accessory/tie/black
name = "black tie"
icon_state = "blacktie"
/obj/item/clothing/accessory/darkgreen
/obj/item/clothing/accessory/tie/darkgreen
name = "dark green tie"
icon_state = "dgreentie"
/obj/item/clothing/accessory/yellow
/obj/item/clothing/accessory/tie/yellow
name = "yellow tie"
icon_state = "yellowtie"
/obj/item/clothing/accessory/navy
/obj/item/clothing/accessory/tie/navy
name = "navy tie"
icon_state = "navytie"
/obj/item/clothing/accessory/white
/obj/item/clothing/accessory/tie/white
name = "white tie"
icon_state = "whitetie"
/obj/item/clothing/accessory/horrible
/obj/item/clothing/accessory/tie/horrible
name = "horrible tie"
desc = "A neosilk clip-on tie. This one is disgusting."
icon_state = "horribletie"
@@ -237,17 +237,14 @@
//Scarves
/obj/item/clothing/accessory/scarf
name = "scarf"
name = "green scarf"
desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
icon_state = "greenscarf"
/obj/item/clothing/accessory/scarf/red
name = "red scarf"
icon_state = "redscarf"
/obj/item/clothing/accessory/scarf/green
name = "green scarf"
icon_state = "greenscarf"
/obj/item/clothing/accessory/scarf/darkblue
name = "dark blue scarf"
icon_state = "darkbluescarf"
@@ -284,14 +281,14 @@
name = "christmas scarf"
icon_state = "christmasscarf"
/obj/item/clothing/accessory/stripedredscarf
/obj/item/clothing/accessory/scarf/stripedred
name = "striped red scarf"
icon_state = "stripedredscarf"
/obj/item/clothing/accessory/stripedgreenscarf
/obj/item/clothing/accessory/scarf/stripedgreen
name = "striped green scarf"
icon_state = "stripedgreenscarf"
/obj/item/clothing/accessory/stripedbluescarf
/obj/item/clothing/accessory/scarf/stripedblue
name = "striped blue scarf"
icon_state = "stripedbluescarf"
@@ -3,27 +3,27 @@
desc = "Slick black suit vest."
icon_state = "det_vest"
/obj/item/clothing/accessory/tan_jacket
/obj/item/clothing/accessory/jacket/
name = "tan suit jacket"
desc = "Cozy suit jacket."
icon_state = "tan_jacket"
/obj/item/clothing/accessory/charcoal_jacket
/obj/item/clothing/accessory/jacket/charcoal
name = "charcoal suit jacket"
desc = "Strict suit jacket."
icon_state = "charcoal_jacket"
/obj/item/clothing/accessory/navy_jacket
/obj/item/clothing/accessory/jacket/navy
name = "navy suit jacket"
desc = "Official suit jacket."
icon_state = "navy_jacket"
/obj/item/clothing/accessory/burgundy_jacket
/obj/item/clothing/accessory/jacket/burgundy
name = "burgundy suit jacket"
desc = "Expensive suit jacket."
icon_state = "burgundy_jacket"
/obj/item/clothing/accessory/checkered_jacket
/obj/item/clothing/accessory/jacket/checkered
name = "checkered suit jacket"
desc = "Lucky suit jacket."
icon_state = "checkered_jacket"
+2 -2
View File
@@ -101,7 +101,7 @@
icon_state = "internalaffairs"
item_state_slots = list(slot_r_hand_str = "ba_suit", slot_l_hand_str = "ba_suit")
rolled_sleeves = 0
starting_accessories = list(/obj/item/clothing/accessory/black)
starting_accessories = list(/obj/item/clothing/accessory/tie/black)
/obj/item/clothing/under/rank/internalaffairs/skirt
desc = "The plain, professional attire of an Internal Affairs Agent. The top button is sewn shut."
@@ -156,7 +156,7 @@
desc = "A classy suit."
icon_state = "bluesuit"
item_state_slots = list(slot_r_hand_str = "lawyer_blue", slot_l_hand_str = "lawyer_blue")
starting_accessories = list(/obj/item/clothing/accessory/red)
starting_accessories = list(/obj/item/clothing/accessory/tie/red)
/obj/item/clothing/under/lawyer/bluesuit/skirt
name = "blue skirt suit"
+5 -5
View File
@@ -73,7 +73,7 @@
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 0.9
rolled_sleeves = 0
starting_accessories = list(/obj/item/clothing/accessory/blue_clip)
starting_accessories = list(/obj/item/clothing/accessory/tie/blue_clip)
/*
/obj/item/clothing/under/det/verb/rollup()
@@ -89,13 +89,13 @@
/obj/item/clothing/under/det/grey
icon_state = "detective2"
desc = "A serious-looking tan dress shirt paired with freshly-pressed black slacks."
starting_accessories = list(/obj/item/clothing/accessory/red_long)
starting_accessories = list(/obj/item/clothing/accessory/tie/red_long)
/obj/item/clothing/under/det/black
icon_state = "detective3"
item_state_slots = list(slot_r_hand_str = "sl_suit", slot_l_hand_str = "sl_suit")
desc = "An immaculate white dress shirt, paired with a pair of dark grey dress pants, a red tie, and a charcoal vest."
starting_accessories = list(/obj/item/clothing/accessory/red_long, /obj/item/clothing/accessory/vest)
starting_accessories = list(/obj/item/clothing/accessory/tie/red_long, /obj/item/clothing/accessory/vest)
/obj/item/clothing/under/det/corporate
name = "detective's jumpsuit"
@@ -106,12 +106,12 @@
/obj/item/clothing/under/det/waistcoat
icon_state = "detective"
desc = "A rumpled white dress shirt paired with well-worn grey slacks, complete with a blue striped tie, faux-gold tie clip, and waistcoat."
starting_accessories = list(/obj/item/clothing/accessory/blue_clip, /obj/item/clothing/accessory/wcoat)
starting_accessories = list(/obj/item/clothing/accessory/tie/blue_clip, /obj/item/clothing/accessory/wcoat)
/obj/item/clothing/under/det/grey/waistcoat
icon_state = "detective2"
desc = "A serious-looking tan dress shirt paired with freshly-pressed black slacks, complete with a red striped tie and waistcoat."
starting_accessories = list(/obj/item/clothing/accessory/red_long, /obj/item/clothing/accessory/wcoat)
starting_accessories = list(/obj/item/clothing/accessory/tie/red_long, /obj/item/clothing/accessory/wcoat)
/obj/item/clothing/under/det/skirt
name = "detective's skirt"
+7 -7
View File
@@ -101,7 +101,7 @@
icon_state = "greensuit"
item_state_slots = list(slot_r_hand_str = "centcom", slot_l_hand_str = "centcom")
rolled_sleeves = 0
starting_accessories = list(/obj/item/clothing/accessory/darkgreen)
starting_accessories = list(/obj/item/clothing/accessory/tie/darkgreen)
/obj/item/clothing/under/gov/skirt
name = "Green formal skirt uniform"
@@ -161,7 +161,7 @@
icon_state = "gentlesuit"
item_state_slots = list(slot_r_hand_str = "grey", slot_l_hand_str = "grey")
rolled_sleeves = 0
starting_accessories = list(/obj/item/clothing/accessory/white, /obj/item/clothing/accessory/wcoat/gentleman)
starting_accessories = list(/obj/item/clothing/accessory/tie/white, /obj/item/clothing/accessory/wcoat/gentleman)
/obj/item/clothing/under/gentlesuit/skirt
name = "lady's suit"
@@ -472,7 +472,7 @@
desc = "A charcoal suit and red tie. Very professional."
icon_state = "charcoal_suit"
item_state_slots = list(slot_r_hand_str = "lawyer_black", slot_l_hand_str = "lawyer_black")
starting_accessories = list(/obj/item/clothing/accessory/navy, /obj/item/clothing/accessory/charcoal_jacket)
starting_accessories = list(/obj/item/clothing/accessory/tie/navy, /obj/item/clothing/accessory/jacket/charcoal)
/obj/item/clothing/under/suit_jacket/charcoal/skirt
name = "charcoal skirt"
@@ -483,7 +483,7 @@
desc = "A navy suit and red tie, intended for the station's finest."
icon_state = "navy_suit"
item_state_slots = list(slot_r_hand_str = "lawyer_blue", slot_l_hand_str = "lawyer_blue")
starting_accessories = list(/obj/item/clothing/accessory/red, /obj/item/clothing/accessory/navy_jacket)
starting_accessories = list(/obj/item/clothing/accessory/tie/red, /obj/item/clothing/accessory/jacket/navy)
/obj/item/clothing/under/suit_jacket/navy/skirt
name = "navy skirt"
@@ -494,7 +494,7 @@
desc = "A burgundy suit and black tie. Somewhat formal."
icon_state = "burgundy_suit"
item_state_slots = list(slot_r_hand_str = "lawyer_red", slot_l_hand_str = "lawyer_red")
starting_accessories = list(/obj/item/clothing/accessory/black, /obj/item/clothing/accessory/burgundy_jacket)
starting_accessories = list(/obj/item/clothing/accessory/tie/black, /obj/item/clothing/accessory/jacket/burgundy)
/obj/item/clothing/under/suit_jacket/burgundy/skirt
name = "burgundy skirt"
@@ -505,7 +505,7 @@
desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?"
icon_state = "checkered_suit"
item_state_slots = list(slot_r_hand_str = "lawyer_black", slot_l_hand_str = "lawyer_black")
starting_accessories = list(/obj/item/clothing/accessory/black, /obj/item/clothing/accessory/checkered_jacket)
starting_accessories = list(/obj/item/clothing/accessory/tie/black, /obj/item/clothing/accessory/jacket/checkered)
/obj/item/clothing/under/suit_jacket/checkered/skirt
name = "checkered skirt"
@@ -516,7 +516,7 @@
desc = "A tan suit. Smart, but casual."
icon_state = "tan_suit"
item_state_slots = list(slot_r_hand_str = "tan_suit", slot_l_hand_str = "tan_suit")
starting_accessories = list(/obj/item/clothing/accessory/yellow, /obj/item/clothing/accessory/tan_jacket)
starting_accessories = list(/obj/item/clothing/accessory/tie/yellow, /obj/item/clothing/accessory/jacket)
/obj/item/clothing/under/suit_jacket/tan/skirt
name = "tan skirt"
+2
View File
@@ -29,4 +29,6 @@ var/global/list/description_icons = list(
"power cell" = image(icon='icons/obj/power.dmi',icon_state="hcell"),
"device cell" = image(icon='icons/obj/power.dmi',icon_state="dcell"),
"weapon cell" = image(icon='icons/obj/power.dmi',icon_state="wcell"),
"hatchet" = image(icon='icons/obj/weapons.dmi',icon_state="hatchet"),
)
@@ -139,6 +139,9 @@
recipes += new/datum/stack_recipe("wooden bucket", /obj/item/weapon/reagent_containers/glass/bucket/wood, 2, time = 4, one_per_turf = 0, on_floor = 0)
recipes += new/datum/stack_recipe("coilgun stock", /obj/item/weapon/coilgun_assembly, 5)
/material/wood/log/generate_recipes()
return // Feel free to add log-only recipes here later if desired.
/material/cardboard/generate_recipes()
..()
recipes += new/datum/stack_recipe("box", /obj/item/weapon/storage/box)
+29
View File
@@ -203,6 +203,35 @@
icon_state = "sheet-wood"
default_type = "wood"
/obj/item/stack/material/log
name = "log"
icon_state = "sheet-log"
default_type = "log"
no_variants = FALSE
color = "#824B28"
max_amount = 25
w_class = ITEMSIZE_HUGE
/obj/item/stack/material/log/sif
name = "alien log"
color = "#0099cc"
/obj/item/stack/material/log/attackby(var/obj/item/W, var/mob/user)
if(!istype(W))
return ..()
if(W.sharp && W.edge && use(1))
to_chat(user, "<span class='notice'>You cut up a log into planks.</span>")
playsound(get_turf(src), 'sound/effects/woodcutting.ogg', 50, 1)
var/obj/item/stack/material/wood/existing_wood = locate() in user.loc
var/obj/item/stack/material/wood/new_wood = new(user.loc)
new_wood.amount = 2
if(existing_wood)
if(new_wood.transfer_to(existing_wood))
to_chat(user, "<span class='notice'>You add the newly-formed wood to the stack. It now contains [existing_wood.amount] planks.</span>")
else
return ..()
/obj/item/stack/material/cloth
name = "cloth"
icon_state = "sheet-cloth"
+12
View File
@@ -680,6 +680,18 @@ var/list/name_to_material
sheet_singular_name = "plank"
sheet_plural_name = "planks"
/material/wood/log
name = "log"
icon_base = "log"
stack_type = /obj/item/stack/material/log
sheet_singular_name = "log"
sheet_plural_name = "logs"
/material/wood/log/sif
name = "alien log"
icon_colour = "#0099cc" // Cyan-ish
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2)
/material/wood/holographic
name = "holowood"
display_name = "wood"
+1 -1
View File
@@ -54,7 +54,7 @@
if(46 to 50)
new/obj/item/clothing/under/chameleon(src)
for(var/i = 0, i < 7, i++)
new/obj/item/clothing/accessory/horrible(src)
new/obj/item/clothing/accessory/tie/horrible(src)
if(51 to 52) // Uncommon, 2% each
new/obj/item/weapon/melee/classic_baton(src)
if(53 to 54)
@@ -25,9 +25,9 @@
thing.reagents.remove_reagent(R.id, R.volume)
user.put_in_hands(F)
else if(istype(thing, /obj/machinery/power/supermatter/shard))
else if(istype(thing, /obj/machinery/power/supermatter))
var/obj/item/weapon/fuel_assembly/F = new(get_turf(src), "supermatter")
visible_message("<span class='notice'>\The [src] compresses the \[thing] into a new fuel assembly.</span>")
visible_message("<span class='notice'>\The [src] compresses \the [thing] into a new fuel assembly.</span>")
qdel(thing)
user.put_in_hands(F)
return 1
@@ -4,7 +4,7 @@
icon_state = "coilgun"
item_state = "coilgun"
icon = 'icons/obj/railgun.dmi'
// one_hand_penalty = 1
// one_handed_penalty = 1
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_ILLEGAL = 2, TECH_MAGNET = 4)
w_class = ITEMSIZE_LARGE
@@ -193,3 +193,66 @@
qdel(src)
return new projectile_type(src)
/obj/item/weapon/gun/magnetic/fuelrod
name = "Fuel-Rod Cannon"
desc = "A bulky weapon designed to fire reactor core fuel rods at absurd velocities... who thought this was a good idea?!"
description_antag = "This device is capable of firing reactor fuel assemblies, acquired from a R-UST fuel compressor and an appropriate fueltype. Be warned, Supermatter rods may have unforseen consequences."
description_fluff = "Morpheus' second entry into the arms manufacturing field, the Morpheus B.F.G, or 'Big Fuel-rod Gun' made some noise when it was initially sent to the market. By noise, they mean it was rapidly declared 'incredibly dangerous to the wielder and civilians within a mile radius alike'."
icon_state = "fuelrodgun"
item_state = "coilgun"
icon = 'icons/obj/railgun.dmi'
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 4)
w_class = ITEMSIZE_LARGE
removable_components = TRUE
gun_unreliable = 0
load_type = /obj/item/weapon/fuel_assembly
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod
power_cost = 500
/obj/item/weapon/gun/magnetic/fuelrod/consume_next_projectile()
if(!check_ammo() || !capacitor || capacitor.charge < power_cost)
return
if(loaded) //Safety.
if(istype(loaded, /obj/item/weapon/fuel_assembly))
var/obj/item/weapon/fuel_assembly/rod = loaded
if(rod.fuel_type == "composite" || rod.fuel_type == "deuterium") //Safety check for rods spawned in without a fueltype.
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod
else if(rod.fuel_type == "tritium")
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod/tritium
else if(rod.fuel_type == "phoron")
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod/phoron
else if(rod.fuel_type == "supermatter")
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod/supermatter
visible_message("<span class='danger'>The barrel of \the [src] glows a blinding white!</span>")
spawn(5)
visible_message("<span class='danger'>\The [src] begins to rattle, its acceleration chamber collapsing in on itself!</span>")
removable_components = FALSE
spawn(15)
audible_message("<span class='critical'>\The [src]'s power supply begins to overload as the device crumples!</span>") //Why are you still holding this?
playsound(loc, 'sound/effects/grillehit.ogg', 10, 1)
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
var/turf/T = get_turf(src)
sparks.set_up(2, 1, T)
sparks.start()
spawn(15)
visible_message("<span class='critical'>\The [src] explodes in a blinding white light!</span>")
explosion(src.loc, -1, 1, 2, 3)
qdel(src)
else
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod
use_ammo()
capacitor.use(power_cost)
update_icon()
return new projectile_type(src)
/obj/item/weapon/gun/magnetic/fuelrod/New()
cell = new /obj/item/weapon/cell/high
capacitor = new /obj/item/weapon/stock_parts/capacitor
. = ..()
@@ -67,9 +67,9 @@
w_class = ITEMSIZE_NO_CONTAINER
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_hand_penalty=1, burst_accuracy=null, dispersion=null),
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_hand_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
list(mode_name="long bursts", burst=6, fire_delay=null, move_delay=10, one_hand_penalty=2, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)),
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_handed_penalty=1, burst_accuracy=null, dispersion=null),
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
list(mode_name="long bursts", burst=6, fire_delay=null, move_delay=10, one_handed_penalty=2, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)),
)
/obj/item/weapon/gun/magnetic/railgun/automatic/examine(var/mob/user)
@@ -94,8 +94,8 @@
fire_sound = 'sound/weapons/rapidslice.ogg'
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_hand_penalty=1, burst_accuracy=null, dispersion=null),
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_hand_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_handed_penalty=1, burst_accuracy=null, dispersion=null),
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
)
/obj/item/weapon/gun/magnetic/railgun/flechette/out_of_ammo()
+2 -2
View File
@@ -333,8 +333,8 @@
else if(!bumped)
tracer_effect(effect_transform)
if(incendiary >= 2)
var/trail_volume = (flammability * 0.10)
if(incendiary >= 2 && !istype(src.loc, /turf/simulated/wall))
var/trail_volume = (flammability * 0.20)
new /obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(src.loc, trail_volume, src.dir)
if(!hitscan)
@@ -18,4 +18,100 @@
name = "flechette"
icon_state = "flechette"
damage = 20
armor_penetration = 100
armor_penetration = 100
/obj/item/projectile/bullet/magnetic/fuelrod
name = "fuel rod"
icon_state = "fuel-deuterium"
damage = 30
stun = 1
weaken = 0
agony = 30
incendiary = 1
flammability = 0 //Deuterium and Tritium are both held in water, but the object moving so quickly will ignite the target.
penetrating = 2
embed_chance = 0
armor_penetration = 40
kill_count = 20
var/searing = 0 //Does this fuelrod ignore shields?
var/detonate_travel = 0 //Will this fuelrod explode when it reaches maximum distance?
var/detonate_mob = 0 //Will this fuelrod explode when it hits a mob?
var/energetic_impact = 0 //Does this fuelrod cause a bright flash on impact with a mob?
/obj/item/projectile/bullet/magnetic/fuelrod/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) //Future-proofing. Special effects for impact.
if(istype(target,/mob/living))
var/mob/living/V = target
if(detonate_mob)
if(V.loc)
explosion(V.loc, -1, -1, 2, 3)
if(energetic_impact)
var/eye_coverage = 0
for(var/mob/living/carbon/M in viewers(world.view, location))
eye_coverage = 0
if(iscarbon(M))
eye_coverage = M.eyecheck()
if(eye_coverage < 2)
M.flash_eyes()
M.Stun(2)
M.Weaken(10)
if(searing)
if(blocked)
blocked = 0
return ..(target, blocked, def_zone)
/obj/item/projectile/bullet/magnetic/fuelrod/on_impact(var/atom/A) //Future-proofing, again. In the event new fuel rods are introduced, and have special effects for when they stop flying.
if(src.loc)
if(detonate_travel && detonate_mob)
visible_message("<span class='warning'>\The [src] shatters in a violent explosion!</span>")
explosion(src.loc, 1, 1, 3, 4)
else if(detonate_travel)
visible_message("<span class='warning'>\The [src] explodes in a shower of embers!</span>")
explosion(src.loc, -1, 1, 2, 3)
..(A)
/obj/item/projectile/bullet/magnetic/fuelrod/tritium
icon_state = "fuel-tritium"
damage = 40
flammability = -1
armor_penetration = 50
penetrating = 3
/obj/item/projectile/bullet/magnetic/fuelrod/phoron
name = "blazing fuel rod"
icon_state = "fuel-phoron"
damage = 35
incendiary = 2
flammability = 2
armor_penetration = 60
penetrating = 5
irradiate = 20
detonate_mob = 1
/obj/item/projectile/bullet/magnetic/fuelrod/supermatter
name = "painfully incandescent fuel rod"
icon_state = "fuel-supermatter"
damage = 15
incendiary = 2
flammability = 4
weaken = 2
armor_penetration = 100
penetrating = 100 //Theoretically, this shouldn't stop flying for a while, unless someone lines it up with a wall or fires it into a mountain.
irradiate = 120
kill_count = 75
searing = 1
detonate_travel = 1
detonate_mob = 1
energetic_impact = 1
/obj/item/projectile/bullet/magnetic/fuelrod/supermatter/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) //You cannot touch the supermatter without disentigrating. Assumedly, this is true for condensed rods of it flying at relativistic speeds.
if(istype(target,/turf/simulated/wall) || istype(target,/mob/living))
target.visible_message("<span class='danger'>The [src] burns a perfect hole through \the [target] with a blinding flash!</span>")
playsound(target.loc, 'sound/effects/teleport.ogg', 40, 0)
return ..(target, blocked, def_zone)
/obj/item/projectile/bullet/magnetic/fuelrod/supermatter/check_penetrate()
return 1
@@ -96,7 +96,6 @@
reagent_state = LIQUID
color = "#0064C877"
metabolism = REM * 10
mrate_static = TRUE
glass_name = "water"
glass_desc = "The father of all refreshments."
@@ -16,7 +16,6 @@
reagent_state = SOLID
color = "#1C1300"
ingest_met = REM * 5
mrate_static = TRUE
/datum/reagent/carbon/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
@@ -74,8 +73,6 @@
var/targ_temp = 310
var/halluci = 0
mrate_static = TRUE
glass_name = "ethanol"
glass_desc = "A well-known alcohol with a variety of applications."
@@ -7,7 +7,6 @@
taste_mult = 4
reagent_state = SOLID
metabolism = REM * 4
mrate_static = TRUE
var/nutriment_factor = 30 // Per unit
var/injectable = 0
color = "#664330"
@@ -9,7 +9,6 @@
color = "#00BFFF"
overdose = REAGENTS_OVERDOSE * 2
metabolism = REM * 0.5
mrate_static = TRUE
scannable = 1
/datum/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
@@ -141,7 +140,6 @@
taste_description = "bitterness"
reagent_state = LIQUID
color = "#0040FF"
mrate_static = TRUE //Until it's not crazy strong, at least
overdose = REAGENTS_OVERDOSE * 0.5
scannable = 1
+7
View File
@@ -639,6 +639,13 @@ other types of metals and chemistry for reagents).
build_path = /obj/item/ammo_casing/chemdart
sort_string = "TACAF"
/datum/design/item/weapon/fuelrod
id = "fuelrod_gun"
req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 5)
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "gold" = 500, "silver" = 500, "uranium" = 1000, "phoron" = 3000, "diamond" = 1000)
build_path = /obj/item/weapon/gun/magnetic/fuelrod
sort_string = "TACBA"
/datum/design/item/weapon/flora_gun
id = "flora_gun"
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
@@ -6,10 +6,15 @@
name = "Crystal"
icon = 'icons/obj/mining.dmi'
icon_state = "crystal"
density = TRUE
anchored = TRUE
/obj/machinery/crystal/New()
if(prob(50))
icon_state = "crystal2"
set_light(3, 3, "#CC00CC")
else
set_light(3, 3, "#33CC33")
//large finds
/*