From f24e9a6d995c588ce34c41e605c06fa5f4239de8 Mon Sep 17 00:00:00 2001 From: Werner <1331699+Arrow768@users.noreply.github.com> Date: Sun, 10 Jan 2021 00:40:42 +0100 Subject: [PATCH 01/28] Ghostspawner enable fix (#10943) The ghostspawner can no longer be enabled if all the available slots have been used up. Co-authored-by: Werner --- code/modules/ghostroles/spawner/base.dm | 3 ++ .../arrow768-ghostspawner-bugfix.yml | 41 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 html/changelogs/arrow768-ghostspawner-bugfix.yml diff --git a/code/modules/ghostroles/spawner/base.dm b/code/modules/ghostroles/spawner/base.dm index 08d182d3f82..cd40b8ec4b8 100644 --- a/code/modules/ghostroles/spawner/base.dm +++ b/code/modules/ghostroles/spawner/base.dm @@ -181,6 +181,9 @@ //Proc to enable the ghostspawner /datum/ghostspawner/proc/enable() + if((max_count - count) <= 0) + to_chat(usr, "The ghostspawner can not be enabled - No slots available") + return if(usr) log_and_message_admins("has enabled the ghostspawner [src.name]") enabled = TRUE diff --git a/html/changelogs/arrow768-ghostspawner-bugfix.yml b/html/changelogs/arrow768-ghostspawner-bugfix.yml new file mode 100644 index 00000000000..3fff0e2ce49 --- /dev/null +++ b/html/changelogs/arrow768-ghostspawner-bugfix.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Arrow768 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "The ghostspawner can no longer be enabled if all the available slots have been used up." From 87f2d5b4b37f33feea0f6cf30e81e83e75d5a7df Mon Sep 17 00:00:00 2001 From: Karolis Date: Sun, 10 Jan 2021 12:53:20 +0200 Subject: [PATCH 02/28] Canister UI fixup (#10935) --- html/changelogs/cxancandcnasndsnc.yml | 5 ++ .../view/machinery/atmospherics/canister.vue | 78 +++++++++---------- 2 files changed, 41 insertions(+), 42 deletions(-) create mode 100644 html/changelogs/cxancandcnasndsnc.yml diff --git a/html/changelogs/cxancandcnasndsnc.yml b/html/changelogs/cxancandcnasndsnc.yml new file mode 100644 index 00000000000..60ac9080e45 --- /dev/null +++ b/html/changelogs/cxancandcnasndsnc.yml @@ -0,0 +1,5 @@ +author: Karolis2011 +delete-after: True + +changes: + - tweak: "Adjusted how canister UI looks." diff --git a/vueui/src/components/view/machinery/atmospherics/canister.vue b/vueui/src/components/view/machinery/atmospherics/canister.vue index e21e9b0ca15..8409af47bc6 100644 --- a/vueui/src/components/view/machinery/atmospherics/canister.vue +++ b/vueui/src/components/view/machinery/atmospherics/canister.vue @@ -1,45 +1,47 @@ @@ -56,11 +58,3 @@ export default { } } - - From 37ba2e54daa6066d350688363b05f048c6618d98 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 10 Jan 2021 12:53:46 +0200 Subject: [PATCH 03/28] Offworlder Markings (#10942) Offworlders now get the same augs and tattoos that standard humans can get. Shells can now get color bands around their left foot as well. Bugfix because it's an oversight of the first PR, I believe. --- .../abstract/new_player/sprite_accessories.dm | 156 +++++++++--------- .../changelogs/geeves-offworlder_markings.yml | 6 + 2 files changed, 84 insertions(+), 78 deletions(-) create mode 100644 html/changelogs/geeves-offworlder_markings.yml diff --git a/code/modules/mob/abstract/new_player/sprite_accessories.dm b/code/modules/mob/abstract/new_player/sprite_accessories.dm index 4b2b770ee5c..f8efc9df6ac 100644 --- a/code/modules/mob/abstract/new_player/sprite_accessories.dm +++ b/code/modules/mob/abstract/new_player/sprite_accessories.dm @@ -2862,7 +2862,7 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Scalp Ports)" icon_state = "aug_scalpports" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) vertex_left name = "Augment (Scalp Port, Vertex Left)" @@ -2884,7 +2884,7 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Scalp Ports Diode)" icon_state = "aug_scalpportsdiode" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) vertex_left name = "Augment (Scalp Port Diode, Vertex Left )" @@ -2906,7 +2906,7 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Backside Left, Head)" icon_state = "aug_backside_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) side_diode name = "Augment (Backside Left Diode, Head)" @@ -2916,7 +2916,7 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Backside Right, Head)" icon_state = "aug_backside_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) side_diode name = "Augment (Backside Right Diode, Head)" @@ -2926,19 +2926,19 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Deunan, Side Left)" icon_state = "aug_sidedeunan_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) aug_side_deunan_right name = "Augment (Deunan, Side Right)" icon_state = "aug_sidedeunan_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) aug_side_kuze_left name = "Augment (Kuze, Side Left)" icon_state = "aug_sidekuze_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) side_diode name = "Augment (Kuze Diode, Side Left)" @@ -2948,7 +2948,7 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Kuze, Side Right)" icon_state = "aug_sidekuze_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) side_diode name = "Augment (Kuze Diode, Side Right)" @@ -2958,43 +2958,43 @@ Follow by example and make good judgement based on length which list to include name = "Augment (Kinzie, Side Left)" icon_state = "aug_sidekinzie_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) aug_side_kinzie_right name = "Augment (Kinzie, Side Right)" icon_state = "aug_sidekinzie_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) aug_side_shelly_left name = "Augment (Shelly, Side Left)" icon_state = "aug_sideshelly_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) aug_side_shelly_right name = "Augment (Shelly, Side Right)" icon_state = "aug_sideshelly_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) aug_chestports name = "Augment (Chest Ports)" icon_state = "aug_chestports" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") aug_abdomenports name = "Augment (Abdomen Ports)" icon_state = "aug_abdomenports" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") backstripe name = "Back Stripe" icon_state = "backstripe" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) spinemarks name = "Back Stripe Marks" @@ -3004,7 +3004,7 @@ Follow by example and make good judgement based on length which list to include name = "Color Bands (All)" icon_state = "bands" body_parts = list(BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_GROIN, BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell, /datum/species/diona, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) chest name = "Color Bands (Torso)" @@ -3047,7 +3047,7 @@ Follow by example and make good judgement based on length which list to include name = "Color Bands (Left Foot)" icon_state = "bandshuman" body_parts = list(BP_L_FOOT) - species_allowed = list(/datum/species/human, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell) right_foot name = "Color Bands (Right Foot)" @@ -3058,7 +3058,7 @@ Follow by example and make good judgement based on length which list to include name = "Color Bands (Right Foot)" icon_state = "bandshuman" body_parts = list(BP_R_FOOT) - species_allowed = list(/datum/species/human, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/machine/shell) bandsface name = "Color Bands (Face)" @@ -3070,241 +3070,241 @@ Follow by example and make good judgement based on length which list to include name = "Color Bands (Face)" icon_state = "bandshumanface" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell) bindi name = "Bindi" icon_state = "bindi" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) blush name = "Blush" icon_state= "blush" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) cheekspot_left name = "Cheek Spot (Left Cheek)" icon_state = "cheekspot_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) cheekspot_right name = "Cheek Spot (Right Cheek)" icon_state = "cheekspot_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) cheshire_left name = "Cheshire (Left Cheek)" icon_state = "cheshire_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) cheshire_right name = "Cheshire (Right Cheek)" icon_state = "cheshire_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) crow_left name = "Crow Mark (Left Eye)" icon_state = "crow_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) crow_right name = "Crow Mark (Right Eye)" icon_state = "crow_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) ear_left name = "Ear Cover (Left)" icon_state = "ear_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell) ear_right name = "Ear Cover (Right)" icon_state = "ear_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell) eyestripe name = "Eye Stripe" icon_state = "eyestripe" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) eyecorner_left name = "Eye Corner Left" icon_state = "eyecorner_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) eyecorner_right name = "Eye Corner Right" icon_state = "eyecorner_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) eyelash_left name = "Eyelash Left" icon_state = "eyelash_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) eyelash_right name = "Eyelash Right" icon_state = "eyelash_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) lips name = "Lips" icon_state = "lips" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) lipcorner_left name = "Lip Corner Left" icon_state = "lipcorner_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) lipcorner_right name = "Lip Corner Right" icon_state = "lipcorner_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) lowercheek_left name = "Lower Cheek Left" icon_state = "lowercheek_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) lowercheek_left name = "Lower Cheek Right" icon_state = "lowercheek_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) neck name = "Neck Cover" icon_state = "neck" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) neckthick name = "Neck Cover (Thick)" icon_state = "neckthick" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) nosestripe name = "Nose Stripe" icon_state = "nosestripe" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") nosetape name = "Nose Tape" icon_state = "nosetape" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, "Vaurca") scratch_abdomen_left name = "Scratch, Abdomen Left" icon_state = "scratch_abdomen_l" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") scratch_abdomen_right name = "Scratch, Abdomen Right" icon_state = "scratch_abdomen_r" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") scratch_abdomen_small_left name = "Scratch, Abdomen Small Left" icon_state = "scratch_abdomensmall_l" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") scratch_abdomen_small_right name = "Scratch, Abdomen Small Right" icon_state = "scratch_abdomensmall_r" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") scratch_back name = "Scratch, Back" icon_state = "scratch_back" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi, "Vaurca") scratch_chest_left name = "Scratch, Chest (Left)" icon_state = "scratch_chest_l" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) scratch_chest_right name = "Scratch, Chest (Right)" icon_state = "scratch_chest_r" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_belly name = "Tattoo (Belly)" icon_state = "tat_belly" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_campbell_leftarm name = "Tattoo (Campbell, Left Arm)" icon_state = "tat_campbell" body_parts = list(BP_L_ARM) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_campbell_rightarm name = "Tattoo (Campbell, Right Arm)" icon_state = "tat_campbell" body_parts= list(BP_R_ARM) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_campbell_leftleg name = "Tattoo (Campbell, Left Leg)" icon_state = "tat_campbell" body_parts= list(BP_L_LEG) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_campbell_rightleg name = "Tattoo (Campbell, Right Leg)" icon_state = "tat_campbell" body_parts= list(BP_R_LEG) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_forrest_left name = "Tattoo (Forrest, Left Eye)" icon_state = "tat_forrest_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_forrest_right name = "Tattoo (Forrest, Right Eye)" icon_state = "tat_forrest_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_hive name = "Tattoo (Hive, Back)" icon_state = "tat_hive" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_heart name = "Tattoo (Heart, Chest)" @@ -3316,97 +3316,97 @@ Follow by example and make good judgement based on length which list to include name = "Tattoo (Heart, Lower Back)" icon_state = "tat_heartback" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell) tat_hunter_left name = "Tattoo (Hunter, Left Eye)" icon_state = "tat_hunter_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_hunter_right name = "Tattoo (Hunter, Right Eye)" icon_state = "tat_hunter_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_jaeger_left name = "Tattoo (Jaeger, Left Eye)" icon_state = "tat_jaeger_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_jaeger_right name = "Tattoo (Jaeger, Right Eye)" icon_state = "tat_jaeger_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_kater_left name = "Tattoo (Kater, Left Eye)" icon_state = "tat_kater_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_kater_right name = "Tattoo (Kater, Right Eye)" icon_state = "tat_kater_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_lujan_left name = "Tattoo (Lujan, Left Eye)" icon_state = "tat_lujan_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_lujan_right name = "Tattoo (Lujan, Right Eye)" icon_state = "tat_lujan_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_natasha_left name = "Tattoo (Natasha, Left Eye)" icon_state = "tat_natasha_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_natasha_right name = "Tattoo (Natasha, Right Eye)" icon_state = "tat_natasha_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_nightling name = "Tattoo (Nightling, Back)" icon_state = "tat_nightling" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_silverburgh_left name = "Tattoo (Silverburgh, Left Leg)" icon_state = "tat_silverburgh" body_parts = list(BP_L_LEG) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_silverburgh_right name = "Tattoo (Silverburgh, Right Leg)" icon_state = "tat_silverburgh" body_parts = list(BP_R_LEG) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_tamoko name = "Tattoo (Ta Moko, Face)" icon_state = "tat_tamoko" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell) tat_tiger name = "Tattoo (Tiger Stripes, All)" icon_state = "tat_tiger" body_parts = list(BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_GROIN,BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) chest name = "Tattoo (Tiger Stripes, Chest)" @@ -3452,25 +3452,25 @@ Follow by example and make good judgement based on length which list to include name = "Tattoo (Toshi, Left Eye)" icon_state = "tat_toshi_l" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_toshi_right name = "Tattoo (Volgin, Right Eye)" icon_state = "tat_toshi_r" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tat_wings_back name = "Tattoo (Wings, Lower Back)" icon_state = "tat_wingsback" body_parts = list(BP_CHEST) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell) tigerhead name = "Tiger Stripes (Head, Minor)" icon_state = "tigerhead" body_parts = list(BP_HEAD) - species_allowed = list(/datum/species/human, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) + species_allowed = list(/datum/species/human, /datum/species/human/offworlder, /datum/species/diona, /datum/species/machine/shell, /datum/species/skrell, /datum/species/tajaran, /datum/species/tajaran/zhan_khazan, /datum/species/tajaran/m_sai, /datum/species/unathi) tiger_stripes name = "Tiger Stripes (Tajara)" diff --git a/html/changelogs/geeves-offworlder_markings.yml b/html/changelogs/geeves-offworlder_markings.yml new file mode 100644 index 00000000000..304f9bee403 --- /dev/null +++ b/html/changelogs/geeves-offworlder_markings.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Offworlders now get the same augs and tattoos that standard humans can get. Shells can now get color bands around their left foot as well." \ No newline at end of file From 117fb99942ddeb69a2ca47c477c134adb5abd841 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 10 Jan 2021 12:54:20 +0200 Subject: [PATCH 04/28] Uniform Runtime Fix (#10929) Fixed some uniforms not working when rolling down or rolling up sleeves. --- code/modules/clothing/clothing.dm | 8 ++++---- html/changelogs/geeves-german_engineering.yml | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 html/changelogs/geeves-german_engineering.yml diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a505bf27922..4e34c335659 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -1014,13 +1014,13 @@ rolled_down = !rolled_down if(rolled_down) body_parts_covered &= LOWER_TORSO|LEGS|FEET - if(contained_sprite) + if(contained_sprite || !LAZYLEN(item_state_slots)) item_state = "[initial(item_state)]_d" else item_state_slots[slot_w_uniform_str] = "[worn_state]_d" else body_parts_covered = initial(body_parts_covered) - if(contained_sprite) + if(contained_sprite || !LAZYLEN(item_state_slots)) item_state = initial(item_state) else item_state_slots[slot_w_uniform_str] = "[worn_state]" @@ -1044,14 +1044,14 @@ rolled_sleeves = !rolled_sleeves if(rolled_sleeves) body_parts_covered &= ~(ARMS|HANDS) - if(contained_sprite) + if(contained_sprite || !LAZYLEN(item_state_slots)) item_state = "[initial(item_state)]_r" else item_state_slots[slot_w_uniform_str] = "[worn_state]_r" to_chat(usr, SPAN_NOTICE("You roll up your [src]'s sleeves.")) else body_parts_covered = initial(body_parts_covered) - if(contained_sprite) + if(contained_sprite || !LAZYLEN(item_state_slots)) item_state = initial(item_state) else item_state_slots[slot_w_uniform_str] = "[worn_state]" diff --git a/html/changelogs/geeves-german_engineering.yml b/html/changelogs/geeves-german_engineering.yml new file mode 100644 index 00000000000..0829c08d6ae --- /dev/null +++ b/html/changelogs/geeves-german_engineering.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Fixed some uniforms not working when rolling down or rolling up sleeves." \ No newline at end of file From e0854fd1e31c0ba07206e87d59b4ae033adf22b5 Mon Sep 17 00:00:00 2001 From: "Wowzewow (Wezzy)" <42310821+alsoandanswer@users.noreply.github.com> Date: Sun, 10 Jan 2021 18:55:09 +0800 Subject: [PATCH 05/28] Pick up fixes (#10922) Pick up animation now does the little shake at the start correctly. also cleans up some stuff here and there --- aurorastation.dme | 1 + code/__defines/_macros.dm | 1 + code/__defines/appearance.dm | 3 + code/game/atoms_movable.dm | 66 +++++++++---------- code/game/objects/items.dm | 8 ++- .../mob/living/silicon/robot/items/gripper.dm | 2 +- html/changelogs/wezzy_pickupfix.yml | 41 ++++++++++++ 7 files changed, 83 insertions(+), 39 deletions(-) create mode 100644 code/__defines/appearance.dm create mode 100644 html/changelogs/wezzy_pickupfix.yml diff --git a/aurorastation.dme b/aurorastation.dme index 979c90f5cad..c19dacace72 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -21,6 +21,7 @@ #include "code\__defines\_macros.dm" #include "code\__defines\admin.dm" #include "code\__defines\antagonist.dm" +#include "code\__defines\appearance.dm" #include "code\__defines\atmos.dm" #include "code\__defines\battle_monsters.dm" #include "code\__defines\callback.dm" diff --git a/code/__defines/_macros.dm b/code/__defines/_macros.dm index b578242fbed..53b61a96d91 100644 --- a/code/__defines/_macros.dm +++ b/code/__defines/_macros.dm @@ -23,6 +23,7 @@ #define FONT_GIANT(X) "[X]" #define isAI(A) istype(A, /mob/living/silicon/ai) + #define isDrone(A) istype(A, /mob/living/silicon/robot/drone) #define isalien(A) istype(A, /mob/living/carbon/alien) diff --git a/code/__defines/appearance.dm b/code/__defines/appearance.dm new file mode 100644 index 00000000000..faa97e8f066 --- /dev/null +++ b/code/__defines/appearance.dm @@ -0,0 +1,3 @@ +// Consider these images/atoms as part of the UI/HUD +#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA +#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 8df12dab60b..d7fe1a1482f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -332,40 +332,40 @@ /atom/movable/proc/get_bullet_impact_effect_type() return BULLET_IMPACT_NONE -/atom/movable/proc/do_pickup_animation(atom/target) +/atom/movable/proc/do_pickup_animation(atom/target, atom/old_loc) set waitfor = FALSE - if(!isturf(loc)) + if(QDELETED(src)) + return + if(QDELETED(target)) + return + if(QDELETED(old_loc)) return - var/image/I = image(icon, loc, icon_state, layer + 0.1, dir, pixel_x, pixel_y) - I.transform *= 0.75 - I.appearance_flags = (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE) - var/turf/T = get_turf(src) - var/direction - var/to_x = 0 - var/to_y = 0 - if(!QDELETED(T) && !QDELETED(target)) - direction = get_dir(T, target) - if(direction & NORTH) - to_y = 32 - else if(direction & SOUTH) - to_y = -32 - if(direction & EAST) - to_x = 32 - else if(direction & WEST) - to_x = -32 - if(!direction) - to_y = 16 - var/list/viewing = list() - for(var/mob/M in viewers(target)) - if(M.client) - viewing |= M.client - flick_overlay(I, viewing, 7) + var/turf/old_turf = get_turf(old_loc) + var/image/I = image(icon = src, loc = old_turf, layer = ABOVE_MOB_LAYER) + I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA + if(ismob(target)) + I.dir = target.dir + + if(istype(old_loc, /obj/item/storage)) + I.pixel_x += old_loc.pixel_x + I.pixel_y += old_loc.pixel_y + + flick_overlay(I, clients, 7) + var/matrix/M = new - M.Turn(pick(-30, 30)) - animate(I, alpha = 175, pixel_x = to_x, pixel_y = to_y, time = 3, transform = M, easing = CUBIC_EASING) + M.Turn(pick(30, -30)) + + animate(I, transform = M, time = 1) sleep(1) - animate(I, alpha = 0, transform = matrix(), time = 1) + animate(I, transform = matrix(), time = 1) + sleep(1) + + var/to_x = (target.x - old_turf.x) * 32 + var/to_y = (target.y - old_turf.y) * 32 + + animate(I, pixel_x = to_x, pixel_y = to_y, time = 3, transform = matrix() * 0, easing = CUBIC_EASING) + sleep(3) /atom/movable/proc/do_putdown_animation(atom/target, mob/user) spawn() @@ -416,13 +416,9 @@ invisibility = 100 var/turf/old_turf = get_turf(src) var/image/I = image(icon = src, loc = src.loc, layer = layer + 0.1) - I.appearance_flags = (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE) + I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - var/list/viewing = list() - for(var/mob/M in viewers(target)) - if(M.client) - viewing |= M.client - flick_overlay(I, viewing, 4) + flick_overlay(I, clients, 4) var/to_x = (target.x - old_turf.x) * 32 + pixel_x var/to_y = (target.y - old_turf.y) * 32 + pixel_y diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e4f7f4c584e..e6666ad2b92 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -324,9 +324,11 @@ // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) - pixel_x = 0 - pixel_y = 0 - do_pickup_animation(user) + throwing = 0 + var/atom/old_loc = loc + if(user.put_in_active_hand(src) && old_loc) + if((user != old_loc) && (user != old_loc.get_holding_mob())) + do_pickup_animation(user, old_loc) // called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /obj/item/proc/on_exit_storage(obj/item/storage/S as obj) diff --git a/code/modules/mob/living/silicon/robot/items/gripper.dm b/code/modules/mob/living/silicon/robot/items/gripper.dm index 2d69ac0c71b..6d73dd833d3 100644 --- a/code/modules/mob/living/silicon/robot/items/gripper.dm +++ b/code/modules/mob/living/silicon/robot/items/gripper.dm @@ -58,7 +58,7 @@ if(feedback) to_chat(user, SPAN_NOTICE("You collect \the [I].")) if(isturf(I.loc) && I.Adjacent(user)) - I.do_pickup_animation(user) + I.do_pickup_animation(user, loc) I.forceMove(src) wrapped = I wrapped.pixel_x = 0 diff --git a/html/changelogs/wezzy_pickupfix.yml b/html/changelogs/wezzy_pickupfix.yml new file mode 100644 index 00000000000..a005b561cd5 --- /dev/null +++ b/html/changelogs/wezzy_pickupfix.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Wowzewow (Wezzy) + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixes pickup animations not playing the shake effect." \ No newline at end of file From 59b4d21c8497904366ab8d8b2a54050dc1fce01c Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 10 Jan 2021 12:56:15 +0200 Subject: [PATCH 06/28] Angry Eye Fix (#10916) Vampire blood eyes now properly disappear when they lose frenzy. --- code/game/gamemodes/vampire/vampire_helpers.dm | 4 ++-- code/modules/mob/living/carbon/human/update_icons.dm | 12 ++++++------ code/modules/organs/organ_external.dm | 1 + code/modules/organs/organ_icon.dm | 6 ++++++ html/changelogs/geeves-angry_eye_fix.yml | 6 ++++++ 5 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 html/changelogs/geeves-angry_eye_fix.yml diff --git a/code/game/gamemodes/vampire/vampire_helpers.dm b/code/game/gamemodes/vampire/vampire_helpers.dm index edb506a962d..b0e9063d1fd 100644 --- a/code/game/gamemodes/vampire/vampire_helpers.dm +++ b/code/game/gamemodes/vampire/vampire_helpers.dm @@ -205,7 +205,7 @@ /mob/living/carbon/human/vampire_start_frenzy() . = ..() if(.) - update_body() + update_body(force_base_icon = TRUE) /mob/proc/vampire_stop_frenzy(var/force_stop = 0) var/datum/vampire/vampire = mind.antag_datums[MODE_VAMPIRE] @@ -232,7 +232,7 @@ /mob/living/carbon/human/vampire_stop_frenzy() . = ..() if(.) - update_body() + update_body(force_base_icon = TRUE) // Removes all vampire powers. /mob/proc/remove_vampire_powers() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 3707988d441..49f471ba389 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -255,7 +255,7 @@ There are several things that need to be remembered: . += M //BASE MOB SPRITE -/mob/living/carbon/human/proc/update_body(var/update_icons=1) +/mob/living/carbon/human/proc/update_body(var/update_icons=1, var/force_base_icon = FALSE) if (QDELING(src)) return @@ -263,7 +263,6 @@ There are several things that need to be remembered: var/husk = (HUSK in mutations) var/fat = (FAT in mutations) - var/hulk = (HULK in mutations) var/skeleton = (SKELETON in mutations) var/g = (gender == FEMALE ? "f" : "m") @@ -278,12 +277,12 @@ There are several things that need to be remembered: qdel(stand_icon) stand_icon = new(species.icon_template ? species.icon_template : 'icons/mob/human.dmi',"blank") - var/is_frenzied = FALSE + var/is_frenzied = "nofrenzy" if(mind) var/datum/vampire/vampire = mind.antag_datums[MODE_VAMPIRE] if(vampire && (vampire.status & VAMP_FRENZIED)) - is_frenzied = TRUE - var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin][lip_style || "nolips"][!!husk][!!fat][!!hulk][!!skeleton][is_frenzied]" + is_frenzied = "frenzy" + var/icon_key = "[species.race_key][g][s_tone][r_skin][g_skin][b_skin][lip_style || "nolips"][!!husk][!!fat][!!skeleton][is_frenzied]" var/obj/item/organ/internal/eyes/eyes = get_eyes() if(eyes) icon_key += "[rgb(eyes.eye_colour[1], eyes.eye_colour[2], eyes.eye_colour[3])]" @@ -298,7 +297,7 @@ There are several things that need to be remembered: icon_key += SSicon_cache.get_organ_shortcode(part) var/icon/base_icon = SSicon_cache.human_icon_cache[icon_key] - if (!base_icon) // Icon ain't in the cache, so generate it. + if (!base_icon || force_base_icon) // Icon ain't in the cache, so generate it. //BEGIN CACHED ICON GENERATION. var/obj/item/organ/external/chest = get_organ(BP_CHEST) base_icon = chest.get_icon(skeleton) @@ -326,6 +325,7 @@ There are several things that need to be remembered: else base_icon.Blend(temp, ICON_OVERLAY) + part.cut_additional_images(src) var/list/add_images = part.get_additional_images(src) if(add_images) add_overlay(add_images, TRUE) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 39e6d5d0b35..8d0b9dec0f7 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -82,6 +82,7 @@ var/list/genetic_markings // Markings (body_markings) to apply to the icon var/list/temporary_markings // Same as above, but not preserved when cloning var/list/cached_markings // The two above lists cached for perf. reasons. + var/list/additional_images var/atom/movable/applied_pressure //Pressure applied to wounds. It'll make them bleed less, generally. diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index c3fd7fce6c9..61fd17c31c8 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -112,6 +112,7 @@ if(vampire && (vampire.status & VAMP_FRENZIED)) var/image/return_image = image(H.species.eyes_icons, H, "[H.species.eyes]_frenzy", EFFECTS_ABOVE_LIGHTING_LAYER) return_image.appearance_flags = KEEP_APART + LAZYADD(additional_images, return_image) return list(return_image) /obj/item/organ/external/proc/apply_markings(restrict_to_robotic = FALSE) @@ -223,6 +224,11 @@ /obj/item/organ/external/proc/get_additional_images(var/mob/living/carbon/human/H) return +/obj/item/organ/external/proc/cut_additional_images(var/mob/living/carbon/human/H) + if(LAZYLEN(additional_images)) + H.cut_overlay(additional_images, TRUE) + LAZYCLEARLIST(additional_images) + // new damage icon system // adjusted to set damage_state to brute/burn code only (without r_name0 as before) /obj/item/organ/external/update_icon() diff --git a/html/changelogs/geeves-angry_eye_fix.yml b/html/changelogs/geeves-angry_eye_fix.yml new file mode 100644 index 00000000000..a52bd2b44b0 --- /dev/null +++ b/html/changelogs/geeves-angry_eye_fix.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Vampire blood eyes now properly disappear when they lose frenzy." \ No newline at end of file From c27067026298871e0fc1e18998a99868d69f4b6f Mon Sep 17 00:00:00 2001 From: Aticius Date: Sun, 10 Jan 2021 02:57:39 -0800 Subject: [PATCH 07/28] Buttpacks: Storage Solution for the Socially Insecure (#10903) You can now wear fannypacks on your butt. This is very important. This is probably spritebloat, but a refactor of these things is beyond me. --- .../objects/items/weapons/storage/belt.dm | 16 +++++++ html/changelogs/aticius_buttfannies.yml | 41 ++++++++++++++++++ icons/clothing/belts/fannypacks.dmi | Bin 0 -> 3329 bytes icons/mob/belt.dmi | Bin 12319 -> 10441 bytes icons/obj/clothing/belts.dmi | Bin 9166 -> 2612 bytes 5 files changed, 57 insertions(+) create mode 100644 html/changelogs/aticius_buttfannies.yml create mode 100644 icons/clothing/belts/fannypacks.dmi diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 677262337da..40fdcac0842 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -415,11 +415,27 @@ /obj/item/storage/belt/fannypack name = "leather fannypack" desc = "A dorky fannypack for keeping small items in." + icon = 'icons/clothing/belts/fannypacks.dmi' icon_state = "fannypack_leather" item_state = "fannypack_leather" max_w_class = ITEMSIZE_SMALL + contained_sprite = TRUE storage_slots = null max_storage_space = 8 + var/flipped = FALSE + +/obj/item/storage/belt/fannypack/verb/ToggleFanny() + set name = "Adjust Fannypack" + set category = "Object" + set src in usr + + if(use_check_and_message(usr)) + return 0 + + flipped = !flipped + item_state = "[initial(icon_state)][flipped ? "_flipped" : ""]" + to_chat(usr, "You flip the belt [flipped ? "behind you" : "infront of you"].") + update_icon() /obj/item/storage/belt/fannypack/component name = "component pouch" diff --git a/html/changelogs/aticius_buttfannies.yml b/html/changelogs/aticius_buttfannies.yml new file mode 100644 index 00000000000..891ce428ce8 --- /dev/null +++ b/html/changelogs/aticius_buttfannies.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Aticius + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "You can now flip fannypacks onto your butt." diff --git a/icons/clothing/belts/fannypacks.dmi b/icons/clothing/belts/fannypacks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..533bbff23d5d80eefbe2b974c87b6a473783778f GIT binary patch literal 3329 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 literal 0 HcmV?d00001 diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 8034d9a5e2b3b2a4e689ffdd7248cf47d3f73af5..010f909f544764fc8de5f9b2bf443b0020672286 100644 GIT binary patch literal 10441 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 aH%zWRr}$%v8@qdo3K-}bL#lP0V*d{v#r{bE literal 12319 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 diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index 306f250d1ddadf33af56b28af421e6e0dffa202c..1f3b9184c361f98b67ebe1a10d1fe66217b3c002 100644 GIT binary patch literal 2612 zcmX9=2{;s58$L4(Gxo7$NoK4!4Uw@G&6WmJF|w9zs3z{UC0nV?SSL%CiwugSBrV!p zSC*kG%G`#;pl#f^u9${gd(0jG|2*e>=Q-aw-+A8iz2AACbD8SqtSF}=2LMoXb#Xc> z85vt0E+w)53JO;NfFx26dmZF(IH3Ue5|y0nFkCud1CR|sZL*G?nIV@AE(NKZ8R}+a z<%AGWEjc?v-Epj=m@@zjRH9=8TzX4TVlJS2*xUu+nDbt@eG2<5j02n$8&Y)2&*Coz zVc!72VzIbvtXNF1tE)R;i{WAcK`{`8Lb>cjlN`<6m1495@wWu~=-Vr|#`x%cg@9-gciqf0iuJ zxnN~wg~#Ku#cZmL{%&(~v6v0mTrpeR5$9;TTMuw0*u`Rr<#Oo~H&;w@w5R(W&WWet zfFke(7z_qb02Ye{lDyCXmJ3{6UD=o8wo>U1Y%Ngx&sbZBm~{YfvosZ$gTuK*a*D&h zm|P^-H%~zLdt?hC|Gbx9oYSeZCt|~6;=-e&07$AVDLQhc%TghO|EH&sz!> zNwKPExl7zq5gQh&O=BGXzn3a8d z+#c-r_4Qc2h~1V{#d&;g`zxx?&z#f{erUNJQ2V zS1pb$jnc(fnu4IA^Rn;zZWl0D(jxoStyEH?8swuRHp3i3WeD)rtIhX!w<6&eUVQM; z`~;WY1V?CIMso@^w@f+O>JU=Uw$|OvN|!+hNGuSKAjIgZkOrST8SJdDudh}_;~?~zyZ*p?x`x%*cM6Y0!{UCbo~;t zgx;kqrUsr3Rk;>#rQt+_tF+FU)R{_nj6YHh7$DK?SCv0C7N??E5N-|v6v7L5$LjVM?le0OE1CT(NXY~h`own+bGaTLn!l0kkN z_0fE*PK!JeAP*A;?-!`6h2k)IBI4wg3Fnb{Bp~4GZqboSd9A5K6tye%w{3-v`1_E_5w0^1=@E zj)1@UE7oRKAlZU~hFU(HS$F#uOfFLk#Y-%!r2qawAd<=FL zoIZ#3DIzcqHtLJIS)4c2^tW_{VHwwst4!is(W%DHcT?U#GDnH?`RhRk|IcShgSg3- zsQEP*8mQIzrAHt>u}VTvZhg-J_CjTQp@r9BSGevJCp<;cAQ4q%1_~9ZzeJ6A!P5@v zxP-))GAg70u5aM?jN%1?r~h*km+Nj9bdps@@A)+F2>$*tM6Jpt*~%r&UG5mJk7j^B z#MTfgshGBf+0*?#@!OxCFpe2RHHs{9RT)1Ghs#R$-5(cOR7n;0{Z$tziB$c4U||EM zg_%e|5dJ(a^-nZxXUUR5tIYLi=JlJ)xLzoFR(W=0Yu}?EciKCub2qGRPiP@X>$HDrF&!;o0GANL!xS5 z@8*-z!*I#5w6AIntE@9`(oYpu)A)I5nbp^Ho8FfXhki|X z9w~H(#$>|-+JYV~ltY~~oCvHi?7Hu8DPzpullSK9%Ny5`j2CvSeq6+}v5yJsweO!v zNyN7OTbr;|I3O)kE@v<&m)>zH(m3XV&%>enJ)@5-AG8tE)o5Xf?rwmfCf*ou*l}ZU zx-EJ60sqEKW4*NoPSHb#aEJ=?j3BN-6l&oBAgzV94dFVAvLKVAYQKNKa5ULN4VeVt z1pl@~uB|y6I4Qeyz)I=C*!Cc(AX;imaf6_-;0lNLmh9(w&XE46-&mf_MSTL2Le_>l z96(Yk_V{f#`c95$Pk-0`Fl~9J7d`z&RDHbamn}(Mv)@px?BVAn=zP%F`WU$$baQ$@ HqNV-^^uvrO literal 9166 zcmbVy2UHW^x9$)E1nE)*g-}I6suZcA3ep8>(xvy_O8^1sAP7j2CPjLc-a(3VDMBa# zMSAZwFZ}NR-M8Ml@2&e^cdbk&v-de?zU+Nwe`oJA5o#(g2<}ne0|0$Z#~wx1^|FT>7%LRCS&gU*2UV%&Dzlc0K76j{v3AbhT`MwyB?AiwW?k<{pHOs zcCj*|cX?0Rav%1c;|F3-&3eH)h(=!Gw)&~7CS9Sc=j)yPlJFb3^#2|b@l^p^A-9(*kS5DsS-0ge-Km? zoTn-f>6u!n{&=KJmqrKVos!ZLY$oZFh!xbi!r9AgAsY~!$I%eaj4@)1;@bWFS8lNA zTtsKIzu5`2_6@k4CZael>o2?!rqy>u-a8+9&%DU+{>kPHUqj=U5LmgHIK6ZKud+VO z?^UphurEyh(zZ8EsHNEo?>7;Q)|IH)JYj=3Q-)2KI7}Yza^_kaS^)qGD9A`^dS&cn z`nzeoZaZs#yl09>UKa~ z=rZ~a8soS)>VB1+2NPDk$GtLp$ynJYJgjo^kD0C0pIM(C^$m#6D!6`d zRe2R<5jZ_KXkC3aOYhfyb%wag*nT=WH5JsYppDOXgCUfW@QwzaIPHY#G(qhEsOWVQ zbST(1UY{Y&O-IGiq}CT72rc{VS)*pMJcI zSo56kZOhD~!o`6x*J?RqS)+gugV&jJqoRk-)fUFGd%Gva#lQQj2l@um=%tR$+1MMq z!UxiV$Xhk2@{3gjt%+t-C-6(x6%`dAEUEQBkp=cZ;le`OQ!s0*uBht22IfdZjt_W3Y0tFP09tz|ofG+rxa>Y!zYgA)la7KTv5k9GLsdg}mM+0V zTeRxeK08RPCT9*D~}`+`6!j5;Q7{yfqe5xueNb%pzzb zfI%+tui^6gz=|oH%&vcjI)gBA{>&W9z$Ydq8d&6ou!Vx<=`n$o_jHg##TUdP?yr8V zKV-C#po!O@6R3;8c@r>ljK8p>+I-FXEOYB0p?V18k1*V~N8@hg(r1}qW+BW`H6`}x|dp>TcXFGHwAgVNJfL5`g+A3^<~=_fPjF2ir+?a-UpX} z8_Q%_gf!{tuS+mzsjo~d)xdi?;QJryD$^WN{yl{}g1T0rM}nm~>pfwQD3Xd44Z`Dp z_k#i54jW%*VTV+10lJSz)K$0S{tO)Kc-G=fe*d&jdJURFrF|{22O1`X@c<`bCgXqP z^UGfN;wYtz@1hG?K`|g3oO-u;H9b9Q5=qm9F@PEE(|jrVCg}uv-DQmtPr{Y__UP`& z(21q-8rV%66o7WK4gZ}MG!I`K_>S_2b)@R&ZMKL}80?B`j@ZhaWJO`%XJTz0z5J?G zp!{<9yKtJ+D4cn#5P<&`Xx}|G;6(n=aIGpnB;DBCJgm=y_^Duh+#5>cEfB&?v?4YS=#Dj}Wi(St%*HarP~urr~I&1OWD0zCF^8weObp z{M%{927@|bjJ6#aQHgnY9PZRBS}&ancF6%uuKiEcA5>l$KcE=($SJM9U%qK$=O=6z zY<6B=Pe(dz=x5pZz*C5DpdxV7o0_upl^MtWYToGO-g!MIUBT*cUK=}R`#>Xhy$(^H zZaa#{CW)*Gfk5z>50cG7$mW`VvQ~K=m|mBKA~zW@nmzZl%!3;!yJDdnHm46DQCVGW zfnrCOp=GMbL-c{n86D`9&MNWP4{1j*j!mxlt!10N(`OXet~6FECm~w+6t%KqN=8Zf zJ4eJ71F+8&(>eNqQR{x%e^Q{lKF*I_1ew+`JfY zz8pF#K^oxYoOfd)I*a1?yd6j(I7f#KWZ+}(pUU#7U}L(7wb$#$p&%C&OT>YON|Hg%OJS8)}OEjwwosj4~}H zS$Dmux8!M5w`sp~x=Sh9(*o7nerwgAjj>7kWN&?)ZNMpbF!#D+(^AR9XJ4ZWpItd~jWWNdZFpHK4#Uu|x_3kes0?9+=v?wvyH7FA=^jtm8P zOR@dFS>nO>si0G(s2hQx;j8o!_w2^uxB}NlPG+-}YcbTooMrgr%9Aou3dW2x4aSDl zNlT$w&1R`znuLx1Ht$+@2>`&gsA5A-WT<=W_RhirdyZCC9Z63#!tm`jmY&_WqF)h) z)#|hxoV_o;xYCwM7_z(#pj-A1JQX{2FH>Wj6g2Nsvi^qwhOg91$B0TndAaPy0Jl*GN8*9q5R(@@Y>D`87JYUlF`uUG*edAVi1A^b zn|WaVu9e=XD&MnRdNJQpjOsL9##x~BeAcp#Zl7G8Ndv0<@vqc8PAn-1dkT2dBK=#iue`uC%SDs#^gv+v~&s1nl-F|;MYGs2; zj1)H6RY{n)z~%bN5P_O76`Jmw>5|_gs$6Mn)~qu+8hrB=K?f(lq2UjKJQPG~x^jt& zV3%H};Dcj{9=%w)GHbXo8}5h{pZV$#Gd!}p&(Ned1Y^W7q-t91mzRYv8`4RTFt$nn z?3cDbSiTk?^yrKt5*F#;k!a2rIyw~M@0xscp(S3hrp7DT#naJ7>S5RL=Kkc{<{}_}&7a+L z#(VAN4N~li9(~Kc!N3P#W6hJ!yp3IFObDKlEqHzVwByr`n!)I|ZU5zv)q5;JeEY7* zMMIOBZI7=xr}d{U?~7&LU&1^sDshB-eso*E``&&z!|4}LFnT~P&c5ws^@MH)=#yCQ z3v2G~Dr{|-Fivd?T)Q?0a|bJD9e2rL)P2Q&B=|>ohlGTQWHDte5kY(S(v~Qh;1LcP z1qBFD$q>Q-ip;LAswt5!3v}w``_>iui?{Qt5wxWEXP4&(^1ZjfN#Yu)Jl!oY4DF)< zDJ_wP{NLEle^+sp^FKmlfI|YjoV`EU(PB9HlzY_ zaD#s9+K4;qiwoas&-0!<2JVl79!UghiGLPr)N~&u;$FdF=pFqcp;baIp4D`+Tc%|# z!aQ@cjN)r@4y9oH2gv!HC&cWMW#0LvUb5KuEwHq@lR|h1pSo3bnm^+a_D$RZXxcVX zTz%?lU~u6BOk8|!Z$Ao9Ur_8cFkR}jQpSZ>br^`k4%$6izHl-sO2R1kIw42yIElY9 zJoA0I+!pt9=|-5f4Kdo9ILe=DSB5-*_*e8ZOR7KQvd0!%&HU&WuU7D)sn=vIzLEQj zi9Zyb%AN%SR0rCi@~fa~-ucsbGmzF$c{LZ3t(h~|rfv&Qvxy~_am6hGWyzUx3C*_j zzh3>3@;g7p@KvjL0K?0p?fvd3jYP-97yy5P4p}l^e_;IS5#Qt0mHrJC(cfuNIQtl% z9q~+aN4~}J*MgiF5KPFUM1N_Ep!IY3--~V6g#^dMD8M!=P`BYM$o$U~Klmb)CA9$C znNrW}Aj@XAw+>YcftistY|T-i#nL1l@IH@O_hFFz{9!cA_u7gvDJHQElD74;D!5{l z$jHd+1$G+Bwv`jme5q>A1;o2t@u2)5&!0bEW_ZM0mf*&EmIoxBEC351*lC`0$v@@C~F{r1dB=sU^>6 zD`14}F*G|wZ&g&q0VK==r>zSiG(R8SJ?ww@e5lf7r8nJe7&O&#n0yyyOuMr>WQ4oi=qV==B^Rl@`mRlAV;4)UkH7Jk-R;I;#iL z4EyHC;rdko!(3>lPqoLDlZd5B&{&*F(#Yz0RItt!<{yxur&+Dy)GhGHz~49qDyCS0 z2@8ldg9uv{Fr|U8?#~l6p(AN1+S23W)G%ZNhNHhOcyE@-B#rvr*>-rP!6}~ZHJl80 z@v<5c^c&l)7TfLYHYw)KXA+j@T^f$hGN1pPr#89gBZ@rv5toE)l90NFGuge=oeYus zp;M-Xer{LLSaV>x_L8VaA|4R*+AJAWz#!p-g!Lek4d}AOUv;7vLR~#k6Ts>7loyMX z#udJpO$s7Ii_oFP?9EyFvPraY#}JQh0}F!p);AO5W@pe7Y>=pqDH_o1n0adOvV71A zi<=O2zSWKi@DTz^8X;asbihhM*w+7goi#r44TBYtir}DE-c&>cl`vzi+eUy(ZdOleI({uq94+wTZ2O;} zUGV-j3q_h^nD2Fvx!J*Rl}79WT|FVfAC@${rA>OrtK)0|S1JifuTA@*Lc$=R;}f4{ zWnG?`eBdsqk`tvQleB-~XJv0skT03@s+_k$Ke*f$^Q$495&OX@&bj!Uk@J#)jKZ%{ zg-Ml9n@u#&#@*p`Y|=`^A5j_~c;W1#q)9^`O;v2hPJH2XO=BPTH79Y)ZP2$1<9zq= z<1+P(>cLb*4vU&}>EhCAQ!F0pelUuO_uc>)vL{0siCtD!R?HQQVRG=J0cZ&G))tAi zI43eC%htBHetA5l%_XOglln_ts)C|l6Z0I6w#SzFjUrO2p?j?rm5(I|0~L{&IveQz z39aPPpXuf3lMUSHx=Y;8ss4>z{y$d-X>?yO1S*VZj&2|3&pdy~9N=^YvNvo`*5@e) zmacEQ;?LH%XzE2r9L0YZt>83DeqX+nySCHgDSv1LZ9jEC!g^TlC=EP^r|HJyz0iC56IqaZ4S@B`53-Mj%dF?RO}zD&H#Yn^=z$)b>Oha z>dlk#;cKk6?Zo5_Z~Tz zwa8(YE6%elda7<^7G7!nJL~-K!a*V%sU6zP9I5|A>TgMDM*xc&h z>!6z^<;p`RF&-Tb00=u>I#5Tt7}M(U*g4J;b6O^8xNnF_k6GpHU_|w@R_of zMN%3JJ3>APJyg;-n~Qh`UC;Q%nw%Jp{9Y5iej)=GL8^ShUFR4L*45ZAl%6<*+dVTj zQk@3K$;p`{BE6k28!c3Xm-@{uoAIy}Et90BVQj#l*ilBty zO?w;^Z!L{t?kuF+QrpttMESt?_k2SFBQ1+1A@&^NSyW20k$1!AROz*`kYSUswP0-x z6{2@B)fQL0rmm^W2Lx=%%0du}JoubpMl8+l`$(vd@!Dw(-WT00_V46Oq83}5{K1GF zITI6lHa0d0xx2Z!`FsR?bJIrmIy5xYsd-9vSSLf|Trj%TnX@Of`8~%bVkrg@u+Uup zA`*pMa;v9X-wigOv?>+VSJhGPE9p+IiKdQ$d8X{1wmL{`V+q{ZqcS&EJN&67S7onq zIzW!?^`(JI_1Vjsr#6;BaHq{g{PEU+(NL$|ioZg$R!Aoy1|{Qq#K9@T@$Ks1$4GZJ zcJ_$A-x%cW-OKSBtYy)e{_gK^p=Qg!man)`o|%#EJqTM|d9I>!YqIf>fls6+ppf2R zPlt9~)cU1fmC9<0Q6jPfC^}bGkOQW{EF~md6=l8MBD-3pM+j}Lc(^06=5+)EY@WT7 zIcJS8K6;;co`mS07;U>532i9N?-Y(MLm|z$2lshAR+uhyx2g<1cIThee*4z7?9^e# zo72!hg-)M~N=u_taU%o%tgYptB`k@!gyERz*w}>K>Att{G~?=+6b+moKUqKejThJV zr{~NRqMJd+-0b3azrR0ip~O}!-zB>j?{gS*Dv+A-oH$y}%3= z-TGHsF6HFnFX{Z+z^bLLF8Mu&AlCclyPMgbJY$JE z+Cq>Ri(A~)-IplAb`%|^A7~5It}m^OKhEDyw(azrt?1n;CFHS9_;gGthPdxxQ%PYQ z-=w!EA+ipZnW#ed8D9NUou8e?!&KsifWYt2nWxSKd;QW)F-d@OmFRB+*GmD=$4hiXmYa98$b_iT- z@vhV>bGebRcy9}5#*;DS3B_7kDr{kb&|vWL+CxJm!8kZP#8i{^!C}-1IyFFz`h8#R z40o+rNPHqDI2ayCynnJO*txO#BBDDLOJNfvjPr4(&yo>V&O;+f3?_N!Td7@-`}w}D zf`uH6!pAY|aMR8X+&`E!-Np1SyJG1J0$i6X&w|+Dmb`zpv{LFkCql4(_kX;qKG+mA7TuCDI>)eRL@e6m`EB}f*NLl^qNj&F<-KA%@Y&KpC`g3S>yKgr8u-(*wa6kc;bQD~WvvrFigz3= zXQD+R+S=-5Tco(Lu|ZE8hhtHryE{HrATTL}=J9}bI*(?9Du-(x_*5)>DGyDY*B`JL zf~E-1Ps(ELMlt5s>d>_5SVR)h3KI^e&5JeW8vOrc{we&|zaagtjiC|%=aeQ^gX zaVjbx6H%b-F67j+GtFVB*QP}_Ff{i3nA@Zatl#3L{tw+w{QN0>4-e1zz;yc~evl0I zzIVKR{o4Uhf||NSgSqKqz?{gkXyqbxAF=9 z`JL}d;h1P|78Px+;J?FwMc+pqFrB`zva!i!foe`ZefrcH!Ntb*p*JffCA^@3<=2i! z?;$QD;74m_W;Xa_yga1OX>I;f`&HN;3na!FK%_NF1M-kP@XO zDp1XeMN^H=T2BONk3)T4Q4yq2CG$hx`}?>!oev&-;-(>>+KFywwSH#5fVoeEJ-)P* zG6`*P!Z+r_{50LOs(a}NpCPKBlT8`0@}i_&?5m`cN-_p^ zCnPc3-un=EAQO*|_ITrrx$tpXev8aL|3gBxqRL;`< zaNFYgOj>b&o4}DRnIK+L|5*OYG=DRgDs!swi3m+1A+5|-#`8$?E8Nc8F^}S}P5*Q{ zJVd$)|1N;Fwzj$q=2`5Q`q--p7bz#*t8*vH?#uK4%SuAP&+tizkaaM|s61bT7gk(> zjSk#NN|j_LwamAd=k}PCW6#Du9F}ydM$|ElI>?35^Eou$8q;z5Tt8{2)@P6WQ?PAE z_F%;l^t2OtdUpKf+J^hlB+JXtIRt`#_@VW@=ZpL2@)Nl&67y$Lh>rg9xFx!6MSUwO zYg~Ik{8epzec`cRnpSwMCl~P#`FXq^-uq{us_33p7zd;CzeFDLfCC;g}Uo6xMai^kP9`Q|Xcsz6o{``MAQBECE$Z!@bO*VU&&?ICSjtvB293G0euC2&n?;B~ zMx5_Ku$d2RNVuQU;lD)3qFKfqOhG0|TknRvk(`k6ycd}9GD@MPe!58HgGRY6X^WU<}KM*LV7Um`eNri26II~+lt?*?rU^| z29s0RrZ`5&*LMFV8NuuTC&fMjJA;vY1%1pvLZJ{+Go7Fh>9HpJ=~=APjr%e3m;L~G zV5|l#FkPIqK_3vmceY~c-tVV-k6b03=!XDMZe#p?!1Q6}Y*C3nu&-p@2UY^&y(m~2 zYoYqz@iFp7VqUy?lfLWme2FL$+exW}R8P9KVSouqSMV-$3c!9ASLFT;HLi#>?Fn#K^s5VO#5>xm!TBBPgz!`JaS?$K=Uqe-(!r#)G5@sFa=&pQqpR9n&o9qa>EMu;DjWrz?!UTBB=^aPE-rFat+e`P zk6_90XK(poh#rTxx(pqaBU3jgn|yKCCM2(J0ZQSp->$4(r^pqR1ms%I%-bPI1d8Hw zPVtqpO)k++XC6++xR~$j*W{hil_ZyO_ZP2Fz*w!QPwo@7L8k>gw<*uuqTka26l7Io%B75h{}-A6jK=@~ From a186f4211efe8b0954bd1aea4c208375e4b0b1cc Mon Sep 17 00:00:00 2001 From: sadkermit Date: Sun, 10 Jan 2021 10:58:36 +0000 Subject: [PATCH 08/28] Hyperzine OD Tweak (#10897) Having hyperzine and 5 units of adrenaline in your system will no longer fast track you to an overdose that is constant until all hyperzine exits your system. Instead it reduces the amount of hyperzine required to OD from 15u to 10u, with the overdose only lasting while you have a volume of 10u hyperzine in your blood or larger. While managing smaller doses is still important during combat, it should be a lot less risky to use and less punishing should you be overdosed. --- .../Chemistry-Reagents-Medicine.dm | 3 +- html/changelogs/hyperzine_od_tweak.yml | 41 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/hyperzine_od_tweak.yml diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index e6518d901d3..8c2f56386e7 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -561,7 +561,8 @@ if((locate(/datum/reagent/adrenaline) in M.reagents.reagent_list)) if(M.reagents.get_reagent_amount(/datum/reagent/adrenaline) > 5) //So you can tolerate being attacked whilst hyperzine is in your system. - overdose = volume/2 //Straight to overdose. + overdose = 10 //Volume of hyperzine required to OD reduced from 15u to 10u. + od_minimum_dose = 0 /datum/reagent/hyperzine/overdose(var/mob/living/carbon/M, var/alien, var/removed) M.adjustNutritionLoss(5*removed) diff --git a/html/changelogs/hyperzine_od_tweak.yml b/html/changelogs/hyperzine_od_tweak.yml new file mode 100644 index 00000000000..c86821ba8d9 --- /dev/null +++ b/html/changelogs/hyperzine_od_tweak.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Kermit + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Having both hyperzine and adrenaline in your system no longer fast-tracks you to a hyperzine OD, but instead reduces the volume of hyperzine required to OD from 15u to 10u. Should be less dangerous to use hyperzine as a combat stimulant, though managing doses is still important." From 2fadb6995c584ceb38497024e8d423e57759c988 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 10 Jan 2021 12:59:00 +0200 Subject: [PATCH 09/28] Djinn Tea Sprite Fix (#10936) Fixed the Djinn Tea glass sprite, also added a placeholder for missing sprites. --- html/changelogs/geeves-djinn_tea_sprite.yml | 6 ++++++ icons/obj/drinks.dmi | Bin 125162 -> 126634 bytes 2 files changed, 6 insertions(+) create mode 100644 html/changelogs/geeves-djinn_tea_sprite.yml diff --git a/html/changelogs/geeves-djinn_tea_sprite.yml b/html/changelogs/geeves-djinn_tea_sprite.yml new file mode 100644 index 00000000000..8d5e314c295 --- /dev/null +++ b/html/changelogs/geeves-djinn_tea_sprite.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Fixed the Djinn Tea glass sprite, also added a placeholder for missing sprites." \ No newline at end of file diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 6d4d66a707f391ae4987607675e1c53980422abb..459c493aae95b89597cc3da10d3ff2f8ccbe2313 100644 GIT binary patch literal 126634 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%0AgT&!N*F5lyFFRSMpsZ($j?BG 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

~4@}2)BCyf+71=A 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 From 6aff536a84f60a72c4aa0b2f402594082b189407 Mon Sep 17 00:00:00 2001 From: Werner <1331699+Arrow768@users.noreply.github.com> Date: Sun, 10 Jan 2021 15:01:58 +0100 Subject: [PATCH 10/28] Revert "Pick up fixes (#10922)" (#10949) --- aurorastation.dme | 1 - code/__defines/_macros.dm | 1 - code/__defines/appearance.dm | 3 - code/game/atoms_movable.dm | 66 ++++++++++--------- code/game/objects/items.dm | 8 +-- .../mob/living/silicon/robot/items/gripper.dm | 2 +- html/changelogs/wezzy_pickupfix.yml | 41 ------------ 7 files changed, 39 insertions(+), 83 deletions(-) delete mode 100644 code/__defines/appearance.dm delete mode 100644 html/changelogs/wezzy_pickupfix.yml diff --git a/aurorastation.dme b/aurorastation.dme index c19dacace72..979c90f5cad 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -21,7 +21,6 @@ #include "code\__defines\_macros.dm" #include "code\__defines\admin.dm" #include "code\__defines\antagonist.dm" -#include "code\__defines\appearance.dm" #include "code\__defines\atmos.dm" #include "code\__defines\battle_monsters.dm" #include "code\__defines\callback.dm" diff --git a/code/__defines/_macros.dm b/code/__defines/_macros.dm index 53b61a96d91..b578242fbed 100644 --- a/code/__defines/_macros.dm +++ b/code/__defines/_macros.dm @@ -23,7 +23,6 @@ #define FONT_GIANT(X) "[X]" #define isAI(A) istype(A, /mob/living/silicon/ai) - #define isDrone(A) istype(A, /mob/living/silicon/robot/drone) #define isalien(A) istype(A, /mob/living/carbon/alien) diff --git a/code/__defines/appearance.dm b/code/__defines/appearance.dm deleted file mode 100644 index faa97e8f066..00000000000 --- a/code/__defines/appearance.dm +++ /dev/null @@ -1,3 +0,0 @@ -// Consider these images/atoms as part of the UI/HUD -#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA -#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index d7fe1a1482f..8df12dab60b 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -332,40 +332,40 @@ /atom/movable/proc/get_bullet_impact_effect_type() return BULLET_IMPACT_NONE -/atom/movable/proc/do_pickup_animation(atom/target, atom/old_loc) +/atom/movable/proc/do_pickup_animation(atom/target) set waitfor = FALSE - if(QDELETED(src)) - return - if(QDELETED(target)) - return - if(QDELETED(old_loc)) + if(!isturf(loc)) return + var/image/I = image(icon, loc, icon_state, layer + 0.1, dir, pixel_x, pixel_y) + I.transform *= 0.75 + I.appearance_flags = (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE) + var/turf/T = get_turf(src) + var/direction + var/to_x = 0 + var/to_y = 0 - var/turf/old_turf = get_turf(old_loc) - var/image/I = image(icon = src, loc = old_turf, layer = ABOVE_MOB_LAYER) - I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - if(ismob(target)) - I.dir = target.dir - - if(istype(old_loc, /obj/item/storage)) - I.pixel_x += old_loc.pixel_x - I.pixel_y += old_loc.pixel_y - - flick_overlay(I, clients, 7) - + if(!QDELETED(T) && !QDELETED(target)) + direction = get_dir(T, target) + if(direction & NORTH) + to_y = 32 + else if(direction & SOUTH) + to_y = -32 + if(direction & EAST) + to_x = 32 + else if(direction & WEST) + to_x = -32 + if(!direction) + to_y = 16 + var/list/viewing = list() + for(var/mob/M in viewers(target)) + if(M.client) + viewing |= M.client + flick_overlay(I, viewing, 7) var/matrix/M = new - M.Turn(pick(30, -30)) - - animate(I, transform = M, time = 1) + M.Turn(pick(-30, 30)) + animate(I, alpha = 175, pixel_x = to_x, pixel_y = to_y, time = 3, transform = M, easing = CUBIC_EASING) sleep(1) - animate(I, transform = matrix(), time = 1) - sleep(1) - - var/to_x = (target.x - old_turf.x) * 32 - var/to_y = (target.y - old_turf.y) * 32 - - animate(I, pixel_x = to_x, pixel_y = to_y, time = 3, transform = matrix() * 0, easing = CUBIC_EASING) - sleep(3) + animate(I, alpha = 0, transform = matrix(), time = 1) /atom/movable/proc/do_putdown_animation(atom/target, mob/user) spawn() @@ -416,9 +416,13 @@ invisibility = 100 var/turf/old_turf = get_turf(src) var/image/I = image(icon = src, loc = src.loc, layer = layer + 0.1) - I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA + I.appearance_flags = (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE) - flick_overlay(I, clients, 4) + var/list/viewing = list() + for(var/mob/M in viewers(target)) + if(M.client) + viewing |= M.client + flick_overlay(I, viewing, 4) var/to_x = (target.x - old_turf.x) * 32 + pixel_x var/to_y = (target.y - old_turf.y) * 32 + pixel_y diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e6666ad2b92..e4f7f4c584e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -324,11 +324,9 @@ // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) - throwing = 0 - var/atom/old_loc = loc - if(user.put_in_active_hand(src) && old_loc) - if((user != old_loc) && (user != old_loc.get_holding_mob())) - do_pickup_animation(user, old_loc) + pixel_x = 0 + pixel_y = 0 + do_pickup_animation(user) // called when this item is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /obj/item/proc/on_exit_storage(obj/item/storage/S as obj) diff --git a/code/modules/mob/living/silicon/robot/items/gripper.dm b/code/modules/mob/living/silicon/robot/items/gripper.dm index 6d73dd833d3..2d69ac0c71b 100644 --- a/code/modules/mob/living/silicon/robot/items/gripper.dm +++ b/code/modules/mob/living/silicon/robot/items/gripper.dm @@ -58,7 +58,7 @@ if(feedback) to_chat(user, SPAN_NOTICE("You collect \the [I].")) if(isturf(I.loc) && I.Adjacent(user)) - I.do_pickup_animation(user, loc) + I.do_pickup_animation(user) I.forceMove(src) wrapped = I wrapped.pixel_x = 0 diff --git a/html/changelogs/wezzy_pickupfix.yml b/html/changelogs/wezzy_pickupfix.yml deleted file mode 100644 index a005b561cd5..00000000000 --- a/html/changelogs/wezzy_pickupfix.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: Wowzewow (Wezzy) - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Fixes pickup animations not playing the shake effect." \ No newline at end of file From fe8341ff1f8c096e8f6a09c0d2b319605a863738 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 10 Jan 2021 21:39:17 +0200 Subject: [PATCH 11/28] Sleep Tight Disky (#10896) --- code/game/objects/structures/stool_bed_chair_nest/bed.dm | 5 +++++ html/changelogs/geeves-sleep_tight_disky.yml | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 html/changelogs/geeves-sleep_tight_disky.yml diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 1711b99fde2..51b1dee10fd 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -165,6 +165,11 @@ if(!G.wrapped) user_unbuckle_mob(user) + else if(istype(W, /obj/item/disk)) + user.drop_from_inventory(W, get_turf(src)) + W.pixel_x = 10 //make sure they reach the pillow + W.pixel_y = -6 + else if(!istype(W, /obj/item/bedsheet)) ..() diff --git a/html/changelogs/geeves-sleep_tight_disky.yml b/html/changelogs/geeves-sleep_tight_disky.yml new file mode 100644 index 00000000000..c44445326ca --- /dev/null +++ b/html/changelogs/geeves-sleep_tight_disky.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "You can now click on a bed with a disk in hand to put the disk on the bed. Remember to put a blanket over it." \ No newline at end of file From 5ebfbd3151118d229b02a47c57756278d7529364 Mon Sep 17 00:00:00 2001 From: Doxxmedearly <38594443+Doxxmedearly@users.noreply.github.com> Date: Sun, 10 Jan 2021 20:47:46 -0600 Subject: [PATCH 12/28] Scrubber event tweaks (#10933) --- code/modules/events/vent_clog.dm | 73 +++++++++++-------- .../doxxmedearly - clog_event_rework.yml | 6 ++ 2 files changed, 50 insertions(+), 29 deletions(-) create mode 100644 html/changelogs/doxxmedearly - clog_event_rework.yml diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index d0c32b8be01..9867e5b610b 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -1,4 +1,3 @@ - /datum/event/vent_clog announceWhen = 1 startWhen = 5 @@ -6,31 +5,47 @@ var/interval = 2 var/list/vents = list() var/list/gunk = list( - /datum/reagent/water, - /datum/reagent/carbon, - /datum/reagent/nutriment/flour, - /datum/reagent/spacecleaner, - /datum/reagent/nutriment, - /datum/reagent/capsaicin/condensed, - /datum/reagent/mindbreaker, - /datum/reagent/lube, - /datum/reagent/paint, - /datum/reagent/paint, - /datum/reagent/drink/banana, - /datum/reagent/space_drugs, - /datum/reagent/water/holywater, - /datum/reagent/drink/hot_coco, - /datum/reagent/hyperzine, - /datum/reagent/paint, - /datum/reagent/luminol, - /datum/reagent/fuel, - /datum/reagent/blood, - /datum/reagent/sterilizine, - /datum/reagent/verunol, - /datum/reagent/toxin/fertilizer/monoammoniumphosphate + /datum/reagent/water = 10, + /datum/reagent/carbon = 5, + /datum/reagent/nutriment/flour = 8, + /datum/reagent/spacecleaner = 6, + /datum/reagent/nutriment = 6, + /datum/reagent/capsaicin/condensed = 2, + /datum/reagent/mindbreaker = 0.5, + /datum/reagent/lube = 4, + /datum/reagent/paint = 3, + /datum/reagent/drink/banana = 3, + /datum/reagent/space_drugs = 3, + /datum/reagent/water/holywater = 1, + /datum/reagent/drink/hot_coco = 3, + /datum/reagent/hyperzine = 0.75, + /datum/reagent/luminol = 2, + /datum/reagent/fuel = 3, + /datum/reagent/blood = 2, + /datum/reagent/sterilizine = 3, + /datum/reagent/verunol = 3, + /datum/reagent/toxin/fertilizer/monoammoniumphosphate = 1, + /datum/reagent/saline = 2, + /datum/reagent/mental/kokoreed = 0.5, + /datum/reagent/mental/vaam = 0.5, + /datum/reagent/toxin/tobacco = 3, + /datum/reagent/stone_dust = 0.5, + /datum/reagent/crayon_dust = 1, + /datum/reagent/alcohol/butanol = 2, + /datum/reagent/alcohol/ethanol = 2, + /datum/reagent/sugar = 2, + /datum/reagent/drink/coffee = 4, + /datum/reagent/wulumunusha = 0.25, + /datum/reagent/nutriment/virusfood = 2, + /datum/reagent/sodiumchloride = 2, + /datum/reagent/drink/zorasoda/venomgrass = 1, + /datum/reagent/nutriment/protein/egg = 2, + /datum/reagent/serotrotium = 1, + /datum/reagent/psilocybin = 0.5, + /datum/reagent/toxin/spectrocybin = 0.1 ) var/list/gunk_data = list( - /datum/reagent/paint = list("#FE191A", "FDFE7D") + /datum/reagent/paint = list("#FE191A", "#AAAA79", "#5F89E6", "#6CDB38", "#B474B6", "#F0DD34") ) @@ -51,11 +66,11 @@ var/obj/machinery/atmospherics/unary/vent_scrubber/vent = pick_n_take(vents) if(vent && vent.loc && !vent.is_welded()) - - var/datum/reagents/R = new/datum/reagents(35) + var/datum/reagent/chem = pickweight(gunk) + var/reagent_amount = rand(2,5) * 5 //10 to 25 units + var/datum/reagents/R = new/datum/reagents(reagent_amount) R.my_atom = vent - var/chem = pick(gunk) - R.add_reagent(chem, 35, pick(gunk_data[chem])) + R.add_reagent(chem, reagent_amount, pick(gunk_data[chem])) var/datum/effect/effect/system/smoke_spread/chem/smoke = new smoke.show_log = 0 // This displays a log on creation @@ -67,4 +82,4 @@ /datum/event/vent_clog/announce() - command_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert", new_sound = 'sound/AI/scrubbers.ogg') + command_announcement.Announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert", new_sound = 'sound/AI/scrubbers.ogg') \ No newline at end of file diff --git a/html/changelogs/doxxmedearly - clog_event_rework.yml b/html/changelogs/doxxmedearly - clog_event_rework.yml new file mode 100644 index 00000000000..f07062bed23 --- /dev/null +++ b/html/changelogs/doxxmedearly - clog_event_rework.yml @@ -0,0 +1,6 @@ +author: Doxxmedearly +delete-after: True + +changes: + - tweak: "Reworked scrubber backsurge odds to make certain things like mindbreaker less common. Reagent amounts are randomized between 10u and 25u now, instead of always being 35u." + - rscadd: "Added more reagent variety to backsurge events, as well as paint color variety." \ No newline at end of file From 6e3d30f48667b6e7425118216d37a3b156b4b3b2 Mon Sep 17 00:00:00 2001 From: WickedCybs <52309324+WickedCybs@users.noreply.github.com> Date: Mon, 11 Jan 2021 01:36:11 -0700 Subject: [PATCH 13/28] Tajara short fringe and shading fix (#10944) --- html/changelogs/wickedcybs_fix_fringe.yml | 7 +++++++ icons/mob/human_face/msai_hair.dmi | Bin 8002 -> 8007 bytes icons/mob/human_face/tajara_hair.dmi | Bin 8213 -> 8214 bytes icons/mob/human_races/markings.dmi | Bin 36275 -> 36253 bytes 4 files changed, 7 insertions(+) create mode 100644 html/changelogs/wickedcybs_fix_fringe.yml diff --git a/html/changelogs/wickedcybs_fix_fringe.yml b/html/changelogs/wickedcybs_fix_fringe.yml new file mode 100644 index 00000000000..d4303017f05 --- /dev/null +++ b/html/changelogs/wickedcybs_fix_fringe.yml @@ -0,0 +1,7 @@ +author: WickedCybs + +delete-after: True + +changes: + - bugfix: "Fixed a missing pixel on the Tajara short fringe hairstyle." + - bugfix: "Fixed a shading issue with a mouth body pattern." \ No newline at end of file diff --git a/icons/mob/human_face/msai_hair.dmi b/icons/mob/human_face/msai_hair.dmi index b2af36f3332b4ccace1da7615f9dcd2b7334e784..8f9471e7d2705d3225390a38ad72d33a26173932 100644 GIT binary patch delta 6351 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 Cgcl?L delta 6329 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 V>CLiH9vuc<=d2wO#Iu+0{vVz+2L1p5 diff --git a/icons/mob/human_face/tajara_hair.dmi b/icons/mob/human_face/tajara_hair.dmi index e7ac3fcedb98b9198c866f3eeed53744b226abee..c00973b5f5ac54c3f2cbe03f37f0cf5d20a607fd 100644 GIT binary patch delta 5549 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 delta 5539 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 b*@7F+_}D%A8c+ZpgwCG4a3agV_QC%EUOc-c delta 14338 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 h{QvUh#Q)pawnLX5Tzh|}F%MbLxj#)# Date: Mon, 11 Jan 2021 02:36:34 -0600 Subject: [PATCH 14/28] Saner Saline Plus (#10932) --- code/modules/reagents/Chemistry-Recipes.dm | 4 ++-- html/changelogs/doxxmedearly - sanersaline.yml | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 html/changelogs/doxxmedearly - sanersaline.yml diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 93fc79f3418..8d8fecb7247 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -636,9 +636,9 @@ name = "Saline Plus" id = "saline" result = /datum/reagent/saline - required_reagents = list(/datum/reagent/water = 2, /datum/reagent/sugar = 0.2, /datum/reagent/sodiumchloride = 0.4) + required_reagents = list(/datum/reagent/water = 2, /datum/reagent/sugar = 0.5, /datum/reagent/sodiumchloride = 1) catalysts = list(/datum/reagent/toxin/phoron = 5) - result_amount = 1 + result_amount = 2 /datum/chemical_reaction/cataleptinol name = "Cataleptinol" diff --git a/html/changelogs/doxxmedearly - sanersaline.yml b/html/changelogs/doxxmedearly - sanersaline.yml new file mode 100644 index 00000000000..c43aa079b63 --- /dev/null +++ b/html/changelogs/doxxmedearly - sanersaline.yml @@ -0,0 +1,6 @@ +author: Doxxmedearly + +delete-after: True + +changes: + - tweak: "Changed the recipe for Saline Plus to be less obnoxious. The recipe is now 2u Water to 1u Sodium Chloride to 0.5u Sugar, and results in 2 units instead of 1." From f99e4a29c0aa5eb65ac2156885f69f6f0a1bfe30 Mon Sep 17 00:00:00 2001 From: Geeves Date: Mon, 11 Jan 2021 10:36:43 +0200 Subject: [PATCH 15/28] Flat Un-Trips (#10918) --- code/modules/clothing/shoes/jobs.dm | 6 ------ html/changelogs/geeves-flat_trips.yml | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 html/changelogs/geeves-flat_trips.yml diff --git a/code/modules/clothing/shoes/jobs.dm b/code/modules/clothing/shoes/jobs.dm index 5ab8419d8d6..f9542fd32d5 100644 --- a/code/modules/clothing/shoes/jobs.dm +++ b/code/modules/clothing/shoes/jobs.dm @@ -28,9 +28,6 @@ desc = "Taller synthleather boots with an artificial shine." icon_state = "kneeboots" item_state = "kneeboots" - -/obj/item/clothing/shoes/jackboots/knee/handle_movement(var/turf/walking, var/running) - trip_up(walking, running) /obj/item/clothing/shoes/jackboots/thigh name = "thigh-length black boots" @@ -38,9 +35,6 @@ icon_state = "thighboots" item_state = "thighboots" -/obj/item/clothing/shoes/jackboots/thigh/handle_movement(var/turf/walking, var/running) - trip_up(walking, running) - /obj/item/clothing/shoes/jackboots/toeless name = "toe-less black boots" desc = "Modified pair of boots, particularly friendly to those species whose toes hold claws." diff --git a/html/changelogs/geeves-flat_trips.yml b/html/changelogs/geeves-flat_trips.yml new file mode 100644 index 00000000000..f16e27eddc4 --- /dev/null +++ b/html/changelogs/geeves-flat_trips.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "Thigh-high and knee-high boots no longer make you trip." \ No newline at end of file From 339c531ad7600e66c8b023eb27913970ea5c96b0 Mon Sep 17 00:00:00 2001 From: Karolis Date: Mon, 11 Jan 2021 11:04:16 +0200 Subject: [PATCH 16/28] New chat client / messenger (#10654) --- aurorastation.dme | 3 + code/__defines/misc.dm | 1 + code/game/objects/items/weapons/cards_ids.dm | 9 +- .../admin/view_variables/view_variables.dm | 2 +- code/modules/mob/living/silicon/silicon.dm | 4 + .../NTNet/NTNRC/conversation.dm | 221 ++++--- .../modular_computers/NTNet/NTNRC/message.dm | 96 +++ .../modular_computers/NTNet/NTNRC/ntnrc.dm | 28 + .../modular_computers/NTNet/NTNRC/user.dm | 21 + code/modules/modular_computers/NTNet/NTNet.dm | 2 - .../computers/modular_computer/core.dm | 35 +- .../computers/modular_computer/power.dm | 5 +- .../computers/modular_computer/variables.dm | 1 + .../computers/subtypes/dev_handheld.dm | 1 + .../computers/subtypes/dev_laptop.dm | 1 + .../computers/subtypes/dev_pda.dm | 1 + .../computers/subtypes/dev_silicon.dm | 20 +- .../computers/subtypes/dev_wristbound.dm | 1 + .../modular_computers/file_system/program.dm | 34 +- .../file_system/program_events.dm | 50 +- .../file_system/programs/app_presets.dm | 44 +- .../programs/generic/ntnrc_client.dm | 548 +++++++----------- .../programs/system/client_manager.dm | 2 +- html/changelogs/chat meesenger.yml | 6 + nano/templates/ntnet_chat.tmpl | 84 --- nano/templates/ntnet_clientmanager.tmpl | 101 ---- nano/templates/ntnet_downloader.tmpl | 132 ----- .../view/mcomputer/chat/channel-btn.vue | 42 ++ .../components/view/mcomputer/chat/chat.vue | 119 ++++ .../view/mcomputer/chat/explore.vue | 41 ++ .../components/view/mcomputer/chat/index.vue | 49 ++ 31 files changed, 858 insertions(+), 846 deletions(-) create mode 100644 code/modules/modular_computers/NTNet/NTNRC/message.dm create mode 100644 code/modules/modular_computers/NTNet/NTNRC/ntnrc.dm create mode 100644 code/modules/modular_computers/NTNet/NTNRC/user.dm create mode 100644 html/changelogs/chat meesenger.yml delete mode 100644 nano/templates/ntnet_chat.tmpl delete mode 100644 nano/templates/ntnet_clientmanager.tmpl delete mode 100644 nano/templates/ntnet_downloader.tmpl create mode 100644 vueui/src/components/view/mcomputer/chat/channel-btn.vue create mode 100644 vueui/src/components/view/mcomputer/chat/chat.vue create mode 100644 vueui/src/components/view/mcomputer/chat/explore.vue create mode 100644 vueui/src/components/view/mcomputer/chat/index.vue diff --git a/aurorastation.dme b/aurorastation.dme index 979c90f5cad..03906c909a9 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2254,6 +2254,9 @@ #include "code\modules\modular_computers\NTNet\NTNet.dm" #include "code\modules\modular_computers\NTNet\NTNet_relay.dm" #include "code\modules\modular_computers\NTNet\NTNRC\conversation.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\message.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\ntnrc.dm" +#include "code\modules\modular_computers\NTNet\NTNRC\user.dm" #include "code\modules\multiz\_stubs.dm" #include "code\modules\multiz\basic.dm" #include "code\modules\multiz\hoist.dm" diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 158c23b2784..418b2fe81d0 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -201,6 +201,7 @@ #define PROGRAM_ALL_REGULAR (PROGRAM_CONSOLE | PROGRAM_LAPTOP | PROGRAM_TABLET | PROGRAM_WRISTBOUND | PROGRAM_TELESCREEN) #define PROGRAM_ALL_HANDHELD (PROGRAM_TABLET | PROGRAM_WRISTBOUND) +#define PROGRAM_STATE_DISABLED -1 #define PROGRAM_STATE_KILLED 0 #define PROGRAM_STATE_BACKGROUND 1 #define PROGRAM_STATE_ACTIVE 2 diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 6001ee141ad..64feea0c671 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -126,7 +126,7 @@ var/const/NO_EMAG_ACT = -50 var/assignment = null //can be alt title or the actual job var/rank = null //actual job var/dorm = 0 // determines if this ID has claimed a dorm already - var/chat_registered = FALSE // registration for NTNET chat + var/datum/ntnet_user/chat_user /obj/item/card/id/Destroy() mob = null @@ -151,6 +151,8 @@ var/const/NO_EMAG_ACT = -50 /obj/item/card/id/proc/update_name() name = "ID Card ([src.registered_name] ([src.assignment]))" + if(istype(chat_user)) + chat_user.username = chat_user.generateUsernameIdCard(src) /obj/item/card/id/proc/set_id_photo(var/mob/M) front = getFlatIcon(M, SOUTH) @@ -334,6 +336,11 @@ var/const/NO_EMAG_ACT = -50 wear_over_suit = !wear_over_suit mob_icon_update() +/obj/item/card/id/proc/InitializeChatUser() + if(!istype(chat_user)) + chat_user = new() + chat_user.username = chat_user.generateUsernameIdCard(src) + /obj/item/card/id/silver icon_state = "silver" item_state = "silver_id" diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm index 93f66c9ac77..3f2a41ec738 100644 --- a/code/modules/admin/view_variables/view_variables.dm +++ b/code/modules/admin/view_variables/view_variables.dm @@ -131,7 +131,7 @@ // get_debug_type displays this else if(istext(value)) debug_type = null // it's kinda annoying here; we can tell the type by the quotes - vtext = "\"[value]\"" + vtext = "\"[html_encode(value)]\"" else if(isicon(value)) vtext = "[value]" else if(isfile(value)) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index ea1114046b8..a90be690727 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -95,6 +95,10 @@ /mob/living/silicon/proc/SetName(pickedName as text) real_name = pickedName name = real_name + if(istype(id_card)) + if(!istype(id_card.chat_user)) + id_card.InitializeChatUser() + id_card.chat_user.username = real_name /mob/living/silicon/proc/show_laws() return diff --git a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm index 692451011d5..ead8bf1b721 100644 --- a/code/modules/modular_computers/NTNet/NTNRC/conversation.dm +++ b/code/modules/modular_computers/NTNet/NTNRC/conversation.dm @@ -2,9 +2,9 @@ var/global/ntnrc_uid = 0 /datum/ntnet_conversation var/id var/title = "Untitled Conversation" - var/datum/computer_file/program/chatclient/operator // "Administrator" of this channel. Creator starts as channel's operator, + var/datum/ntnet_user/operator // "Administrator" of this channel. Creator starts as channel's operator, var/list/messages = list() - var/list/clients = list() + var/list/users = list() var/direct = FALSE var/password @@ -19,25 +19,32 @@ var/global/ntnrc_uid = 0 operator = "NanoTrasen Information Technology Division" // assign a fake operator ..() -/datum/ntnet_conversation/proc/add_message(var/message, var/username, var/mob/user, var/reply_ref) - log_ntirc("[user.client.ckey]/([username]) : [message]", ckey=key_name(user), conversation=title) +/datum/ntnet_conversation/proc/process_message(var/datum/ntnet_message/message, var/update_ui = TRUE) + var/admin_log = message.format_admin_log() + if (admin_log) + log_ntirc("[message.user.client.ckey]/([message.nuser.username]): [admin_log]", ckey=key_name(message.user), conversation=title) - for(var/datum/computer_file/program/chatclient/C in clients) - if(C.program_state > PROGRAM_STATE_KILLED) - C.computer.output_message("([get_title(C)]) [username]: [message] (Reply)", 0) - if(!C.silent && C.username != username && C.program_state == PROGRAM_STATE_BACKGROUND) - playsound(C.computer, 'sound/machines/twobeep.ogg', 50, 1) - C.computer.output_message("*[C.ringtone]*") - else if(C.username == username) - ntnet_global.add_log(message, C.computer.network_card, TRUE) + for(var/datum/ntnet_user/U in users) + for(var/datum/computer_file/program/chat_client/Cl in U.clients) + var/notification_text = message.format_chat_notification(src, Cl) + if(notification_text && Cl.can_receive_notification(message.client)) + Cl.computer.output_message(notification_text, 0) + if(message.play_sound) + Cl.play_notification_sound(message.client) - message = "[worldtime2text()] [username]: [message]" - messages.Add(message) - trim_message_list() + var/ntnet_log = message.format_ntnet_log(src) + if(ntnet_log) + ntnet_global.add_log(ntnet_log, message.client.computer.network_card, TRUE) -/datum/ntnet_conversation/proc/add_status_message(var/message) - messages.Add("[worldtime2text()] -!- [message]") - trim_message_list() + var/chat_log = message.format_chat_log(src) + if(chat_log) + messages.Add(chat_log) + trim_message_list() + + if(update_ui) + for(var/datum/ntnet_user/U in users) + for(var/datum/computer_file/program/chat_client/Cl) + SSvueui.check_uis_for_change(Cl) /datum/ntnet_conversation/proc/trim_message_list() if(messages.len <= 50) @@ -47,89 +54,119 @@ var/global/ntnrc_uid = 0 if(messages.len <= 50) return -/datum/ntnet_conversation/proc/add_client(var/datum/computer_file/program/chatclient/C) - if(!istype(C)) - return - if (C in clients) - return - clients.Add(C) - // No operator, so we assume the channel was empty. Assign this user as operator. - if(!operator) - changeop(C) - for(var/datum/computer_file/program/chatclient/CC in clients) - if(CC.program_state > PROGRAM_STATE_KILLED && CC != C) - if(!direct) - CC.computer.output_message(FONT_SMALL("([get_title(CC)]) [C.username] has entered the chat."), 0) +/// EXTERNAL PROCs -/datum/ntnet_conversation/proc/begin_direct(var/datum/computer_file/program/chatclient/CA, var/datum/computer_file/program/chatclient/CB) - if(!istype(CA) || !istype(CB)) - return - direct = TRUE - clients.Add(CA) - clients.Add(CB) - - add_status_message("[CA.username] has opened direct conversation.") - if(CB.program_state > PROGRAM_STATE_KILLED) - CB.computer.output_message(FONT_SMALL("([get_title(CB)]) [CA.username] has opened direct conversation with you."), 0) - -/datum/ntnet_conversation/proc/remove_client(var/datum/computer_file/program/chatclient/C) - if(!istype(C) || !(C in clients)) - return - clients.Remove(C) - - // Channel operator left, pick new operator - if(C == operator) - operator = null - if(clients.len) - var/datum/computer_file/program/chatclient/newop = pick(clients) - changeop(newop) - - for(var/datum/computer_file/program/chatclient/CC in clients) - if(CC.program_state > PROGRAM_STATE_KILLED && CC != C) - CC.computer.output_message(FONT_SMALL("([get_title(CC)]) [C.username] has left the chat."), 0) - - -/datum/ntnet_conversation/proc/changeop(var/datum/computer_file/program/chatclient/newop) - if(istype(newop)) - operator = newop - add_status_message("Channel operator status transferred to [newop.username].") - -/datum/ntnet_conversation/proc/change_title(var/newtitle, var/datum/computer_file/program/chatclient/client) - if(operator != client) - return 0 // Not Authorised - - add_status_message("[client.username] has changed channel title from [get_title(client)] to [newtitle]") - - for(var/datum/computer_file/program/chatclient/C in clients) - if(C.program_state > PROGRAM_STATE_KILLED && C != client) - C.computer.output_message(FONT_SMALL("([get_title(C)]) [client.username] has changed the channel title to [newtitle]."), 0) - title = newtitle - -/datum/ntnet_conversation/proc/get_title(var/datum/computer_file/program/chatclient/cl = null) +/datum/ntnet_conversation/proc/get_title(var/datum/computer_file/program/chat_client/cl = null) if(direct) var/names = list() - for(var/datum/computer_file/program/chatclient/C in clients) - names += C.username - if(cl) - names -= cl.username + for(var/datum/ntnet_user/U in users) + names += U.username + if(istype(cl) && istype(cl.my_user)) + names -= cl.my_user.username return "\[DM] [english_list(names)]" else return title -/datum/ntnet_conversation/proc/get_dead_title() - if(direct) - var/names = list() - for(var/datum/computer_file/program/chatclient/C in clients) - names += C.username - return "\[DM] [english_list(names)]" - else - return title - -/datum/ntnet_conversation/proc/can_see(var/datum/computer_file/program/chatclient/cl) - if(cl in clients) - return TRUE +/datum/ntnet_conversation/proc/can_see(var/datum/computer_file/program/chat_client/cl) if(cl.netadmin_mode) return TRUE + if(istype(cl.my_user)) + if(cl.my_user in users) + return TRUE + else + for(var/datum/ntnet_user/user in users) + if(cl in user.clients) + return TRUE if(!direct) return TRUE return FALSE + +/datum/ntnet_conversation/proc/can_interact(var/datum/computer_file/program/chat_client/cl) + if(cl.netadmin_mode) + return TRUE + if(istype(cl.my_user)) + if(cl.my_user in users) + return TRUE + else + for(var/datum/ntnet_user/user in users) + if(cl in user.clients) + return TRUE + return FALSE + +/datum/ntnet_conversation/proc/can_manage(var/datum/computer_file/program/chat_client/cl) + if(cl.netadmin_mode) + return TRUE + if(cl.my_user == operator) + return TRUE + return FALSE + +/datum/ntnet_conversation/proc/cl_send(var/datum/computer_file/program/chat_client/Cl, var/message, var/mob/user) + if(!istype(Cl) || !can_interact(Cl)) + return + var/datum/ntnet_message/message/msg = new(Cl) + msg.message = message + msg.user = user + process_message(msg) + +/datum/ntnet_conversation/proc/cl_join(var/datum/computer_file/program/chat_client/Cl) + if(!istype(Cl) || !can_see(Cl) || direct) + return + var/datum/ntnet_message/join/msg = new(Cl) + Cl.my_user.channels.Add(src) + users.Add(Cl.my_user) + if(!operator) + operator = Cl.my_user + var/datum/ntnet_message/new_op/msg2 = new(Cl) + process_message(msg, FALSE) + process_message(msg2) + return + process_message(msg) + +/datum/ntnet_conversation/proc/cl_leave(var/datum/computer_file/program/chat_client/Cl) + if(!istype(Cl) || !istype(Cl.my_user) || !(Cl.my_user in users) || !can_interact(Cl) || direct) + return + var/datum/ntnet_message/leave/msg = new(Cl) + Cl.my_user.channels.Remove(src) + users.Remove(Cl.my_user) + if(operator == Cl.my_user) + if(users.len) + operator = pick(users) + var/datum/ntnet_message/new_op/msg2 = new() + msg2.nuser = operator + process_message(msg, FALSE) + process_message(msg2) + return + process_message(msg) + +/datum/ntnet_conversation/proc/cl_change_title(var/datum/computer_file/program/chat_client/Cl, var/newTitle) + if(!istype(Cl) || !istype(Cl.my_user) || !can_manage(Cl) || direct) + return + var/datum/ntnet_message/new_title/msg = new(Cl) + msg.title = newTitle + process_message(msg) + title = newTitle + +/datum/ntnet_conversation/proc/cl_set_password(var/datum/computer_file/program/chat_client/Cl, var/newPassword) + if(!istype(Cl) || !istype(Cl.my_user) || !can_manage(Cl) || direct) + return + if(newPassword) + password = newPassword + else + password = FALSE + +/datum/ntnet_conversation/proc/cl_kick(var/datum/computer_file/program/chat_client/Cl, var/datum/ntnet_user/target) + if(!istype(Cl) || !istype(Cl.my_user) || !can_manage(Cl) || !(target in users) || direct) + return + var/datum/ntnet_message/kick/msg = new(Cl) + msg.target = target + target.channels.Remove(src) + users.Remove(target) + if(operator == target) + if(users.len) + operator = pick(users) + var/datum/ntnet_message/new_op/msg2 = new() + msg2.nuser = operator + process_message(msg, FALSE) + process_message(msg2) + return + process_message(msg) \ No newline at end of file diff --git a/code/modules/modular_computers/NTNet/NTNRC/message.dm b/code/modules/modular_computers/NTNet/NTNRC/message.dm new file mode 100644 index 00000000000..e4e24aa1c89 --- /dev/null +++ b/code/modules/modular_computers/NTNet/NTNRC/message.dm @@ -0,0 +1,96 @@ +// Container for all essesal state for NTRC message while it's proccessed +/datum/ntnet_message + var/mob/user + var/datum/computer_file/program/chat_client/client + var/datum/ntnet_user/nuser + var/play_sound = FALSE + +/datum/ntnet_message/New(var/datum/computer_file/program/chat_client/Pr = null, var/mob/user = null) + if(user) + src.user = user + if(Pr) + client = Pr + nuser = Pr.my_user + +// Should be sanitized +/datum/ntnet_message/proc/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + return FALSE + +/datum/ntnet_message/proc/format_admin_log(var/datum/ntnet_conversation/Conv) + return FALSE + +// Should be sanitized +/datum/ntnet_message/proc/format_ntnet_log(var/datum/ntnet_conversation/Conv) + return FALSE + +/datum/ntnet_message/proc/format_chat_log(var/datum/ntnet_conversation/Conv) + return FALSE + + + +/datum/ntnet_message/message + play_sound = TRUE + var/message = "" + +/datum/ntnet_message/message/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + . = "([sanitize(Conv.get_title(Cl))]) [nuser.username]: [sanitize(message)] (Reply)" + +/datum/ntnet_message/message/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] [nuser.username]: [message]" + +/datum/ntnet_message/message/format_admin_log(var/datum/ntnet_conversation/Conv) + . = message + +/datum/ntnet_message/message/format_ntnet_log(var/datum/ntnet_conversation/Conv) + . = "[sanitize(Conv.get_title())] [nuser.username]: [sanitize(message)]" + + + +/datum/ntnet_message/join/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + . = FONT_SMALL("([sanitize(Conv.get_title(Cl))]) [nuser.username] has entered the chat.") + +/datum/ntnet_message/join/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] -!- [nuser.username] has entered the chat." + + + +/datum/ntnet_message/leave/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + . = FONT_SMALL("([sanitize(Conv.get_title(Cl))]) [nuser.username] has left the chat.") + +/datum/ntnet_message/leave/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] -!- [nuser.username] has left the chat." + + + +/datum/ntnet_message/new_op/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] -!- [nuser.username] has become operator." + + + +/datum/ntnet_message/new_title + var/title = "" + +/datum/ntnet_message/new_title/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] -!- [nuser.username] has changed channel title from [Conv.get_title()] to [title]" + +/datum/ntnet_message/new_title/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + . = FONT_SMALL("([sanitize(Conv.get_title(Cl))]) [nuser.username] has changed the channel title to [sanitize(title)].") + + + +/datum/ntnet_message/kick + var/datum/ntnet_user/target + +/datum/ntnet_message/kick/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] -!- [nuser.username] has kicked [target.username] from conversation." + +/datum/ntnet_message/kick/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + . = FONT_SMALL("([sanitize(Conv.get_title(Cl))]) [nuser.username] has kicked [target.username] from conversation.") + + + +/datum/ntnet_message/direct/format_chat_log(var/datum/ntnet_conversation/Conv) + . = "[worldtime2text()] -!- [nuser.username] has opened direct conversation." + +/datum/ntnet_message/direct/format_chat_notification(var/datum/ntnet_conversation/Conv, var/datum/computer_file/program/chat_client/Cl) + . = FONT_SMALL("([sanitize(Conv.get_title(Cl))]) [nuser.username] has opened direct conversation with you.") \ No newline at end of file diff --git a/code/modules/modular_computers/NTNet/NTNRC/ntnrc.dm b/code/modules/modular_computers/NTNet/NTNRC/ntnrc.dm new file mode 100644 index 00000000000..db6cd0148ba --- /dev/null +++ b/code/modules/modular_computers/NTNet/NTNRC/ntnrc.dm @@ -0,0 +1,28 @@ +/datum/ntnet + var/list/chat_channels = list() + var/list/chat_clients = list() + var/list/chat_users = list() + +/datum/ntnet/proc/begin_conversation(var/datum/computer_file/program/chat_client/Cl, var/title) + if(!istype(Cl) || !istype(Cl.my_user)) + return + + var/datum/ntnet_conversation/Conv = new(title) + Conv.cl_join(Cl) + + return Conv + +/datum/ntnet/proc/begin_direct(var/datum/computer_file/program/chat_client/Cl, var/datum/ntnet_user/target) + if(!istype(Cl) || !istype(Cl.my_user) || !istype(target) || istype(Cl.my_user.dm_channels[target], /datum/ntnet_conversation)) + return + + var/datum/ntnet_conversation/Conv = new() + Conv.direct = TRUE + Conv.users.Add(Cl.my_user) + Conv.users.Add(target) + + target.dm_channels[Cl.my_user] = Conv + Cl.my_user.dm_channels[target] = Conv + + var/datum/ntnet_message/direct/msg = new(Cl) + Conv.process_message(msg) \ No newline at end of file diff --git a/code/modules/modular_computers/NTNet/NTNRC/user.dm b/code/modules/modular_computers/NTNet/NTNRC/user.dm new file mode 100644 index 00000000000..feb79715bec --- /dev/null +++ b/code/modules/modular_computers/NTNet/NTNRC/user.dm @@ -0,0 +1,21 @@ +/datum/ntnet_user + var/username + var/list/channels = list() + var/list/dm_channels = list() + var/list/clients = list() + +/datum/ntnet_user/New() + . = ..() + ntnet_global.chat_users.Add(src) + +/datum/ntnet_user/Destroy(force) + . = ..() + ntnet_global.chat_users.Remove(src) + +/datum/ntnet_user/proc/generateUsernameIdCard(var/obj/item/card/id/card) + if(!card) + return "Unknown" + return "[card.registered_name] ([card.assignment])" + +/datum/ntnet_user/proc/generateUsernameSilicon(var/mob/living/silicon/silicon) + return silicon.name diff --git a/code/modules/modular_computers/NTNet/NTNet.dm b/code/modules/modular_computers/NTNet/NTNet.dm index f1d53a06b57..e61f97b3d46 100644 --- a/code/modules/modular_computers/NTNet/NTNet.dm +++ b/code/modules/modular_computers/NTNet/NTNet.dm @@ -11,8 +11,6 @@ var/global/datum/ntnet/ntnet_global = new() var/list/available_software = list() var/list/available_software_presets = list() var/list/available_news = list() - var/list/chat_channels = list() - var/list/chat_clients = list() var/list/fileservers = list() var/list/datum/ntnet_account/users = list() // Amount of logs the system tries to keep in memory. Keep below 999 to prevent byond from acting weirdly. diff --git a/code/modules/modular_computers/computers/modular_computer/core.dm b/code/modules/modular_computers/computers/modular_computer/core.dm index c858e406e36..837b35e2889 100644 --- a/code/modules/modular_computers/computers/modular_computer/core.dm +++ b/code/modules/modular_computers/computers/modular_computer/core.dm @@ -98,7 +98,6 @@ /obj/item/modular_computer/Destroy() kill_program(TRUE) if(registered_id) - registered_id.chat_registered = FALSE registered_id = null for(var/obj/item/computer_hardware/CH in src.get_all_components()) uninstall_component(null, CH) @@ -197,7 +196,7 @@ if(network_card) return network_card.get_signal(specific_action) else - return 0 + return FALSE /obj/item/modular_computer/proc/add_log(var/text) if(!get_ntnet_status()) @@ -366,6 +365,7 @@ /obj/item/modular_computer/proc/enable_service(service, mob/user, var/datum/computer_file/program/S = null) + . = FALSE if(!S) S = hard_drive?.find_file_by_name(service) @@ -382,9 +382,11 @@ return // Start service - if(S.service_activate()) + if(S.service_enable()) enabled_services += S S.service_state = PROGRAM_STATE_ACTIVE + return TRUE + /obj/item/modular_computer/proc/disable_service(service, mob/user, var/datum/computer_file/program/S = null) @@ -399,8 +401,8 @@ enabled_services -= S // Stop service - S.service_deactivate() - S.service_state = PROGRAM_STATE_KILLED + S.service_disable() + S.service_state = PROGRAM_STATE_DISABLED /obj/item/modular_computer/proc/output_message(var/message, var/message_range) message_range += message_output_range @@ -434,12 +436,13 @@ if(!istype(id)) output_error("No ID card found!") return FALSE - if(id.chat_registered) - output_error("This card is already registered to another account!") - return FALSE - id.chat_registered = TRUE registered_id = id + + if(hard_drive) + for(var/datum/computer_file/program/P in hard_drive.stored_files) + P.event_registered() + output_notice("Registration successful!") playsound(get_turf(src), 'sound/machines/ping.ogg', 10, 0) return registered_id @@ -448,12 +451,11 @@ if(!registered_id) return FALSE - registered_id.chat_registered = FALSE - registered_id = null - if(hard_drive) - var/datum/computer_file/program/P = hard_drive.find_file_by_name("ntnrc_client") - P.event_unregistered() + for(var/datum/computer_file/program/P in hard_drive.stored_files) + P.event_unregistered() + + registered_id = null output_message(SPAN_NOTICE("\The [src] beeps: \"Successfully unregistered ID!\"")) playsound(get_turf(src), 'sound/machines/ping.ogg', 20, 0) @@ -476,7 +478,6 @@ return TRUE /obj/item/modular_computer/proc/silence_notifications() - for (var/datum/computer_file/program/P in hard_drive.stored_files) - if (istype(P)) - P.event_silentmode() silent = !silent + for (var/datum/computer_file/program/P in hard_drive.stored_files) + P.event_silentmode() diff --git a/code/modules/modular_computers/computers/modular_computer/power.dm b/code/modules/modular_computers/computers/modular_computer/power.dm index 183ad33294e..97ee8674215 100644 --- a/code/modules/modular_computers/computers/modular_computer/power.dm +++ b/code/modules/modular_computers/computers/modular_computer/power.dm @@ -3,8 +3,9 @@ visible_message(SPAN_WARNING("\The [src]'s screen flickers briefly and then goes dark.")) if(active_program) active_program.event_powerfailure(FALSE) - for(var/datum/computer_file/program/PRG in idle_threads) - PRG.event_powerfailure(TRUE) + for(var/datum/computer_file/program/PRG in hard_drive.stored_files) + if(PRG != active_program) + PRG.event_powerfailure(TRUE) shutdown_computer(FALSE) power_has_failed = TRUE update_icon() diff --git a/code/modules/modular_computers/computers/modular_computer/variables.dm b/code/modules/modular_computers/computers/modular_computer/variables.dm index 6810fc99494..9b79adeab84 100644 --- a/code/modules/modular_computers/computers/modular_computer/variables.dm +++ b/code/modules/modular_computers/computers/modular_computer/variables.dm @@ -4,6 +4,7 @@ name = "Modular Computer" desc = "A modular computer. You shouldn't see this." + var/lexical_name = "computer" var/enabled = FALSE // Whether the computer is turned on. var/screen_on = TRUE // Whether the computer is active/opened/it's screen is on. var/working = TRUE // Whether the computer is working. diff --git a/code/modules/modular_computers/computers/subtypes/dev_handheld.dm b/code/modules/modular_computers/computers/subtypes/dev_handheld.dm index 0ffe87b34c6..4cb40032295 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_handheld.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_handheld.dm @@ -1,5 +1,6 @@ /obj/item/modular_computer/handheld name = "tablet computer" + lexical_name = "tablet" desc = "A portable device for your needs on the go." desc_info = "To deploy the charging cable on this device, either drag and drop it over a nearby APC, or click on the APC with the computer in hand." icon = 'icons/obj/modular_tablet.dmi' diff --git a/code/modules/modular_computers/computers/subtypes/dev_laptop.dm b/code/modules/modular_computers/computers/subtypes/dev_laptop.dm index 38df46a87b7..0090c80e083 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_laptop.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_laptop.dm @@ -1,6 +1,7 @@ /obj/item/modular_computer/laptop anchored = TRUE name = "laptop computer" + lexical_name = "laptop" desc = "A portable computer." desc_info = "You can alt-click the laptop while it's set down on surface to open it up and work with it. Left clicking while it is open will allow you to operate it." hardware_flag = PROGRAM_LAPTOP diff --git a/code/modules/modular_computers/computers/subtypes/dev_pda.dm b/code/modules/modular_computers/computers/subtypes/dev_pda.dm index 00c61b358e7..12369654393 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_pda.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_pda.dm @@ -1,5 +1,6 @@ /obj/item/modular_computer/handheld/pda name = "PDA" + lexical_name = "tablet" desc = "The latest in portable microcomputer solutions from Thinktronic Systems, LTD." icon = 'icons/obj/pda.dmi' icon_state = "pda" diff --git a/code/modules/modular_computers/computers/subtypes/dev_silicon.dm b/code/modules/modular_computers/computers/subtypes/dev_silicon.dm index 1ea422ac828..6767be11604 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_silicon.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_silicon.dm @@ -53,7 +53,7 @@ /obj/item/modular_computer/silicon/install_default_programs() hard_drive.store_file(new /datum/computer_file/program/filemanager(src)) hard_drive.store_file(new /datum/computer_file/program/ntnetdownload(src)) - hard_drive.store_file(new /datum/computer_file/program/chatclient(src)) + hard_drive.store_file(new /datum/computer_file/program/chat_client(src)) hard_drive.remove_file(hard_drive.find_file_by_name("clientmanager")) addtimer(CALLBACK(src, .proc/register_chat), 1 SECOND) @@ -62,24 +62,6 @@ enable_computer(null, TRUE) // passing null because we don't want the UI to open minimize_program() -/obj/item/modular_computer/silicon/verb/send_pda_message() - set category = "AI IM" - set name = "Send Direct Message" - set src in usr - if (usr.stat == DEAD) - to_chat(usr, "You can't send PDA messages because you are dead!") - return - var/datum/computer_file/program/chatclient/CL = hard_drive.find_file_by_name("ntnrc_client") - if(!istype(CL)) - output_error("Chat client not installed!") - return - else if(CL.program_state == PROGRAM_STATE_KILLED) - run_program("ntnrc_client") - - CL.direct_message() - if(CL.channel) - CL.add_message(CL.send_message()) - /obj/item/modular_computer/silicon/robot/drone/install_default_programs() hard_drive.store_file(new /datum/computer_file/program/filemanager(src)) hard_drive.store_file(new /datum/computer_file/program/ntnetdownload(src)) diff --git a/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm b/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm index fffd01dd33c..f7c25243ea5 100644 --- a/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm +++ b/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm @@ -1,5 +1,6 @@ /obj/item/modular_computer/handheld/wristbound name = "wristbound computer" + lexical_name = "wristbound" desc = "A portable wristbound device for your needs on the go. Quite comfortable." desc_fluff = "A NanoTrasen design, this wristbound computer allows the user to quickly and safely access critical info, without taking their hands out of the equation." icon = 'icons/obj/modular_wristbound.dmi' diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 62c64e649fe..e3b727ea8df 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -24,7 +24,7 @@ var/computer_emagged = FALSE // Set to TRUE if computer that's running us was emagged. Computer updates this every Process() tick var/ui_header // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /nano/images/status_icons. Be careful not to use too large images! var/color = "#FFFFFF" // The color of light the computer should emit when this program is open. - var/service_state = PROGRAM_STATE_KILLED // PROGRAM_STATE_KILLED or PROGRAM_STATE_ACTIVE - specifies whether this program's service is running. + var/service_state = PROGRAM_STATE_DISABLED // PROGRAM_STATE_KILLED or PROGRAM_STATE_ACTIVE - specifies whether this program's service is running. var/silent = FALSE /datum/computer_file/program/New(var/obj/item/modular_computer/comp) @@ -196,27 +196,6 @@ if(computer) return computer.get_header_data() -// This is performed on program startup. May be overriden to add extra logic. Remember to include ..() call. Return 1 on success, 0 on failure. -// When implementing new program based device, use this to run the program. -/datum/computer_file/program/proc/run_program(var/mob/user) - if(can_run(user, 1) || !requires_access_to_run) - if(nanomodule_path) - NM = new nanomodule_path(src, new /datum/topic_manager/program(src), src) - if(requires_ntnet && network_destination) - generate_network_log("Connection opened to [network_destination].") - program_state = PROGRAM_STATE_ACTIVE - return TRUE - return FALSE - -// Use this proc to kill the program. Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. -/datum/computer_file/program/proc/kill_program(var/forced = 0) - program_state = PROGRAM_STATE_KILLED - if(network_destination) - generate_network_log("Connection to [network_destination] closed.") - if(NM) - qdel(NM) - NM = null - return TRUE // This is called every tick when the program is enabled. Ensure you do parent call if you override it. If parent returns 1 continue with UI initialisation. // It returns 0 if it can't run or if NanoModule was used instead. I suggest using NanoModules where applicable. @@ -248,18 +227,9 @@ else return -1 -// Is called when program service is being activated -// Returns 1 if service startup was sucessfull -/datum/computer_file/program/proc/service_activate() - return FALSE - -// Is called when program service is being deactivated -/datum/computer_file/program/proc/service_deactivate() - return - /datum/computer_file/program/proc/message_dead(var/message) for(var/mob/M in player_list) if(M.stat == DEAD && (M.client && M.client.prefs.toggles & CHAT_GHOSTEARS)) if(isnewplayer(M)) continue - to_chat(M, message) + to_chat(M, message) \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/program_events.dm b/code/modules/modular_computers/file_system/program_events.dm index 8172ddcb299..a0d469ae79b 100644 --- a/code/modules/modular_computers/file_system/program_events.dm +++ b/code/modules/modular_computers/file_system/program_events.dm @@ -1,6 +1,47 @@ // Events are sent to the program by the computer. // Always include a parent call when overriding an event. +// This is performed on program startup. May be overriden to add extra logic. Remember to include ..() call. Return 1 on success, 0 on failure. +// When implementing new program based device, use this to run the program. +/datum/computer_file/program/proc/run_program(var/mob/user) + if(can_run(user, 1) || !requires_access_to_run) + if(nanomodule_path) + NM = new nanomodule_path(src, new /datum/topic_manager/program(src), src) + if(requires_ntnet && network_destination) + generate_network_log("Connection opened to [network_destination].") + program_state = PROGRAM_STATE_ACTIVE + return TRUE + return FALSE + +// Use this proc to kill the program. Designed to be implemented by each program if it requires on-quit logic, such as the NTNRC client. +/datum/computer_file/program/proc/kill_program(var/forced = 0) + program_state = PROGRAM_STATE_KILLED + if(network_destination) + generate_network_log("Connection to [network_destination] closed.") + if(NM) + qdel(NM) + NM = null + return TRUE + +// Is called when program service is being activated +// Returns 1 if service startup was sucessfull +/datum/computer_file/program/proc/service_activate() + return FALSE + +// Is called when program service is being deactivated +/datum/computer_file/program/proc/service_deactivate() + return + +// Is called when program service is being activated for first time. +/datum/computer_file/program/proc/service_enable() + return service_activate() + +// Is called when program service is being deactivated without +/datum/computer_file/program/proc/service_disable() + return service_deactivate() + +/// SECOND ORDER EVENTS + // Called when the ID card is removed from computer. ID is removed AFTER this proc. /datum/computer_file/program/proc/event_idremoved(var/background) return @@ -9,12 +50,17 @@ return // Called when an ID is unregistered from the device. -/datum/computer_file/program/proc/event_unregistered(var/background) +/datum/computer_file/program/proc/event_unregistered() + return + +// Called when an ID is unregistered from the device. +/datum/computer_file/program/proc/event_registered() return // Called when the computer fails due to power loss. Override when program wants to specifically react to power loss. /datum/computer_file/program/proc/event_powerfailure(var/background) - kill_program(TRUE) + if(program_state > PROGRAM_STATE_KILLED) + kill_program(TRUE) // Called when the network connectivity fails. Computer does necessary checks and only calls this when requires_ntnet_feature and similar variables are not met. /datum/computer_file/program/proc/event_networkfailure(var/background) diff --git a/code/modules/modular_computers/file_system/programs/app_presets.dm b/code/modules/modular_computers/file_system/programs/app_presets.dm index b5b771662ea..5cc1792e079 100644 --- a/code/modules/modular_computers/file_system/programs/app_presets.dm +++ b/code/modules/modular_computers/file_system/programs/app_presets.dm @@ -32,7 +32,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/power_monitor(comp), new /datum/computer_file/program/alarm_monitor(comp), @@ -56,7 +56,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/power_monitor(comp), new /datum/computer_file/program/alarm_monitor(comp), @@ -81,7 +81,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/comm(comp, FALSE), new /datum/computer_file/program/game/sudoku(comp), @@ -108,7 +108,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/suit_sensors(comp), new /datum/computer_file/program/records/medical(comp), @@ -130,7 +130,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/comm(comp, FALSE), new /datum/computer_file/program/suit_sensors(comp), @@ -155,7 +155,7 @@ new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/ntnetmonitor(comp), new /datum/computer_file/program/aidiag(comp), @@ -178,7 +178,7 @@ new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/ntnetmonitor(comp), new /datum/computer_file/program/aidiag(comp), @@ -201,7 +201,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/comm(comp, FALSE), new /datum/computer_file/program/ntnetmonitor(comp), @@ -225,7 +225,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/card_mod(comp), new /datum/computer_file/program/comm(comp, FALSE), @@ -246,7 +246,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/civilian/cargocontrol(comp), new /datum/computer_file/program/card_mod(comp), @@ -269,7 +269,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/card_mod(comp), new /datum/computer_file/program/comm(comp, FALSE), new /datum/computer_file/program/camera_monitor(comp), @@ -317,7 +317,7 @@ new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/camera_monitor(comp), new /datum/computer_file/program/comm(comp), @@ -341,7 +341,7 @@ new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/camera_monitor(comp), new /datum/computer_file/program/comm(comp), @@ -367,7 +367,7 @@ new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/camera_monitor(comp), new /datum/computer_file/program/digitalwarrant(comp), new /datum/computer_file/program/penal_mechs(comp), @@ -391,7 +391,7 @@ new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/filemanager(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/comm(comp, FALSE), new /datum/computer_file/program/camera_monitor(comp), @@ -415,7 +415,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/game/arcade(comp), new /datum/computer_file/program/game/sudoku(comp), @@ -435,7 +435,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/civilian/janitor(comp), new /datum/computer_file/program/game/arcade(comp), @@ -468,7 +468,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargocontrol(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/civilian/cargodelivery(comp), @@ -488,7 +488,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargodelivery(comp), new /datum/computer_file/program/ntsl2_interpreter(comp) ) @@ -506,7 +506,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/game/sudoku(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/records/employment(comp), @@ -525,7 +525,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/newsbrowser(comp), new /datum/computer_file/program/manifest(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/civilian/cargoorder(comp), new /datum/computer_file/program/camera_monitor(comp), new /datum/computer_file/program/alarm_monitor(comp), @@ -594,7 +594,7 @@ new /datum/computer_file/program/filemanager(comp), new /datum/computer_file/program/manifest(comp), new /datum/computer_file/program/newsbrowser(comp), - new /datum/computer_file/program/chatclient(comp), + new /datum/computer_file/program/chat_client(comp), new /datum/computer_file/program/merchant(comp) ) return _prg_list diff --git a/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm index c1bf676e2c3..a4bac57b0a4 100644 --- a/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm +++ b/code/modules/modular_computers/file_system/programs/generic/ntnrc_client.dm @@ -1,381 +1,253 @@ -/datum/computer_file/program/chatclient +/datum/computer_file/program/chat_client filename = "ntnrc_client" filedesc = "Chat Client" program_icon_state = "command" - extended_desc = "This program allows communication over the NTNRC network." + extended_desc = "This program allows communication over the NTRC network." size = 2 requires_ntnet = TRUE requires_ntnet_feature = NTNET_COMMUNICATION - network_destination = "NTNRC server" - ui_header = "ntnrc_idle.gif" + program_type = PROGRAM_TYPE_ALL + network_destination = "NTRC server" available_on_ntnet = TRUE - nanomodule_path = /datum/nano_module/program/computer_chatclient color = LIGHT_COLOR_GREEN silent = FALSE - var/last_message // Used to generate the toolbar icon - var/username - var/datum/ntnet_conversation/channel - var/operator_mode = FALSE // Channel operator mode + var/datum/ntnet_user/my_user var/netadmin_mode = FALSE // Administrator mode (invisible to other users + bypasses passwords) - var/set_offline = FALSE // appear "invisible" - var/list/directmessagechannels = list() + var/set_offline = FALSE // appear "invisible" var/ringtone = "beep" var/syndi_auth = FALSE -/datum/computer_file/program/chatclient/New(var/obj/item/modular_computer/comp) - ..(comp) - if(!comp) - return -/datum/computer_file/program/chatclient/Destroy() - ntnet_global.chat_clients -= src +/datum/computer_file/program/chat_client/Destroy() return ..() -/datum/computer_file/program/chatclient/Topic(href, href_list) +/datum/computer_file/program/chat_client/proc/can_receive_notification(var/datum/computer_file/program/chat_client/from) + return ((program_state > PROGRAM_STATE_KILLED || service_state > PROGRAM_STATE_KILLED) && from != src && get_signal(NTNET_COMMUNICATION)) + +/datum/computer_file/program/chat_client/proc/play_notification_sound(var/datum/computer_file/program/chat_client/from) + if(!silent && src != from && program_state == PROGRAM_STATE_BACKGROUND) + playsound(computer, 'sound/machines/twobeep.ogg', 50, 1) + computer.output_message("[icon2html(computer, world)] *[ringtone]*", 2) + +/datum/computer_file/program/chat_client/Topic(href, href_list) if(..()) return TRUE - - if(href_list["PRG_toggleringer"]) - . = TRUE - silent = !silent - - if(href_list["PRG_setringtone"]) - . = TRUE - var/t = input(usr, "Please enter new ringtone", filedesc, ringtone) as text|null - if(!usr.Adjacent(computer) || !t) - return + + if(href_list["ringtone"]) + var/newRingtone = href_list["ringtone"] var/obj/item/device/uplink/hidden/H = computer.hidden_uplink - if(istype(H) && H.check_trigger(usr, lowertext(t), lowertext(H.pda_code))) + if(istype(H) && H.check_trigger(usr, lowertext(newRingtone), lowertext(H.pda_code))) to_chat(usr, SPAN_NOTICE("\The [computer] softly beeps.")) syndi_auth = TRUE - SSnanoui.close_uis(NM) + SSvueui.close_uis(src) else - t = sanitize(t, 20) - ringtone = t - - if(href_list["PRG_speak"]) - . = TRUE - add_message(send_message()) - - if(href_list["Reply"]) - . = TRUE - var/datum/ntnet_conversation/C = locate(href_list["Reply"]) in ntnet_global.chat_channels - if(!istype(C)) - to_chat(usr, SPAN_WARNING("The target channel couldn't be found and has likely been deleted!")) - return - var/message = send_message() - if(!(C in ntnet_global.chat_channels)) - to_chat(usr, SPAN_WARNING("The target channel couldn't be found and has likely been deleted!")) - return - add_message(message, C) - - if(href_list["PRG_joinchannel"]) - . = TRUE - var/datum/ntnet_conversation/C - for(var/datum/ntnet_conversation/chan in ntnet_global.chat_channels) - if(chan.id == text2num(href_list["PRG_joinchannel"])) - C = chan - break - - if(!C) - return TRUE - - if(netadmin_mode) - channel = C // Bypasses normal leave/join and passwords. Technically makes the user invisible to others. - return TRUE - - if(C.password) - var/mob/living/user = usr - var/password = sanitize(input(user, "Access Denied. Enter password:")) - if(C?.password == password) - C.add_client(src) - channel = C - return TRUE - C.add_client(src) - message_dead(FONT_SMALL("([C.get_dead_title()]) A new client ([username]) has entered the chat.")) - channel = C - if(href_list["PRG_leavechannel"]) - . = TRUE - if(channel && !channel.direct) - channel.remove_client(src) - message_dead(FONT_SMALL(FONT_SMALL("([channel.get_dead_title()]) A client ([username]) has left the chat."))) - channel = null - if(href_list["PRG_backtomain"]) - . = TRUE - channel = null - if(href_list["PRG_newchannel"]) - . = TRUE + newRingtone = sanitize(newRingtone, 20) + ringtone = newRingtone + SSvueui.check_uis_for_change(src) + + // User only commands + if(!istype(my_user)) + return + // Following actions require signal + if(!get_signal(NTNET_COMMUNICATION)) + return + + if(href_list["send"]) var/mob/living/user = usr - var/channel_title = sanitize(input(user, "Enter channel name or leave blank to cancel:")) - if(!channel_title) - return - var/datum/ntnet_conversation/C = new /datum/ntnet_conversation(channel_title) - C.add_client(src) - C.operator = src - channel = C - message_dead(FONT_SMALL("([channel.get_dead_title()]) A new channel has been made by [username].")) - if(href_list["PRG_toggleadmin"]) - . = TRUE + var/datum/ntnet_conversation/conv = locate(href_list["send"]["target"]) + var/message = href_list["send"]["message"] + if(istype(conv) && message) + if(ishuman(user)) + user.visible_message("[SPAN_BOLD("\The [user]")] taps on [user.get_pronoun("his")] [computer.lexical_name]'s screen.") + conv.cl_send(src, message, user) + if(href_list["join"]) + var/datum/ntnet_conversation/conv = locate(href_list["join"]["target"]) + var/password = href_list["join"]["password"] + if(istype(conv)) + if(conv.password) + if(conv.password == password) + conv.cl_join(src) + else + // How do I alert of password invalid? + else + conv.cl_join(src) + if(href_list["leave"]) + var/datum/ntnet_conversation/conv = locate(href_list["leave"]) + if(istype(conv)) + conv.cl_leave(src) + SSvueui.check_uis_for_change(src) + if(href_list["kick"]) + var/datum/ntnet_conversation/conv = locate(href_list["kick"]["target"]) + var/datum/ntnet_user/tUser = locate(href_list["kick"]["user"]) + if(istype(conv) && istype(tUser)) + conv.cl_kick(src, tUser) + if(href_list["set_password"]) + var/datum/ntnet_conversation/conv = locate(href_list["set_password"]["target"]) + var/password = href_list["set_password"]["password"] + if(istype(conv)) + conv.cl_set_password(src, password) + if(href_list["change_title"]) + var/datum/ntnet_conversation/conv = locate(href_list["change_title"]["target"]) + var/newTitle = href_list["change_title"]["title"] + if(istype(conv)) + conv.cl_change_title(src, newTitle) + if(href_list["new_channel"]) + ntnet_global.begin_conversation(src, sanitize(href_list["new_channel"])) + if(href_list["delete"]) + var/datum/ntnet_conversation/conv = locate(href_list["delete"]) + if(istype(conv) && conv.can_manage(src)) + ntnet_global.chat_channels.Remove(conv) + qdel(conv) + SSvueui.check_uis_for_change(src) + if(href_list["direct"]) + var/datum/ntnet_user/tUser = locate(href_list["direct"]) + ntnet_global.begin_direct(src, tUser) + + if(href_list["toggleadmin"]) if(netadmin_mode) netadmin_mode = FALSE - if(channel) - channel.remove_client(src) // We shouldn't be in channel's user list, but just in case... - channel = null - return TRUE - var/mob/living/user = usr - if(can_run(usr, 1, access_network)) - if(channel) - var/response = alert(user, "Really engage admin-mode? You will be disconnected from your current channel!", "NTNRC Admin mode", "Yes", "No") - if(response == "Yes") - if(channel) - channel.remove_client(src) - channel = null - else - return - netadmin_mode = TRUE - if(href_list["PRG_changename"]) - . = TRUE - var/mob/living/user = usr - var/new_name = sanitize(input(user, "Enter new nickname or leave blank to cancel:")) - if(!new_name) - return TRUE - var/comp_name = ckey(new_name) - for(var/cl in ntnet_global.chat_clients) - var/datum/computer_file/program/chatclient/C = cl - if(ckey(C.username) == comp_name || comp_name == "cancel") - alert(user, "This nickname is already taken.") - return TRUE - for(var/datum/ntnet_conversation/channel in ntnet_global.chat_channels) - if(src in channel.clients) - channel.add_status_message("[username] is now known as [new_name].") - username = new_name - if(href_list["PRG_savelog"]) - . = TRUE - if(!channel) - return - var/mob/living/user = usr - var/logname = input(user, "Enter desired logfile name (.log) or leave blank to cancel:") - if(!logname || !channel) - return TRUE - var/datum/computer_file/data/logfile = new /datum/computer_file/data/logfile() - // Now we will generate HTML-compliant file that can actually be viewed/printed. - logfile.filename = logname - logfile.stored_data = "\[b\]Logfile dump from NTNRC channel [channel.title]\[/b\]\[BR\]" - for(var/logstring in channel.messages) - logfile.stored_data += "[logstring]\[BR\]" - logfile.stored_data += "\[b\]Logfile dump completed.\[/b\]" - logfile.calculate_size() - if(!computer || !computer.hard_drive || !computer.hard_drive.store_file(logfile)) - if(!computer) - // This program shouldn't even be runnable without computer. - crash_with("Var computer is null!") - return TRUE - if(!computer.hard_drive) - computer.visible_message("\The [computer] shows an \"I/O Error - Hard drive connection error\" warning.") - else // In 99.9% cases this will mean our HDD is full - computer.visible_message("\The [computer] shows an \"I/O Error - Hard drive may be full. Please free some space and try again. Required space: [logfile.size]GQ\" warning.") - if(href_list["PRG_renamechannel"]) - . = TRUE - if(!operator_mode || !channel) - return TRUE - var/mob/living/user = usr - var/newname = sanitize(input(user, "Enter new channel name or leave blank to cancel:")) - if(!newname || !channel) - return - channel.add_status_message("Channel renamed from [channel.title] to [newname] by operator.") - channel.title = newname - if(href_list["PRG_deletechannel"]) - . = TRUE - if(channel && ((channel.operator == src) || netadmin_mode)) - qdel(channel) - channel = null - if(href_list["PRG_setpassword"]) - . = TRUE - if(!channel || ((channel.operator != src) && !netadmin_mode)) - return TRUE - - var/mob/living/user = usr - var/newpassword = sanitize(input(user, "Enter new password for this channel. Leave blank to cancel, enter 'nopassword' to remove password completely:")) - if(!channel || !newpassword || ((channel.operator != src) && !netadmin_mode)) - return TRUE - - if(newpassword == "nopassword") - channel.password = "" else - channel.password = newpassword - if(href_list["PRG_directmessage"]) - . = TRUE - direct_message(usr) - -/datum/computer_file/program/chatclient/proc/send_message() - var/mob/living/user = usr - if(ishuman(user)) - user.visible_message("[SPAN_BOLD("\The [user]")] taps on [user.get_pronoun("his")] computer's screen.") - var/message = sanitize(input(user, "Enter a message to send: ") as null|text) - if(!message) - return - return message - -/datum/computer_file/program/chatclient/proc/add_message(var/message, var/datum/ntnet_conversation/specific_channel) - if(!message) - return - var/datum/ntnet_conversation/sent_channel - if(specific_channel) - sent_channel = specific_channel + var/mob/living/user = usr + if(can_run(user, TRUE, access_network)) + netadmin_mode = TRUE + SSvueui.check_uis_for_change(src) + if(href_list["Reply"]) + var/mob/living/user = usr + var/datum/ntnet_conversation/conv = locate(href_list["Reply"]) + var/message = input(user, "Enter message or leave blank to cancel: ") + if(istype(conv) && message) + if(ishuman(user)) + user.visible_message("[SPAN_BOLD("\The [user]")] taps on [user.get_pronoun("his")] [computer.lexical_name]'s screen.") + conv.cl_send(src, message, user) + + +/datum/computer_file/program/chat_client/service_activate() + . = ..() + if(istype(my_user) && get_signal(NTNET_COMMUNICATION)) + activate_chat_client() + return TRUE else - sent_channel = channel - if(!sent_channel) // panikk - geeves - return - sent_channel.add_message(message, username, usr) - message_dead(FONT_SMALL("([sent_channel.get_dead_title()]) [username]: [message]")) + return FALSE -/datum/computer_file/program/chatclient/proc/direct_message(var/mob/user) - var/clients = list() - var/names = list() - for(var/cl in ntnet_global.chat_clients - src) - var/datum/computer_file/program/chatclient/C = cl - if(C.set_offline) - continue - clients[C.username] = C - names += C.username - if(!length(names)) - to_chat(user, SPAN_WARNING("You are the only user with an active account!")) - return - var/picked = input(user, "Select with whom you would like to start a conversation.") as null|anything in names - if(!picked) - return - var/datum/computer_file/program/chatclient/otherClient = clients[picked] - if(picked) - if(directmessagechannels[otherClient]) - channel = directmessagechannels[otherClient] - return - var/datum/ntnet_conversation/C = new /datum/ntnet_conversation("", TRUE) - C.begin_direct(src, otherClient) - channel = C - directmessagechannels[otherClient] = C - otherClient.directmessagechannels[src] = C +/datum/computer_file/program/chat_client/service_deactivate() + . = ..() + deactivate_chat_client() +/datum/computer_file/program/chat_client/process_tick() + . = ..() -/datum/computer_file/program/chatclient/process_tick() - ..() - if(program_state != PROGRAM_STATE_KILLED) - ui_header = "ntnrc_idle.gif" - if(channel) - // Remember the last message. If there is no message in the channel remember null. - if(length(channel.messages) > 1) // len - 1 = 0 and that's array out of bounds - last_message = channel.messages[channel.messages.len - 1] - else - last_message = null +/datum/computer_file/program/chat_client/kill_program(var/forced = FALSE) + return ..(forced) + +/datum/computer_file/program/chat_client/run_program(var/mob/user) + if(!istype(my_user)) + if(istype(computer, /obj/item/modular_computer/silicon)) + var/obj/item/modular_computer/silicon/SC = computer + var/mob/living/silicon/S = SC.computer_host + S.id_card.InitializeChatUser() + my_user = S.id_card.chat_user else - last_message = null - return 1 - if(channel?.messages?.len) - ui_header = last_message == channel.messages[channel.messages.len - 1] ? "ntnrc_idle.gif" : "ntnrc_new.gif" - else - ui_header = "ntnrc_idle.gif" - -/datum/computer_file/program/chatclient/kill_program(var/forced = FALSE) - if(!forced) - var/confirm = alert("Are you sure you want to close the NTNRC Client? You will not be reachable via messaging if you do so.", "Close?", "Yes", "No") - if((confirm != "Yes") || (CanUseTopic(usr) != STATUS_INTERACTIVE)) - return FALSE - - ntnet_global.chat_clients -= src - - channel = null - ..(forced) - return TRUE - -/datum/computer_file/program/chatclient/run_program(var/mob/user) - if(!computer) - return - if(!istype(computer, /obj/item/modular_computer/silicon)) - if((!computer.registered_id && !computer.register_account(src))) + if((!computer.registered_id && !computer.register_account(src))) + return + if(service_state == PROGRAM_STATE_DISABLED) + if(!computer.enable_service(null, user, src)) return - if(!(src in ntnet_global.chat_clients)) - ntnet_global.chat_clients += src - if(!username) - username = username_from_id() return ..(user) -/datum/computer_file/program/chatclient/proc/username_from_id() - if(istype(computer, /obj/item/modular_computer/silicon)) - var/obj/item/modular_computer/silicon/SC = computer - return SC.computer_host.name - if(!computer.registered_id) - return "Unknown" +/datum/computer_file/program/chat_client/event_registered() + . = ..() + computer.registered_id.InitializeChatUser() + my_user = computer.registered_id.chat_user + if(service_state > PROGRAM_STATE_KILLED) + activate_chat_client() + - return "[computer.registered_id.registered_name] ([computer.registered_id.assignment])" +/datum/computer_file/program/chat_client/event_unregistered() + . = ..() + if(service_state > PROGRAM_STATE_KILLED) + deactivate_chat_client() + my_user = null -/datum/computer_file/program/chatclient/event_unregistered() - ..() - computer.set_autorun(filename) - ntnet_global.chat_clients -= src - kill_program(TRUE) +/datum/computer_file/program/chat_client/event_silentmode() + . = ..() + silent = computer.silent -/datum/computer_file/program/chatclient/event_silentmode() - ..() - if(computer.silent != silent) - silent = computer.silent -/datum/nano_module/program/computer_chatclient - name = "Chat Client" - -/datum/nano_module/program/computer_chatclient/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) - if(!ntnet_global || !ntnet_global.chat_channels) - return - - var/datum/computer_file/program/chatclient/C = program - - if(C.computer.hidden_uplink && C.syndi_auth) - if(alert(user, "Resume or close and secure?", name, "Resume", "Close") == "Resume") - C.computer.hidden_uplink.trigger(user) +/datum/computer_file/program/chat_client/ui_interact(var/mob/user) + if(computer.hidden_uplink && syndi_auth) + if(alert(user, "Resume or close and secure?", filedesc, "Resume", "Close") == "Resume") + computer.hidden_uplink.trigger(user) return else - C.syndi_auth = FALSE + syndi_auth = FALSE - var/list/data = list() - if(program) - data = list("_PC" = program.get_header_data()) - - if(!istype(C)) - return - - data["adminmode"] = C.netadmin_mode - if(C.channel) - data["title"] = C.channel.get_title(C) - var/list/messages[0] - for(var/M in C.channel.messages) - messages.Add(list(list( - "msg" = M - ))) - data["messages"] = messages - var/list/clients[0] - for(var/datum/computer_file/program/chatclient/cl in C.channel.clients) - clients.Add(list(list( - "name" = cl.username, - "active" = cl.program_state > PROGRAM_STATE_KILLED - ))) - data["clients"] = clients - C.operator_mode = (C.channel.operator == C) ? 1 : 0 - data["is_operator"] = C.operator_mode || C.netadmin_mode - data["is_direct"] = C.channel.direct - else // Channel selection screen - var/list/all_channels[0] - for(var/datum/ntnet_conversation/conv in ntnet_global.chat_channels) - if(conv && conv.title && conv.can_see(program)) - all_channels.Add(list(list( - "chan" = conv.get_title(C), - "id" = conv.id, - "con" = (program in conv.clients) - ))) - data["all_channels"] = all_channels - - ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + var/datum/vueui/ui = SSvueui.get_open_ui(user, src) if (!ui) - ui = new(user, src, ui_key, "ntnet_chat.tmpl", "NTNet Relay Chat Client", 575, 700, state = state) - ui.auto_update_layout = 1 - ui.set_initial_data(data) - ui.open() - ui.set_auto_update(TRUE) + ui = new /datum/vueui/modularcomputer(user, src, "mcomputer-chat-index", 600, 500, capitalize(filedesc)) + ui.open() + +/datum/computer_file/program/chat_client/vueui_transfer(oldobj) + SSvueui.transfer_uis(oldobj, src, "mcomputer-chat-index", 600, 500, capitalize(filedesc)) + return TRUE + +/datum/computer_file/program/chat_client/vueui_data_change(var/list/data, var/mob/user, var/datum/vueui/ui) + . = ..() + data = . || data || list() + // Gather data for computer header + var/headerdata = get_header_data(data["_PC"]) + if(headerdata) + data["_PC"] = headerdata + . = data + + data["service"] = service_state > PROGRAM_STATE_KILLED + data["registered"] = istype(my_user) + data["signal"] = get_signal(NTNET_COMMUNICATION) + data["ringtone"] = ringtone + data["netadmin_mode"] = netadmin_mode + data["can_netadmin_mode"] = can_run(user, FALSE, access_network) + + if(data["registered"] && data["service"] && data["signal"]) + data["channels"] = list() + for(var/c in ntnet_global.chat_channels) + var/datum/ntnet_conversation/Channel = c + if(istype(Channel) && Channel.can_see(src)) + var/ref = ref(Channel) + var/can_interact = Channel.can_interact(src) + var/can_manage = Channel.can_manage(src) + data["channels"][ref] = list( + "title" = Channel.get_title(src), + "direct" = Channel.direct, + "password" = !!Channel.password, + "can_interact" = can_interact, + "can_manage" = can_manage + ) + if(can_interact) + data["channels"][ref]["msg"] = Channel.messages + data["channels"][ref]["users"] = list() + for(var/datum/ntnet_user/U in Channel.users) + var/uref = ref(U) + data["channels"][ref]["users"][uref] = U.username + data["users"] = list() + for(var/u in ntnet_global.chat_users) + var/datum/ntnet_user/nUser = u + if(nUser != my_user) + var/ref = ref(nUser) + data["users"][ref] = nUser.username + return data + +/datum/computer_file/program/chat_client/proc/activate_chat_client() + if(!istype(my_user)) + return + if(!(src in my_user.clients)) + my_user.clients.Add(src) + if(!(src in ntnet_global.chat_clients)) + ntnet_global.chat_clients.Add(src) + +/datum/computer_file/program/chat_client/proc/deactivate_chat_client() + if(!istype(my_user)) + return + if(src in my_user.clients) + my_user.clients.Remove(src) + if(src in ntnet_global.chat_clients) + ntnet_global.chat_clients.Remove(src) \ No newline at end of file diff --git a/code/modules/modular_computers/file_system/programs/system/client_manager.dm b/code/modules/modular_computers/file_system/programs/system/client_manager.dm index 6374d725a21..a38b2f5f0ea 100644 --- a/code/modules/modular_computers/file_system/programs/system/client_manager.dm +++ b/code/modules/modular_computers/file_system/programs/system/client_manager.dm @@ -70,7 +70,7 @@ computer.enrolled = 2 // private devices computer.hard_drive.store_file(new /datum/computer_file/program/filemanager(computer)) computer.hard_drive.store_file(new /datum/computer_file/program/ntnetdownload(computer)) - computer.hard_drive.store_file(new /datum/computer_file/program/chatclient(computer)) + computer.hard_drive.store_file(new /datum/computer_file/program/chat_client(computer)) return TRUE //Set´s up the programs from the preset diff --git a/html/changelogs/chat meesenger.yml b/html/changelogs/chat meesenger.yml new file mode 100644 index 00000000000..f8b180a77dc --- /dev/null +++ b/html/changelogs/chat meesenger.yml @@ -0,0 +1,6 @@ +author: Karolis2011 +delete-after: True +changes: + - rscadd: "Modular computer chat client UI and internals been revamped." + - tweak: "Newest chat messages are now at the top instead of bottom of chat window." + - rscadd: "Now you can use chat client simultaneously on multiple devices." diff --git a/nano/templates/ntnet_chat.tmpl b/nano/templates/ntnet_chat.tmpl deleted file mode 100644 index f2253dc8e32..00000000000 --- a/nano/templates/ntnet_chat.tmpl +++ /dev/null @@ -1,84 +0,0 @@ -{{if data.adminmode}} -

ADMINISTRATIVE MODE

-{{/if}} - -{{if data.title}} -
- Current channel: -
-
- {{:data.title}} -
-
- Operator access: -
-
- {{if data.is_operator}} - Enabled - {{else}} - Disabled - {{/if}} -
-
- Chat Controls: -
-
- -
{{:helper.link("Return to channel list", null, {'PRG_backtomain' : 1})}} -
{{:helper.link("Direct message", null, {'PRG_directmessage' : 1})}} -
{{:helper.link("Change nickname", null, {'PRG_changename' : 1})}} -
{{:helper.link("Toggle administration mode", null, {'PRG_toggleadmin' : 1})}} - {{if !data.is_direct}} -
{{:helper.link("Leave channel", null, {'PRG_leavechannel' : 1})}} - {{/if}} -
{{:helper.link("Save log to local drive", null, {'PRG_savelog' : 1})}} - {{if data.is_operator}} -
{{:helper.link("Rename channel", null, {'PRG_renamechannel' : 1})}} -
{{:helper.link("Set password", null, {'PRG_setpassword' : 1})}} -
{{:helper.link("Delete channel", null, {'PRG_deletechannel' : 1})}} - {{/if}} -
-
- Connected Users
- {{for data.clients}} - {{:value.name}} - {{if !value.active}} - (Away) - {{/if}} -
- {{/for}} - Chat Window -
-
-
- {{for data.messages}} - {{:value.msg}}
- {{/for}} -
-
-
-
- Messaging: -
-
- - -
{{:helper.link("Send message", null, {'PRG_speak' : 1})}}
-
-{{else}} - Controls: - -
{{:helper.link("Direct message", null, {'PRG_directmessage' : 1})}} -
{{:helper.link("Change nickname", null, {'PRG_changename' : 1})}} -
{{:helper.link("New Channel", null, {'PRG_newchannel' : 1})}} -
{{:helper.link("Toggle Administration Mode", null, {'PRG_toggleadmin' : 1})}} -
{{:helper.link("Toggle Ringer", null, {'PRG_toggleringer' : 1})}} -
{{:helper.link("Set Ringtone", null, {'PRG_setringtone' : 1})}} -
- Available channels: - - {{for data.all_channels}} -
{{:helper.link(value.chan, null, {'PRG_joinchannel' : value.id}, null, value.con ? 'selected' : null)}}
- {{/for}} -
-{{/if}} diff --git a/nano/templates/ntnet_clientmanager.tmpl b/nano/templates/ntnet_clientmanager.tmpl deleted file mode 100644 index 893fbb6d0a4..00000000000 --- a/nano/templates/ntnet_clientmanager.tmpl +++ /dev/null @@ -1,101 +0,0 @@ -Welcome to NT IT client manager
-
This is the Client Management Application of the Nanotrasen IT Department. It is used ensure that the clients comply with the corporate IT policy, enroll new clients and manage clients remotely
-
-{{if data.error_message}} -
- Error: {{:data.error_message}} -
-
-{{/if}} -
-

Status

-
-
- Enrollment Status: -
-
- {{if data.status_enrollment == 0}} - Unconfigured - {{else data.status_enrollment == 1}} - Work Device - {{else data.status_enrollment == 2}} - Private Device - {{else}} - Error - Contact the IT Department - {{/if}} -
-
- {{if data.status_enrollment == 1}} -
-
- Policy Compliance Status: -
-
- {{if data.status_compliance == 0}} - Not Compliant - {{else data.status_compliance == 1}} - Compliant - {{else}} - Error - Contact the IT Department - {{/if}} -
-
-
-
- Remote Management Status: -
-
- {{if data.status_remote == 0}} - Inactive - {{else data.status_remote == 1}} - Active - {{else}} - Error - Contact the IT Department - {{/if}} -
-
- {{/if}} - {{if data.status_enrollment == 0}} -
-
-

Device Enrollment

- - - - - - - - -
-
Device Type:
-
- {{:helper.link('Company', null, { "PRG_dev_type" : 1 }, data.dev_type == 1 ? 'selected' : null)}} - {{:helper.link('Private', null, { "PRG_dev_type" : 2 }, data.dev_type == 2 ? 'selected' : null)}} -
-
- {{if data.dev_type == 1}} -
Device Preset:
-
- {{for data.dev_presets}} -
{{:helper.link(value.display_name,null,{"PRG_dev_preset" : value.name}, value.name == data.dev_preset ? 'selected' : null)}}
- {{/for}} -
- {{/if}} -
-
Enroll Device:
-
{{:helper.link('Confirm', null, { "PRG_enroll" : 1 })}}
-
-
-{{else data.status_enrollment == 1}} -
-

Control

-
{{:helper.link("Request Support",null,{"PRG_req_support" : 1}, 'disabled')}}
-
{{:helper.link("Reset Device",null,{"PRG_reset_device" : 1}, 'disabled')}}
-
-{{else data.status_enrollment == 2}} -
-

Control

-
{{:helper.link("Reset Device",null,{"PRG_reset_device" : 1}, 'disabled')}}
-
-{{/if}} diff --git a/nano/templates/ntnet_downloader.tmpl b/nano/templates/ntnet_downloader.tmpl deleted file mode 100644 index d5e68b592aa..00000000000 --- a/nano/templates/ntnet_downloader.tmpl +++ /dev/null @@ -1,132 +0,0 @@ -Welcome to software download utility. Please select which software you wish to download.
-{{if data.error}} -

Download Error

-
- Information: -
-
- {{:data.error}} -
-
- Reset Program: -
-
- {{:helper.link("RESET", null, {'PRG_reseterror' : 1})}} -
-{{else data.downloadname}} -

Download Running

- Please wait... -
- File description: -
-
- {{:data.downloaddesc}} -
-
- File name: -
-
- {{:data.downloadname}} -
-
- File size: -
-
- {{:data.downloadcompletion}}GQ / {{:data.downloadsize}}GQ -
-
- Transfer Rate: -
-
- {{:data.downloadspeed}} GQ/s -
-
- Download progress: -
-
- {{:helper.displayBar(data.downloadcompletion, 0, data.downloadsize, 'good')}} -
-{{else}} -

Primary software repository

-
- Hard drive: -
-
- {{:helper.displayBar(data.disk_used, 0, data.disk_size, 'good')}} - {{:data.disk_used}}GQ / {{:data.disk_size}}GQ -
-
- {{for data.downloadable_programs}} -
-
-
- Program name: -
-
- {{:value.filedesc}} -
-
- File name: -
-
- {{:value.filename}} ({{:value.size}} GQ) -
-
- Description: -
-
- {{:value.fileinfo}} -
-
- File controls: -
-
- {{:helper.link("Download", null, {'PRG_downloadfile' : value.filename})}} -
-
- {{empty}} -

- {{if data.locked}} -
ERROR: This terminal is locked, users are disallowed from downloading software. Please contact your system administrator.
- {{else}} -
There are no available programs for your clearance level at this time.
- {{/if}} -
- {{/for}} - {{if data.hackedavailable}} -

*UNKNOWN* software repository

- Please note that NanoTrasen does not recommend download of software from non-official servers. - {{for data.hacked_programs}} -
-
- Program name: -
-
- {{:value.filedesc}} -
-
- File name: -
-
- {{:value.filename}} ({{:value.size}} GQ) -
-
- Description: -
-
- {{:value.fileinfo}} -
-
- File controls: -
-
- {{:helper.link("Download", null, {'PRG_downloadfile' : value.filename})}} -
-
- {{/for}} - {{/if}} - -{{/if}} -

- -

NTOS v2.0.6 Copyright NanoTrasen 2450 - 2460
\ No newline at end of file diff --git a/vueui/src/components/view/mcomputer/chat/channel-btn.vue b/vueui/src/components/view/mcomputer/chat/channel-btn.vue new file mode 100644 index 00000000000..911e50fc04a --- /dev/null +++ b/vueui/src/components/view/mcomputer/chat/channel-btn.vue @@ -0,0 +1,42 @@ + + + diff --git a/vueui/src/components/view/mcomputer/chat/chat.vue b/vueui/src/components/view/mcomputer/chat/chat.vue new file mode 100644 index 00000000000..54b56f42370 --- /dev/null +++ b/vueui/src/components/view/mcomputer/chat/chat.vue @@ -0,0 +1,119 @@ + + + + + \ No newline at end of file diff --git a/vueui/src/components/view/mcomputer/chat/explore.vue b/vueui/src/components/view/mcomputer/chat/explore.vue new file mode 100644 index 00000000000..36082dd6a77 --- /dev/null +++ b/vueui/src/components/view/mcomputer/chat/explore.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/vueui/src/components/view/mcomputer/chat/index.vue b/vueui/src/components/view/mcomputer/chat/index.vue new file mode 100644 index 00000000000..c05fe8e2cf2 --- /dev/null +++ b/vueui/src/components/view/mcomputer/chat/index.vue @@ -0,0 +1,49 @@ + + + From 6587585f979e2a305c1b159f2f7f5a128ca3eca5 Mon Sep 17 00:00:00 2001 From: Geeves Date: Mon, 11 Jan 2021 12:04:00 +0200 Subject: [PATCH 17/28] Disruptor Counter-nerf (#10934) --- code/modules/projectiles/guns/energy/disrupter.dm | 3 +-- code/modules/projectiles/projectile/energy.dm | 2 +- html/changelogs/geeves-disruptor_buffs.yml | 8 ++++++++ 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/geeves-disruptor_buffs.yml diff --git a/code/modules/projectiles/guns/energy/disrupter.dm b/code/modules/projectiles/guns/energy/disrupter.dm index f08d5eaf51b..ec12cef41d1 100644 --- a/code/modules/projectiles/guns/energy/disrupter.dm +++ b/code/modules/projectiles/guns/energy/disrupter.dm @@ -17,7 +17,6 @@ secondary_projectile_type = /obj/item/projectile/energy/blaster max_shots = 8 charge_cost = 150 - fire_delay = 8 accuracy = 1 has_item_ratio = FALSE modifystate = "disruptorpistolstun" @@ -35,7 +34,7 @@ name = "miniature disruptor pistol" desc = "A Nanotrasen designed blaster pistol with two settings: stun and lethal. This is the miniature version." icon = 'icons/obj/guns/disruptorpistol/disruptorpistolc.dmi' - max_shots = 5 + max_shots = 6 force = 3 slot_flags = SLOT_BELT|SLOT_HOLSTER|SLOT_POCKET w_class = ITEMSIZE_SMALL diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 905b9f9471c..38c205a78d9 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -208,7 +208,7 @@ /obj/item/projectile/energy/disruptorstun name = "disruptor bolt" icon_state = "blue_laser" - agony = 25 + agony = 30 speed = 0.4 damage_type = PAIN // Can't blow your own head off with a stunbolt. taser_effect = TRUE diff --git a/html/changelogs/geeves-disruptor_buffs.yml b/html/changelogs/geeves-disruptor_buffs.yml new file mode 100644 index 00000000000..a6146a6506a --- /dev/null +++ b/html/changelogs/geeves-disruptor_buffs.yml @@ -0,0 +1,8 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "Disruptor firerate has been increased back to 0.6s, up from 0.8s." + - tweak: "Mini-disruptors now have 6 shots, up from 5." + - tweak: "Disruptor stun shots now do 30 agony damage, up from 25." From 51571416c5e6c7631b485e5565edafc14ed61139 Mon Sep 17 00:00:00 2001 From: Erki Date: Mon, 11 Jan 2021 15:12:44 +0200 Subject: [PATCH 18/28] Changelogs --- html/changelog.html | 44 +++++++++++++++++++ html/changelogs/.all_changelog.yml | 41 +++++++++++++++++ .../arrow768-ghostspawner-bugfix.yml | 41 ----------------- html/changelogs/aticius_buttfannies.yml | 41 ----------------- html/changelogs/chat meesenger.yml | 6 --- html/changelogs/cxancandcnasndsnc.yml | 5 --- .../doxxmedearly - clog_event_rework.yml | 6 --- .../changelogs/doxxmedearly - sanersaline.yml | 6 --- html/changelogs/geeves-angry_eye_fix.yml | 6 --- html/changelogs/geeves-disruptor_buffs.yml | 8 ---- html/changelogs/geeves-djinn_tea_sprite.yml | 6 --- html/changelogs/geeves-flat_trips.yml | 6 --- html/changelogs/geeves-german_engineering.yml | 6 --- .../changelogs/geeves-offworlder_markings.yml | 6 --- html/changelogs/geeves-sleep_tight_disky.yml | 6 --- html/changelogs/hyperzine_od_tweak.yml | 41 ----------------- html/changelogs/wickedcybs_fix_fringe.yml | 7 --- 17 files changed, 85 insertions(+), 197 deletions(-) delete mode 100644 html/changelogs/arrow768-ghostspawner-bugfix.yml delete mode 100644 html/changelogs/aticius_buttfannies.yml delete mode 100644 html/changelogs/chat meesenger.yml delete mode 100644 html/changelogs/cxancandcnasndsnc.yml delete mode 100644 html/changelogs/doxxmedearly - clog_event_rework.yml delete mode 100644 html/changelogs/doxxmedearly - sanersaline.yml delete mode 100644 html/changelogs/geeves-angry_eye_fix.yml delete mode 100644 html/changelogs/geeves-disruptor_buffs.yml delete mode 100644 html/changelogs/geeves-djinn_tea_sprite.yml delete mode 100644 html/changelogs/geeves-flat_trips.yml delete mode 100644 html/changelogs/geeves-german_engineering.yml delete mode 100644 html/changelogs/geeves-offworlder_markings.yml delete mode 100644 html/changelogs/geeves-sleep_tight_disky.yml delete mode 100644 html/changelogs/hyperzine_od_tweak.yml delete mode 100644 html/changelogs/wickedcybs_fix_fringe.yml diff --git a/html/changelog.html b/html/changelog.html index a1222502591..6c05635cba6 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,6 +35,50 @@ -->
+

11 January 2021

+

Arrow768 updated:

+
    +
  • The ghostspawner can no longer be enabled if all the available slots have been used up.
  • +
+

Aticius updated:

+
    +
  • You can now flip fannypacks onto your butt.
  • +
+

Doxxmedearly updated:

+
    +
  • Reworked scrubber backsurge odds to make certain things like mindbreaker less common. Reagent amounts are randomized between 10u and 25u now, instead of always being 35u.
  • +
  • Added more reagent variety to backsurge events, as well as paint color variety.
  • +
  • Changed the recipe for Saline Plus to be less obnoxious. The recipe is now 2u Water to 1u Sodium Chloride to 0.5u Sugar, and results in 2 units instead of 1.
  • +
+

Geeves updated:

+
    +
  • Vampire blood eyes now properly disappear when they lose frenzy.
  • +
  • You can now click on a bed with a disk in hand to put the disk on the bed. Remember to put a blanket over it.
  • +
  • Fixed some uniforms not working when rolling down or rolling up sleeves.
  • +
  • Thigh-high and knee-high boots no longer make you trip.
  • +
  • Disruptor firerate has been increased back to 0.6s, up from 0.8s.
  • +
  • Mini-disruptors now have 6 shots, up from 5.
  • +
  • Disruptor stun shots now do 30 agony damage, up from 25.
  • +
  • Offworlders now get the same augs and tattoos that standard humans can get. Shells can now get color bands around their left foot as well.
  • +
  • Fixed the Djinn Tea glass sprite, also added a placeholder for missing sprites.
  • +
+

Karolis2011 updated:

+
    +
  • Modular computer chat client UI and internals been revamped.
  • +
  • Newest chat messages are now at the top instead of bottom of chat window.
  • +
  • Now you can use chat client simultaneously on multiple devices.
  • +
  • Adjusted how canister UI looks.
  • +
+

Kermit updated:

+
    +
  • Having both hyperzine and adrenaline in your system no longer fast-tracks you to a hyperzine OD, but instead reduces the volume of hyperzine required to OD from 15u to 10u. Should be less dangerous to use hyperzine as a combat stimulant, though managing doses is still important.
  • +
+

WickedCybs updated:

+
    +
  • Fixed a missing pixel on the Tajara short fringe hairstyle.
  • +
  • Fixed a shading issue with a mouth body pattern.
  • +
+

09 January 2021

Ferner updated:

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