diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index 044b2264ced..fcc2d0c91b9 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -56,7 +56,7 @@ var/datum/category_collection/underwear/global_underwear = new()
//Backpacks
var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag")
-var/global/list/pdachoicelist = list("Default", "Slim", "Old")
+var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged")
var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg)
// Visual nets
diff --git a/code/datums/supplypacks/costumes.dm b/code/datums/supplypacks/costumes.dm
index 321c0fde0e4..e9a1365b7ba 100644
--- a/code/datums/supplypacks/costumes.dm
+++ b/code/datums/supplypacks/costumes.dm
@@ -156,7 +156,7 @@ datum/supply_packs/costumes/witch
/obj/item/clothing/under/wedding/bride_blue,
/obj/item/clothing/under/wedding/bride_red,
/obj/item/clothing/under/wedding/bride_white,
- /obj/item/clothing/under/sundress,
+ /obj/item/clothing/under/dress/sundress,
/obj/item/clothing/under/dress/dress_green,
/obj/item/clothing/under/dress/dress_pink,
/obj/item/clothing/under/dress/dress_orange,
diff --git a/code/datums/supplypacks/robotics.dm b/code/datums/supplypacks/robotics.dm
index c6c07b2d5d4..d4efac5a1ee 100644
--- a/code/datums/supplypacks/robotics.dm
+++ b/code/datums/supplypacks/robotics.dm
@@ -69,9 +69,10 @@
access = access_robotics
/datum/supply_packs/robotics/robolimbs/hephaestus
- name = "Hephaistos robolimb blueprints"
+ name = "Hephaestus robolimb blueprints"
contains = list(/obj/item/weapon/disk/limb/hephaestus)
- containertype = /obj/structure/closet/crate/secure/gear
+ cost = 35
+ containertype = /obj/structure/closet/crate/secure/science
containername = "Robolimb blueprints (Hephaestus)"
access = access_robotics
diff --git a/code/datums/uplink/announcements.dm b/code/datums/uplink/announcements.dm
index 2057a987eaa..86a9567a8d0 100644
--- a/code/datums/uplink/announcements.dm
+++ b/code/datums/uplink/announcements.dm
@@ -11,13 +11,9 @@
log_and_message_admins("has triggered a falsified [src]", user)
/datum/uplink_item/abstract/announcements/fake_centcom
- item_cost = DEFAULT_TELECRYSTAL_AMOUNT / 3
-
-/datum/uplink_item/abstract/announcements/fake_centcom/New()
- ..()
- spawn(2)
- name = "[command_name()] Update Announcement"
- desc = "Causes a falsified [command_name()] Update. Triggers immediately after supplying additional data."
+ name = "Command Update Announcement"
+ desc = "Causes a falsified Command Update. Triggers immediately after supplying additional data."
+ item_cost = 40
/datum/uplink_item/abstract/announcements/fake_centcom/extra_args(var/mob/user)
var/title = sanitize(input("Enter your announcement title.", "Announcement Title") as null|text)
diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm
index 47b82b82ac7..44d32bfecb5 100644
--- a/code/game/antagonist/antagonist.dm
+++ b/code/game/antagonist/antagonist.dm
@@ -107,6 +107,7 @@
candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: Only ghosts may join as this role! They have been removed from the draft.")
else if(config.use_age_restriction_for_antags && player.current.client.player_age < minimum_player_age)
+ candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: Is only [player.current.client.player_age] day\s old, has to be [minimum_player_age] day\s!")
else if(istype(player.current, /mob/living/voice))
candidates -= player
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 17c3b58763a..1c3d957b989 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -117,7 +117,7 @@
clonemind.transfer_to(H)
H.ckey = R.ckey
- H << "Consciousness slowly creeps over you as your body regenerates.
So this is what cloning feels like?"
+ to_chat(H, "Consciousness slowly creeps over you as your body regenerates.
Your recent memories are fuzzy, and it's hard to remember anything from today...
So this is what cloning feels like?")
// -- Mode/mind specific stuff goes here
callHook("clone", list(H))
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 3ecb7c7b2db..b5c0df71270 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -226,7 +226,7 @@
delete_me = 1
/obj/effect/landmark/costume/cutewitch/New()
- new /obj/item/clothing/under/sundress(src.loc)
+ new /obj/item/clothing/under/dress/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/weapon/staff/broom(src.loc)
delete_me = 1
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index a2310cda923..1450fa94ce5 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -113,6 +113,7 @@
a hostile enviroment."
icon = 'icons/obj/cryobag.dmi'
icon_state = "bodybag_folded"
+ item_state = "bodybag_cryo_folded"
origin_tech = list(TECH_BIO = 4)
/obj/item/bodybag/cryobag/attack_self(mob/user)
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index e641d1bcc49..ed0056577b3 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -419,6 +419,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(1) icon = 'icons/obj/pda.dmi'
if(2) icon = 'icons/obj/pda_slim.dmi'
if(3) icon = 'icons/obj/pda_old.dmi'
+ if(4) icon = 'icons/obj/pda_rugged.dmi'
else
icon = 'icons/obj/pda_old.dmi'
log_debug("Invalid switch for PDA, defaulting to old PDA icons. [pdachoice] chosen.")
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 20abf3401be..35f41730dfe 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -45,8 +45,6 @@
icon = 'icons/obj/janitor.dmi'
icon_state = "lightreplacer0"
- item_state = "electronic"
-
flags = CONDUCT
slot_flags = SLOT_BELT
origin_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 2)
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 0ce2f405ff7..53d647a4f0b 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -2,7 +2,6 @@
name = "megaphone"
desc = "A device used to project your voice. Loudly."
icon_state = "megaphone"
- item_state = "radio"
w_class = ITEMSIZE_SMALL
flags = CONDUCT
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index 497ad68f09a..910d983e22d 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -4,7 +4,6 @@
name = "power sink"
desc = "A nulling power sink which drains energy from electrical systems."
icon_state = "powersink0"
- item_state = "electronic"
w_class = ITEMSIZE_LARGE
flags = CONDUCT
throwforce = 5
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 56229e6cf39..243d301289b 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -243,7 +243,6 @@ REAGENT SCANNER
name = "mass spectrometer"
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
icon_state = "spectrometer"
- item_state = "analyzer"
w_class = ITEMSIZE_SMALL
flags = CONDUCT | OPENCONTAINER
slot_flags = SLOT_BELT
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 28f3a1def6a..16e9daf9cc3 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -4,34 +4,20 @@
Cyborg Spec Items
***********************************************************************/
//Might want to move this into several files later but for now it works here
-// Consider changing this to a child of the stun baton class. ~Z
-/obj/item/borg/stun
+
+/obj/item/weapon/melee/baton/robot/arm
name = "electrified arm"
icon = 'icons/obj/decals.dmi'
icon_state = "shock"
-/obj/item/borg/stun/apply_hit_effect(mob/living/M, mob/living/silicon/robot/user, var/hit_zone)
- // How the Hell.
- if(!istype(user))
- var/mob/living/temp = user
- if(istype(temp))
- temp.drop_from_inventory(src)
- qdel(src)
- return
+ hitcost = 750
+ agonyforce = 70
- user.visible_message("\The [user] has prodded \the [M] with \a [src]!")
-
- if(!user.cell || !user.cell.checked_use(1250)) //Slightly more than a baton.
- return
-
- playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
-
- M.apply_effect(5, STUTTER)
- M.stun_effect_act(0, 70, check_zone(hit_zone), src)
-
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- H.forcesay(hit_appends)
+/obj/item/weapon/melee/baton/robot/arm/update_icon()
+ if(status)
+ set_light(1.5, 1, lightcolor)
+ else
+ set_light(0)
/obj/item/borg/overdrive
name = "overdrive"
diff --git a/code/game/objects/items/weapons/autopsy.dm b/code/game/objects/items/weapons/autopsy.dm
index 302ac99d97f..d9606d28d24 100644
--- a/code/game/objects/items/weapons/autopsy.dm
+++ b/code/game/objects/items/weapons/autopsy.dm
@@ -7,6 +7,7 @@
desc = "Extracts information on wounds."
icon = 'icons/obj/autopsy_scanner.dmi'
icon_state = ""
+ item_state = "autopsy_scanner"
flags = CONDUCT
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index c93f68a82a0..a4a1f8d97a3 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -45,7 +45,7 @@
/obj/structure/closet/chefcloset/New()
..()
- new /obj/item/clothing/under/sundress(src)
+ new /obj/item/clothing/under/dress/sundress(src)
new /obj/item/clothing/under/waiter(src)
new /obj/item/clothing/under/waiter(src)
new /obj/item/device/radio/headset/headset_service(src)
diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index 57d78e21f17..7fd68c305ac 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -256,7 +256,6 @@
name = "inflatable barrier box"
desc = "Contains inflatable walls and doors."
icon_state = "inf_box"
- item_state = "syringe_kit"
w_class = ITEMSIZE_NORMAL
max_storage_space = ITEMSIZE_COST_NORMAL * 7
can_hold = list(/obj/item/inflatable)
diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm
index 79adec9afcd..f8bd40f0769 100644
--- a/code/modules/client/preference_setup/general/04_equipment.dm
+++ b/code/modules/client/preference_setup/general/04_equipment.dm
@@ -38,7 +38,7 @@
pref.backbag = 1 //Same as above
character.backbag = pref.backbag
- if(pref.pdachoice > 3 || pref.pdachoice < 1)
+ if(pref.pdachoice > 4 || pref.pdachoice < 1)
pref.pdachoice = 1
character.pdachoice = pref.pdachoice
diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm
index 9547f92a5f2..4de90fed9f8 100644
--- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm
@@ -153,4 +153,12 @@
/datum/gear/shoes/dress/white
display_name = "shoes, dress white"
- path = /obj/item/clothing/shoes/dress/white
\ No newline at end of file
+ path = /obj/item/clothing/shoes/dress/white
+
+/datum/gear/shoes/heels
+ display_name = "high heels"
+ path = /obj/item/clothing/shoes/heels
+
+/datum/gear/shoes/heels/New()
+ ..()
+ gear_tweaks = list(gear_tweak_free_color_choice)
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm
index 2514a41b3e7..de8e06419e8 100644
--- a/code/modules/client/preference_setup/loadout/loadout_suit.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm
@@ -348,3 +348,14 @@
services[initial(service.name)] = service
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(services))
+/datum/gear/suit/miscellaneous/kimono
+ display_name = "kimono"
+ path = /obj/item/clothing/suit/kimono
+
+/datum/gear/suit/miscellaneous/kimono/New()
+ ..()
+ gear_tweaks = list(gear_tweak_free_color_choice)
+
+/datum/gear/suit/miscellaneous/redandblackjacket
+ display_name = "red and black jacket"
+ path = /obj/item/clothing/suit/storage/toggle/redandblackjacket
\ No newline at end of file
diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm
index 518b11a5217..0b64950f05c 100644
--- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm
+++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm
@@ -273,11 +273,11 @@
/datum/gear/uniform/sundress
display_name = "sundress"
- path = /obj/item/clothing/under/sundress
+ path = /obj/item/clothing/under/dress/sundress
/datum/gear/uniform/sundress/white
display_name = "sundress, white"
- path = /obj/item/clothing/under/sundress_white
+ path = /obj/item/clothing/under/dress/sundress/white
/datum/gear/uniform/dress_fire
display_name = "flame dress"
@@ -444,4 +444,12 @@
/datum/gear/uniform/brandsuit/hephaestus
display_name = "jumpsuit, hephaestus"
- path = /obj/item/clothing/under/hephaestus
\ No newline at end of file
+ path = /obj/item/clothing/under/hephaestus
+
+/datum/gear/uniform/yoga
+ display_name = "yoga pants"
+ path = /obj/item/clothing/under/pants/yoga
+
+/datum/gear/uniform/yoga/New()
+ ..()
+ gear_tweaks = list(gear_tweak_free_color_choice)
\ No newline at end of file
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 285e20c739c..188b98cdbb2 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -525,6 +525,10 @@
var/rolled_down = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled
var/rolled_sleeves = -1 //0 = unrolled, 1 = rolled, -1 = cannot be toggled
sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/uniform.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/uniform.dmi',
+ "Tajaran" = 'icons/mob/species/tajaran/uniforms/uniform.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/uniform.dmi',
"Teshari" = 'icons/mob/species/seromi/uniform.dmi',
"Vox" = 'icons/mob/species/vox/uniform.dmi'
)
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index eaf5a34135c..292a2b5c3f5 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -134,3 +134,8 @@
desc = "A pair of wide shoes with thick soles. Designed for skating."
icon_state = "skatershoe"
item_state_slots = list(slot_r_hand_str = "skaterheld", slot_l_hand_str = "skaterheld")
+
+/obj/item/clothing/shoes/heels
+ name = "high heels"
+ desc = "A pair of high-heeled shoes. Fancy!"
+ icon_state = "heels"
\ No newline at end of file
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 46f60382dc1..956bd656fcd 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -265,6 +265,11 @@
body_parts_covered = UPPER_TORSO|ARMS
flags_inv = HIDETIE|HIDEHOLSTER
+obj/item/clothing/suit/kimono
+ name = "kimono"
+ desc = "A traditional Japanese kimono."
+ icon_state = "kimono"
+
/*
* coats
*/
@@ -616,6 +621,14 @@
icon_open = "smw_hoodie_open"
icon_closed = "smw_hoodie"
+/obj/item/clothing/suit/storage/toggle/redandblackjacket
+ name = "red and black jacket"
+ desc = "A cool red and black jacket to keep you stylish and cozy."
+ icon_state = "redandblackjacket"
+ icon_open = "redandblackjacket_open"
+ icon_closed = "redandblackjacket"
+ flags_inv = HIDEHOLSTER
+
/obj/item/clothing/suit/whitedress
name = "white dress"
desc = "A fancy white dress."
@@ -950,4 +963,5 @@
icon_closed = "suitjacket_green"
blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS
- flags_inv = HIDEHOLSTER
\ No newline at end of file
+ flags_inv = HIDEHOLSTER
+
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 7452b35aab6..4a4835f2bcd 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -1,3 +1,11 @@
+/obj/item/clothing/under/color
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/color.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/color.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/color.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/color.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/color.dmi'
+ )
/obj/item/clothing/under/color/black
name = "black jumpsuit"
icon_state = "black"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index c1039e5f603..9718427907c 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -255,6 +255,13 @@
*/
/obj/item/clothing/under/dress
body_parts_covered = UPPER_TORSO|LOWER_TORSO
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/dresses.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/dresses.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/dresses.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/dresses.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/dresses.dmi'
+ )
/obj/item/clothing/under/dress/blacktango
name = "black tango dress"
@@ -344,8 +351,16 @@
/*
* wedding stuff
*/
-/obj/item/clothing/under/wedding/
+/obj/item/clothing/under/wedding
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/dresses.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/dresses.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/dresses.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/dresses.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/dresses.dmi'
+ )
+
/obj/item/clothing/under/wedding/bride_orange
name = "orange wedding dress"
@@ -378,13 +393,13 @@
flags_inv = HIDESHOES
body_parts_covered = UPPER_TORSO|LOWER_TORSO
-/obj/item/clothing/under/sundress
+/obj/item/clothing/under/dress/sundress
name = "sundress"
desc = "Makes you want to frolic in a field of daisies."
icon_state = "sundress"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
-/obj/item/clothing/under/sundress_white
+/obj/item/clothing/under/dress/sundress/white
name = "white sundress"
desc = "A white sundress decorated with purple lilies."
icon_state = "sundress_white"
@@ -459,6 +474,13 @@
/obj/item/clothing/under/cheongsam
name = "white cheongsam"
desc = "It is a white cheongsam dress."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/dresses.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/dresses.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/dresses.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/dresses.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/dresses.dmi'
+ )
icon_state = "mai_yang"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS
@@ -486,6 +508,13 @@
/obj/item/clothing/under/croptop
name = "crop top"
desc = "A shirt that has had the top cropped. This one is NT sponsored."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/dresses.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/dresses.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/dresses.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/dresses.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/dresses.dmi'
+ )
icon_state = "croptop"
item_state_slots = list(slot_r_hand_str = "grey", slot_l_hand_str = "grey")
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index 3d35b489d6a..a36e126b144 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -2,6 +2,13 @@
/obj/item/clothing/under/pants
name = "jeans"
desc = "A nondescript pair of tough blue jeans."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/pants.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/pants.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/pants.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/pants.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/pants.dmi'
+ )
icon_state = "jeans"
gender = PLURAL
body_parts_covered = LOWER_TORSO|LEGS
@@ -117,6 +124,11 @@
desc = "A pair of sexy, tight black leather chaps."
icon_state = "chapsbl"
+/obj/item/clothing/under/pants/yoga
+ name = "yoga pants"
+ desc = "A pair of tight-fitting yoga pants for those lazy days."
+ icon_state = "yoga"
+
/*
* Baggy Pants
*/
diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm
index 81b5b2fe241..7df4f018d26 100644
--- a/code/modules/clothing/under/shorts.dm
+++ b/code/modules/clothing/under/shorts.dm
@@ -2,6 +2,13 @@
/obj/item/clothing/under/shorts
name = "athletic shorts"
desc = "95% Polyester, 5% Spandex!"
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/pants.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/pants.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/pants.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/pants.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/pants.dmi'
+ )
gender = PLURAL
body_parts_covered = LOWER_TORSO
@@ -91,16 +98,18 @@
name = "khaki short shorts"
icon_state = "khaki_shorts_f"
-/obj/item/clothing/under/shorts/loincloth
- name = "loincloth"
- desc = "A piece of cloth wrapped around the waist."
- icon_state = "loincloth"
-
//Argh, skirts be below this line -> ------------------------------
/obj/item/clothing/under/skirt
name = "short black skirt"
desc = "A skirt that is a shiny black."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/dresses.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/dresses.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/dresses.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/dresses.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/dresses.dmi'
+ )
icon_state = "skirt_short_black"
body_parts_covered = LOWER_TORSO
rolled_sleeves = -1
@@ -130,6 +139,11 @@
desc = "A skirt that is swept to one side."
icon_state = "skirt_swept"
+/obj/item/clothing/under/skirt/loincloth
+ name = "loincloth"
+ desc = "A piece of cloth wrapped around the waist."
+ icon_state = "loincloth"
+
/obj/item/clothing/under/skirt/outfit
name = "black skirt"
desc = "A black skirt, very fancy!"
@@ -154,6 +168,8 @@
icon_state = "plaid_purple"
item_state_slots = list(slot_r_hand_str = "purple", slot_l_hand_str = "purple")
+//Job skirts
+
/obj/item/clothing/under/rank/cargo/skirt
name = "quartermaster's jumpskirt"
desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper."
diff --git a/code/modules/clothing/under/solgov.dm b/code/modules/clothing/under/solgov.dm
index eb3ed28a85a..c40dc146754 100644
--- a/code/modules/clothing/under/solgov.dm
+++ b/code/modules/clothing/under/solgov.dm
@@ -4,6 +4,12 @@
/obj/item/clothing/under/pt
name = "pt uniform"
desc = "Shorts! Shirt! Miami! Sexy!"
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/military.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/military.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/military.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/military.dmi'
+ )
icon_state = "miami"
worn_state = "miami"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
@@ -34,6 +40,13 @@
/obj/item/clothing/under/utility
name = "utility uniform"
desc = "A comfortable turtleneck and black utility trousers."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/military.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/military.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/military.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/military.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/military.dmi'
+ )
icon_state = "blackutility"
worn_state = "blackutility"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
@@ -94,7 +107,6 @@
icon_state = "blackutility_com"
worn_state = "blackutility_com"
-
/obj/item/clothing/under/utility/fleet
name = "fleet coveralls"
desc = "The utility uniform of the SCG Fleet, made from an insulated material."
@@ -133,7 +145,6 @@
icon_state = "navyutility_com"
worn_state = "navyutility_com"
-
/obj/item/clothing/under/utility/marine
name = "marine fatigues"
desc = "The utility uniform of the SCG Marine Corps, made from durable material."
@@ -188,6 +199,13 @@
/obj/item/clothing/under/service
name = "service uniform"
desc = "A service uniform of some kind."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/military.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/military.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/military.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/military.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/military.dmi'
+ )
icon_state = "whiteservice"
worn_state = "whiteservice"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
@@ -212,33 +230,40 @@
worn_state = "greenservice_com"
//Dress
-/obj/item/clothing/under/dress/plain
+/obj/item/clothing/under/mildress
name = "dress uniform"
desc = "A dress uniform of some kind."
+ sprite_sheets = list(
+ "Human" = 'icons/mob/uniforms/military.dmi',
+ "Skrell" = 'icons/mob/species/skrell/uniforms/military.dmi',
+ "Tajara" = 'icons/mob/species/tajaran/uniforms/military.dmi',
+ "Unathi" = 'icons/mob/species/unathi/uniforms/military.dmi',
+ "Diona" = 'icons/mob/species/diona/uniforms/military.dmi'
+ )
icon_state = "greydress"
worn_state = "greydress"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 0.9
-/obj/item/clothing/under/dress/expeditionary
+/obj/item/clothing/under/mildress/expeditionary
name = "\improper SifGuard dress uniform"
desc = "The dress uniform of the Sif Homeguard Corps in silver trim."
icon_state = "greydress"
worn_state = "greydress"
-/obj/item/clothing/under/dress/expeditionary/command
+/obj/item/clothing/under/mildress/expeditionary/command
name = "\improper SifGuard command dress uniform"
desc = "The dress uniform of the Sif Homeguard Corps in gold trim."
icon_state = "greydress_com"
worn_state = "greydress_com"
-/obj/item/clothing/under/dress/marine
+/obj/item/clothing/under/mildress/marine
name = "marine dress uniform"
desc = "The dress uniform of the SCG Marine Corps, class given form."
icon_state = "blackdress"
worn_state = "blackdress"
-/obj/item/clothing/under/dress/marine/command
+/obj/item/clothing/under/mildress/marine/command
name = "marine command dress uniform"
desc = "The dress uniform of the SCG Marine Corps, even classier in gold."
icon_state = "blackdress_com"
diff --git a/code/modules/examine/descriptions/smokeables.dm b/code/modules/examine/descriptions/smokeables.dm
index 957090b8e34..edf9b8b7f71 100644
--- a/code/modules/examine/descriptions/smokeables.dm
+++ b/code/modules/examine/descriptions/smokeables.dm
@@ -11,7 +11,7 @@
description_fluff = "Lucky Stars were created on Venus by a researcher seeking to make a good quality cigarette from pod-based tobacco plants. The researcher only managed to make these, but made quite a profit off of them when she started her company."
/obj/item/weapon/storage/fancy/cigarettes/jerichos
- description_fluff = "Hephaistos Industries ex-military employees once decided to make a cigarette that was easy to light and had a waterproof case, specifically tailored for soldiers. They created Jerichos. Jerichos are known for their Hickory smoke and warm feeling in your lungs. They are loved by soldiers and people employed in para-military outfits."
+ description_fluff = "Hephaestus Industries ex-military employees once decided to make a cigarette that was easy to light and had a waterproof case, specifically tailored for soldiers. They created Jerichos. Jerichos are known for their Hickory smoke and warm feeling in your lungs. They are loved by soldiers and people employed in para-military outfits."
/obj/item/weapon/storage/fancy/cigarettes/menthols
description_fluff = "The Temperamento Menthol Company is a large cigarette company based in Mars. They have been around since the very dawn of Human colonization and have remained a favorite for those seeking a more.. numbing cigarette.
\
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index c225e638382..34f5f44015e 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -39,7 +39,7 @@
var/list/all_underwear_metadata = list()
var/list/hide_underwear = list()
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
- var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old.
+ var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, Old, or Rugged.
// General information
var/home_system = ""
diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm
index 2707b2bac77..ac9cb9d9c7a 100644
--- a/code/modules/mob/living/carbon/human/species/station/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station.dm
@@ -18,7 +18,6 @@
spawn_flags = SPECIES_CAN_JOIN
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
-
/datum/species/human/get_bodytype(var/mob/living/carbon/human/H)
return "Human"
@@ -32,9 +31,11 @@
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite/sharp)
primitive_form = "Stok"
darksight = 3
-// gluttonous = 1 // Vorestation edit. Redundant feature.
+ ambiguous_genders = TRUE
+ //gluttonous = 1 //VOREStation Edit - Redundant
slowdown = 0.5
- brute_mod = 0.8
+ brute_mod = 0.9
+ burn_mod = 0.9
num_alternate_languages = 3
secondary_langs = list(LANGUAGE_UNATHI)
name_language = LANGUAGE_UNATHI
@@ -95,6 +96,7 @@
slowdown = -0.5
brute_mod = 1.15
burn_mod = 1.15
+ flash_mod = 1.1
metabolic_rate = 1.1
gluttonous = 1
num_alternate_languages = 3
@@ -110,6 +112,7 @@
and have accelerated the fledgling culture into the interstellar age. Their history is full of war and highly fractious \
governments, something that permeates even to today's times. They prefer colder, tundra-like climates, much like their \
home worlds and speak a variety of languages, especially Siik and Akhani."
+
cold_level_1 = 200 //Default 260
cold_level_2 = 140 //Default 200
cold_level_3 = 80 //Default 120
@@ -136,6 +139,15 @@
)
//cold_discomfort_level = 275 //VOREStation Removal
+ has_organ = list( //No appendix.
+ O_HEART = /obj/item/organ/internal/heart,
+ O_LUNGS = /obj/item/organ/internal/lungs,
+ O_LIVER = /obj/item/organ/internal/liver,
+ O_KIDNEYS = /obj/item/organ/internal/kidneys,
+ O_BRAIN = /obj/item/organ/internal/brain,
+ O_EYES = /obj/item/organ/internal/eyes
+ )
+
/datum/species/tajaran/equip_survival_gear(var/mob/living/carbon/human/H)
..()
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(H),slot_shoes)
@@ -158,9 +170,10 @@
health_hud_intensity = 2
min_age = 19
- max_age = 80
+ max_age = 130
darksight = 4
+ flash_mod = 1.2
ambiguous_genders = TRUE
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index d8434e6e893..edf9739f0db 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -257,19 +257,11 @@ var/global/list/damage_icon_parts = list()
var/obj/item/organ/external/part = organs_by_name[organ_tag]
if(isnull(part) || part.is_stump())
icon_key += "0"
- else if(part.robotic >= ORGAN_ROBOT)
- icon_key += "2[part.model ? "-[part.model]": ""]"
- robolimb_count++
- if(part.organ_tag == BP_HEAD || part.organ_tag == BP_TORSO || part.organ_tag == BP_GROIN)
- robobody_count ++
- else if(part.status & ORGAN_DEAD)
- icon_key += "3"
- else
- icon_key += "1"
+ continue
if(part)
icon_key += "[part.species.get_race_key(part.owner)]"
icon_key += "[part.dna.GetUIState(DNA_UI_GENDER)]"
- icon_key += "[part.dna.GetUIValue(DNA_UI_SKIN_TONE)]"
+ icon_key += "[part.s_tone]"
if(part.s_col && part.s_col.len >= 3)
icon_key += "[rgb(part.s_col[1],part.s_col[2],part.s_col[3])]"
if(part.body_hair && part.h_col && part.h_col.len >= 3)
@@ -277,6 +269,13 @@ var/global/list/damage_icon_parts = list()
else
icon_key += "#000000"
+ if(part.robotic >= ORGAN_ROBOT)
+ icon_key += "2[part.model ? "-[part.model]": ""]"
+ else if(part.status & ORGAN_DEAD)
+ icon_key += "3"
+ else
+ icon_key += "1"
+
icon_key = "[icon_key][husk ? 1 : 0][fat ? 1 : 0][hulk ? 1 : 0][skeleton ? 1 : 0]"
var/icon/base_icon
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
index c100c625fb9..adb40102f13 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm
@@ -114,7 +114,7 @@
return
var/deathtime = world.time - src.timeofdeath
- var/deathtimeminutes = round(deathtime / 600)
+ var/deathtimeminutes = round(deathtime / 300)
var/pluralcheck = "minute"
if(deathtimeminutes == 0)
pluralcheck = ""
@@ -122,11 +122,11 @@
pluralcheck = " [deathtimeminutes] minute and"
else if(deathtimeminutes > 1)
pluralcheck = " [deathtimeminutes] minutes and"
- var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10,1)
+ var/deathtimeseconds = round((deathtime - deathtimeminutes * 300) / 10,1)
- if (deathtime < 600)
+ if (deathtime < 3000)
usr << "You have been dead for[pluralcheck] [deathtimeseconds] seconds."
- usr << "You must wait 1 minute to respawn as a drone!"
+ usr << "You must wait 5 minutes to respawn as a drone!"
return
var/list/all_fabricators = list()
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 32cbb6c685c..b391168e7e6 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -360,7 +360,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/device/lightreplacer(src)
src.modules += new /obj/item/device/pipe_painter(src)
src.modules += new /obj/item/device/floor_painter(src)
- src.emag = new /obj/item/borg/stun(src)
+ src.emag = new /obj/item/weapon/melee/baton/robot/arm(src)
var/datum/matter_synth/metal = new /datum/matter_synth/metal(40000)
var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000)
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 92f0f512bda..4cf3499b8ab 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -30,7 +30,7 @@
backbag = rand(1,5)
- pdachoice = rand(1,3)
+ pdachoice = rand(1,4)
age = rand(current_species.min_age, current_species.max_age)
b_type = RANDOM_BLOOD_TYPE
if(H)
diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm
index b64ac107c51..4074d3aaab5 100644
--- a/code/modules/organs/organ_icon.dm
+++ b/code/modules/organs/organ_icon.dm
@@ -17,7 +17,9 @@ var/global/list/limb_icon_cache = list()
s_col = null
h_col = null
if(robotic >= ORGAN_ROBOT)
- return
+ var/datum/robolimb/franchise = all_robolimbs[model]
+ if(!(franchise && franchise.lifelike))
+ return
if(species && human.species && species.name != human.species.name)
return
if(!isnull(human.s_tone) && (human.species.appearance_flags & HAS_SKIN_TONE))
@@ -31,7 +33,9 @@ var/global/list/limb_icon_cache = list()
s_col = null
h_col = null
if(robotic >= ORGAN_ROBOT)
- return
+ var/datum/robolimb/franchise = all_robolimbs[model]
+ if(!(franchise && franchise.lifelike))
+ return
if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && (species.appearance_flags & HAS_SKIN_TONE))
s_tone = dna.GetUIValue(DNA_UI_SKIN_TONE)
if(species.appearance_flags & HAS_SKIN_COLOR)
@@ -110,6 +114,7 @@ var/global/list/limb_icon_cache = list()
mob_icon = new /icon('icons/mob/human_races/r_skeleton.dmi', "[icon_name][gender ? "_[gender]" : ""]")
else if (robotic >= ORGAN_ROBOT)
mob_icon = new /icon('icons/mob/human_races/robotic.dmi', "[icon_name][gender ? "_[gender]" : ""]")
+ apply_colouration(mob_icon)
else
mob_icon = new /icon(species.get_icobase(owner, (status & ORGAN_MUTATED)), "[icon_name][gender ? "_[gender]" : ""]")
apply_colouration(mob_icon)
@@ -124,6 +129,7 @@ var/global/list/limb_icon_cache = list()
if(model)
icon_cache_key += "_model_[model]"
+ apply_colouration(mob_icon)
dir = EAST
icon = mob_icon
diff --git a/code/modules/organs/robolimbs.dm b/code/modules/organs/robolimbs.dm
index 8177ab0e84c..25db1953d67 100644
--- a/code/modules/organs/robolimbs.dm
+++ b/code/modules/organs/robolimbs.dm
@@ -77,7 +77,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
unavailable_to_build = 1
/datum/robolimb/hephaestus_alt1
- company = "Hephaistos - Frontier"
+ company = "Hephaestus - Frontier"
desc = "A rugged prosthetic head featuring the standard Hephaestus theme, a visor and an external display."
icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_alt1.dmi'
unavailable_to_build = 1
@@ -90,7 +90,7 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
rgb=hephaestus_alt_rgb;\
rainbow=hephaestus_alt_rainbow"
-/datum/robolimb/hephaistos_monitor
+/datum/robolimb/hephaestus_monitor
company = "Hephaestus Monitor"
desc = "Hephaestus' unique spin on a popular prosthetic head model. It looks rugged and sturdy."
icon = 'icons/mob/human_races/cyberlimbs/hephaestus/hephaestus_monitor.dmi'
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index 6c00f9431a1..0be77be5437 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -301,7 +301,7 @@
/obj/item/weapon/gun/projectile/automatic/p90
name = "personal defense weapon"
- desc = "The H90K is a compact, high capacity submachine gun produced by Hephaistos Industries. Despite its fierce reputation, it still manages to feel like a toy. Uses 9mm rounds."
+ desc = "The H90K is a compact, high capacity submachine gun produced by Hephaestus Industries. Despite its fierce reputation, it still manages to feel like a toy. Uses 9mm rounds."
icon_state = "p90smg"
item_state = "p90"
w_class = ITEMSIZE_NORMAL
diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm
index 558e8609134..9949550182c 100644
--- a/code/modules/reagents/reagent_containers/blood_pack.dm
+++ b/code/modules/reagents/reagent_containers/blood_pack.dm
@@ -18,6 +18,7 @@
desc = "Contains blood used for transfusion."
icon = 'icons/obj/bloodpack.dmi'
icon_state = "empty"
+ item_state = "bloodpack_empty"
volume = 200
var/blood_type = null
@@ -34,10 +35,15 @@
/obj/item/weapon/reagent_containers/blood/update_icon()
var/percent = round((reagents.total_volume / volume) * 100)
- switch(percent)
- if(0 to 9) icon_state = "empty"
- if(10 to 50) icon_state = "half"
- if(51 to INFINITY) icon_state = "full"
+ if(percent >= 0 && percent <= 9)
+ icon_state = "empty"
+ item_state = "bloodpack_empty"
+ else if(percent >= 10 && percent <= 50)
+ icon_state = "half"
+ item_state = "bloodpack_half"
+ else if(percent >= 51 && percent < INFINITY)
+ icon_state = "full"
+ item_state = "bloodpack_full"
/obj/item/weapon/reagent_containers/blood/APlus
blood_type = "A+"
@@ -60,4 +66,5 @@
/obj/item/weapon/reagent_containers/blood/empty
name = "Empty BloodPack"
desc = "Seems pretty useless... Maybe if there were a way to fill it?"
- icon_state = "empty"
\ No newline at end of file
+ icon_state = "empty"
+ item_state = "bloodpack_empty"
\ No newline at end of file
diff --git a/code/modules/tables/presets.dm b/code/modules/tables/presets.dm
index 171bfe2b2cd..688bff4def4 100644
--- a/code/modules/tables/presets.dm
+++ b/code/modules/tables/presets.dm
@@ -1,81 +1,186 @@
-/obj/structure/table
+//TABLE PRESETS
+/obj/structure/table/standard
+ icon_state = "plain_preview"
+ color = "#EEEEEE"
- standard
- icon_state = "plain_preview"
- color = "#EEEEEE"
- New()
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
- ..()
+/obj/structure/table/standard/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ ..()
- steel
- icon_state = "plain_preview"
- color = "#666666"
- New()
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
+/obj/structure/table/steel
+ icon_state = "plain_preview"
+ color = "#666666"
- marble
- icon_state = "stone_preview"
- color = "#CCCCCC"
- New()
- material = get_material_by_name("marble")
- ..()
+/obj/structure/table/steel/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
- reinforced
- icon_state = "reinf_preview"
- color = "#EEEEEE"
- New()
- material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
+/obj/structure/table/marble
+ icon_state = "stone_preview"
+ color = "#CCCCCC"
- steel_reinforced
- icon_state = "reinf_preview"
- color = "#666666"
- New()
- material = get_material_by_name(DEFAULT_WALL_MATERIAL)
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
+/obj/structure/table/marble/New()
+ material = get_material_by_name("marble")
+ ..()
- wooden_reinforced
- icon_state = "reinf_preview"
- color = "#824B28"
- New()
- material = get_material_by_name("wood")
- reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
- ..()
+/obj/structure/table/reinforced
+ icon_state = "reinf_preview"
+ color = "#EEEEEE"
- woodentable
- icon_state = "plain_preview"
- color = "#824B28"
- New()
- material = get_material_by_name("wood")
- ..()
+/obj/structure/table/reinforced/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
- gamblingtable
- icon_state = "gamble_preview"
- New()
- material = get_material_by_name("wood")
- carpeted = 1
- ..()
+/obj/structure/table/steel_reinforced
+ icon_state = "reinf_preview"
+ color = "#666666"
- glass
- icon_state = "plain_preview"
- color = "#00E1FF"
- alpha = 77 // 0.3 * 255
- New()
- material = get_material_by_name("glass")
- ..()
+/obj/structure/table/steel_reinforced/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
- holotable
- icon_state = "holo_preview"
- color = "#EEEEEE"
- New()
- material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
- ..()
+/obj/structure/table/wooden_reinforced
+ icon_state = "reinf_preview"
+ color = "#824B28"
- woodentable/holotable
- icon_state = "holo_preview"
- New()
- material = get_material_by_name("holowood")
- ..()
+/obj/structure/table/wooden_reinforced/New()
+ material = get_material_by_name("wood")
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/woodentable
+ icon_state = "plain_preview"
+ color = "#824B28"
+
+/obj/structure/table/woodentable/New()
+ material = get_material_by_name("wood")
+ ..()
+
+/obj/structure/table/gamblingtable
+ icon_state = "gamble_preview"
+
+/obj/structure/table/gamblingtable/New()
+ material = get_material_by_name("wood")
+ carpeted = 1
+ ..()
+
+/obj/structure/table/glass
+ icon_state = "plain_preview"
+ color = "#00E1FF"
+ alpha = 77 // 0.3 * 255
+
+/obj/structure/table/glass/New()
+ material = get_material_by_name("glass")
+ ..()
+
+/obj/structure/table/holotable
+ icon_state = "holo_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/holotable/New()
+ material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
+ ..()
+
+/obj/structure/table/woodentable/holotable
+ icon_state = "holo_preview"
+
+/obj/structure/table/woodentable/holotable/New()
+ material = get_material_by_name("holowood")
+ ..()
+
+//BENCH PRESETS
+/obj/structure/table/bench/standard
+ icon_state = "plain_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/bench/standard/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ ..()
+
+/obj/structure/table/bench/steel
+ icon_state = "plain_preview"
+ color = "#666666"
+
+/obj/structure/table/bench/steel/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+
+/obj/structure/table/bench/marble
+ icon_state = "stone_preview"
+ color = "#CCCCCC"
+
+/obj/structure/table/bench/marble/New()
+ material = get_material_by_name("marble")
+ ..()
+/*
+/obj/structure/table/bench/reinforced
+ icon_state = "reinf_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/bench/reinforced/New()
+ material = get_material_by_name(DEFAULT_TABLE_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/bench/steel_reinforced
+ icon_state = "reinf_preview"
+ color = "#666666"
+
+/obj/structure/table/bench/steel_reinforced/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+
+/obj/structure/table/bench/wooden_reinforced
+ icon_state = "reinf_preview"
+ color = "#824B28"
+
+/obj/structure/table/bench/wooden_reinforced/New()
+ material = get_material_by_name("wood")
+ reinforced = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ ..()
+*/
+/obj/structure/table/bench/wooden
+ icon_state = "plain_preview"
+ color = "#824B28"
+
+/obj/structure/table/bench/wooden/New()
+ material = get_material_by_name("wood")
+ ..()
+
+/obj/structure/table/bench/padded
+ icon_state = "padded_preview"
+
+/obj/structure/table/bench/padded/New()
+ material = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ carpeted = 1
+ ..()
+
+/obj/structure/table/bench/glass
+ icon_state = "plain_preview"
+ color = "#00E1FF"
+ alpha = 77 // 0.3 * 255
+
+/obj/structure/table/bench/glass/New()
+ material = get_material_by_name("glass")
+ ..()
+
+/*
+/obj/structure/table/bench/holotable
+ icon_state = "holo_preview"
+ color = "#EEEEEE"
+
+/obj/structure/table/bench/holotable/New()
+ material = get_material_by_name("holo[DEFAULT_TABLE_MATERIAL]")
+ ..()
+
+/obj/structure/table/bench/wooden/holotable
+ icon_state = "holo_preview"
+
+/obj/structure/table/bench/wooden/holotable/New()
+ material = get_material_by_name("holowood")
+ ..()
+*/
\ No newline at end of file
diff --git a/html/changelog.html b/html/changelog.html
index 2b602087f1c..c5dc314b758 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -53,6 +53,37 @@
-->