L35bl|8{>my>_z32~P8Sk7@
zUvEM9Nevqk-3bH}xpSam%Z1zV36s9#-5oA&$L-Qc0?XtKp)6w7q)p?9_$T~h%$M$g
zP7U;TFQ!r2v`V{7ZimVZu6pO87Fmh;xknWntdggOxdnc`B^YdB)#bw3Ci4)kj!-KO
zY|16xDhTd`ghJb6sa=fC2@Pb*A1U|Ju4={J^BWU@CzZV>GKJXKknM^GvKN(7J}x2Y4JSIDlK-&nTIO~jx6|eZcL@GHVl|ZAM-LtGnqmp{S4w+8|dx7Shp)Fe{
j-Vo^j+Og<{@u^z?3!N8O+d!KZ{V~7}gGDn@KJotmk{`HH
literal 508
zcmVV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+
z(=$pSoZ^zil2jm5DK|eaJGD}Yi!&v&s2HS+i!-e#F*g;&Hsn%PaP@Nmn+pJ2;~Jrf
zp9lK@009_DL_t(YiS1NDYQr!PTvar^T8JdqQ0D&UH`Lly`t42yfru9FLHv;i;f_3z^<%`kz4B`!NQ0qE#PwGs&>*wWreE#(#PYH+
zMeWNB%yfebup2XG{2PQyV~YIN4?54{ym+x2LiVX(OE)c>_gJuM=;Kqzw8E0~CEQNN
z0#mthld!6YpHi(f5g_Wgf~7VlTp8!RkC7vu+G{HKY(K^Wrv+nM=AzPTs@HHc>3wse
y$r4NuaF^_3byqnECM?DD;Q_yx%j`Kb5_|)qwIQOY(yo*M0000MG
diff --git a/pariah.dme b/pariah.dme
index ea231f22c83..6a1b7546745 100644
--- a/pariah.dme
+++ b/pariah.dme
@@ -3230,6 +3230,7 @@
#include "code\modules\mob\living\living_fov.dm"
#include "code\modules\mob\living\living_movement.dm"
#include "code\modules\mob\living\living_say.dm"
+#include "code\modules\mob\living\living_stripping.dm"
#include "code\modules\mob\living\living_update_icons.dm"
#include "code\modules\mob\living\login.dm"
#include "code\modules\mob\living\logout.dm"
diff --git a/strings/tips.txt b/strings/tips.txt
index bf057da3e9c..351b39e35f1 100644
--- a/strings/tips.txt
+++ b/strings/tips.txt
@@ -251,4 +251,5 @@ Laying down will help slow down bloodloss. Death will halt it entirely.
♪ Hey, have you ever tried appending the % character before your messages when speaking in-game? ♫
@You can use the |, + and _ characters to emphasize parts of what you say in-game (e.g. say"my _ass_ |is| +heavy+." will be outputted as "my ass is heavy."). You can also escape these emphasizers by appending backslashes before them (e.g. say"1\+2\+3" will come out as "1+2+3" and not "1\2\3").
If you knock into somebody while doing a wicked grind on a skateboard, they will be floored for double the time. Radical!
-You can cheat games by baking dice in microwaves to make them loaded. Cards can be seen with x-ray vision or be marked with either a pen or crayon to gain an edge.
+Small mobs can be picked up by dragging their sprite onto yours after grabbing them.
+You can cheat games by baking dice in microwaves to make them loaded. Cards can be seen with x-ray vision or be marked with either a pen or crayon to gain an edge.
\ No newline at end of file
From 878bcefa025eeb25864747eeded4725aa7050cab Mon Sep 17 00:00:00 2001
From: Gallyus <5572280+francinum@users.noreply.github.com>
Date: Thu, 9 Jun 2022 01:11:53 -0400
Subject: [PATCH 05/16] Update README.md
---
README.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 655cf83d724..8384fdf3658 100644
--- a/README.md
+++ b/README.md
@@ -1,17 +1,17 @@
-## /tg/station codebase
+## Pariah Station codebase
-[![Build Status](https://github.com/tgstation/tgstation/workflows/CI%20Suite/badge.svg)](https://github.com/tgstation/tgstation/actions?query=workflow%3A%22CI+Suite%22)
-[![Percentage of issues still open](https://isitmaintained.com/badge/open/tgstation/tgstation.svg)](https://isitmaintained.com/project/tgstation/tgstation "Percentage of issues still open")
-[![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/tgstation/tgstation.svg)](https://isitmaintained.com/project/tgstation/tgstation "Average time to resolve an issue")
-![Coverage](https://img.shields.io/badge/coverage---3%25-red.svg)
+[![CI Suite](https://github.com/pariahstation/Pariah-Station/actions/workflows/ci_suite.yml/badge.svg)](https://github.com/pariahstation/Pariah-Station/actions/workflows/ci_suite.yml)
+
+
+
[![resentment](https://forthebadge.com/images/badges/built-with-resentment.svg)](https://www.monkeyuser.com/assets/images/2019/131-bug-free.png) [![resentment](https://forthebadge.com/images/badges/contains-technical-debt.svg)](https://user-images.githubusercontent.com/8171642/50290880-ffef5500-043a-11e9-8270-a2e5b697c86c.png) [![forinfinityandbyond](https://user-images.githubusercontent.com/5211576/29499758-4efff304-85e6-11e7-8267-62919c3688a9.gif)](https://www.reddit.com/r/SS13/comments/5oplxp/what_is_the_main_problem_with_byond_as_an_engine/dclbu1a)
-* **Website:** https://wiki.pariahstation.org/index.php/Main_Page
+* **Website:** https://pariahstation.org
* **Code:** https://github.com/pariahstation/Pariah-Station
* **Wiki:** https://wiki.pariahstation.org/index.php/Main_Page
-* **Codedocs:** https://codedocs.tgstation13.org/
-* **Pariah Station Discord:** https://discord.gg/96dfjqwfVM
+
+* **Pariah Station Discord:** https://discord.gg/pariahstation
* **Coderbus Discord:** https://discord.gg/Vh8TJp9
This is the codebase for the /tg/station flavoured fork of SpaceStation 13.
@@ -27,7 +27,7 @@ Space Station 13 is a paranoia-laden round-based roleplaying game set against th
## :exclamation: How to compile :exclamation:
-On **2021-01-04** we have changed the way to compile the codebase.
+On **2021-01-04**, /TG/station changed the way to compile the codebase.
**The quick way**. Find `bin/server.cmd` in this folder and double click it to automatically build and host the server on port 1337.
@@ -40,9 +40,9 @@ On **2021-01-04** we have changed the way to compile the codebase.
## Contributors
[Guides for Contributors](.github/CONTRIBUTING.md)
-[/tg/station HACKMD account](https://hackmd.io/@tgstation) - Design documentation here
+
## LICENSE
From 9677e4699ced7a47fbc0330d1c42f12aa9d2d49e Mon Sep 17 00:00:00 2001
From: ElorgRHG <71735193+ElorgRHG@users.noreply.github.com>
Date: Thu, 9 Jun 2022 21:44:50 +0200
Subject: [PATCH 06/16] Bit lower threshold (#762)
---
code/__HELPERS/colors.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/__HELPERS/colors.dm b/code/__HELPERS/colors.dm
index 760704cc560..44c7058c9c3 100644
--- a/code/__HELPERS/colors.dm
+++ b/code/__HELPERS/colors.dm
@@ -1,6 +1,6 @@
/// Given a color in the format of "#RRGGBB", will return if the color
/// is dark.
-/proc/is_color_dark(color, threshold = 25)
+/proc/is_color_dark(color, threshold = 15)
var/hsl = rgb2num(color, COLORSPACE_HSL)
return hsl[3] < threshold
From 3e2579d2f3d69a9719bb397e3f3d2c40ebfa0d78 Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Fri, 10 Jun 2022 01:00:20 +0100
Subject: [PATCH 07/16] fixes inconsistent lighting ci failure in icebox
(#67430) (#763)
Fixes and adds test for get_pixel_turf returning null on tall objects on top of the map.
Co-authored-by: Kylerace
---
code/__HELPERS/turfs.dm | 4 ++--
code/modules/unit_tests/_unit_tests.dm | 1 +
code/modules/unit_tests/get_turf_pixel.dm | 11 +++++++++++
3 files changed, 14 insertions(+), 2 deletions(-)
create mode 100644 code/modules/unit_tests/get_turf_pixel.dm
diff --git a/code/__HELPERS/turfs.dm b/code/__HELPERS/turfs.dm
index 5da17c67f31..0d0126b48b1 100644
--- a/code/__HELPERS/turfs.dm
+++ b/code/__HELPERS/turfs.dm
@@ -229,8 +229,8 @@ Turf and target are separate in case you want to teleport some distance from a t
var/turf/atom_turf = get_turf(checked_atom) //use checked_atom's turfs, as it's coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom
if(!atom_turf)
return null
- var/final_x = atom_turf.x + rough_x
- var/final_y = atom_turf.y + rough_y
+ var/final_x = clamp(atom_turf.x + rough_x, 1, world.maxx)
+ var/final_y = clamp(atom_turf.y + rough_y, 1, world.maxy)
if(final_x || final_y)
return locate(final_x, final_y, atom_turf.z)
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index 2b81fe89f6d..2d5b6a4eb85 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -92,6 +92,7 @@
#include "emoting.dm"
#include "food_edibility_check.dm"
#include "gas_transfer.dm"
+#include "get_turf_pixel.dm"
#include "greyscale_config.dm"
#include "heretic_knowledge.dm"
#include "heretic_rituals.dm"
diff --git a/code/modules/unit_tests/get_turf_pixel.dm b/code/modules/unit_tests/get_turf_pixel.dm
new file mode 100644
index 00000000000..8cd292d3b6c
--- /dev/null
+++ b/code/modules/unit_tests/get_turf_pixel.dm
@@ -0,0 +1,11 @@
+///ensures that get_turf_pixel() returns turfs within the bounds of the map,
+///even when called on a movable with its sprite out of bounds
+/datum/unit_test/get_turf_pixel
+
+/datum/unit_test/get_turf_pixel/Run()
+ //we need long larry to peek over the top edge of the earth
+ var/turf/north = locate(1, world.maxy, run_loc_floor_bottom_left.z)
+
+ //hes really long, so hes really good at peaking over the edge of the map
+ var/mob/living/simple_animal/hostile/megafauna/colossus/long_larry = allocate(/mob/living/simple_animal/hostile/megafauna/colossus, north)
+ TEST_ASSERT(istype(get_turf_pixel(long_larry), /turf), "get_turf_pixel() isnt clamping a mob whos sprite is above the bounds of the world inside of the map.")
From 2c2a84b564d21d43cae3252e30d81ab034721947 Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Fri, 10 Jun 2022 01:09:17 +0100
Subject: [PATCH 08/16] [NO GBP] Fix mapped cardhands not initializing (#66678)
(#759)
* Fix mapped cardhands not initializing
* Refactor cardhand Initialize proc to be readable
Co-authored-by: Tim
---
code/modules/cards/cardhand.dm | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/code/modules/cards/cardhand.dm b/code/modules/cards/cardhand.dm
index a2606ae3b1f..2ecb1d799f3 100644
--- a/code/modules/cards/cardhand.dm
+++ b/code/modules/cards/cardhand.dm
@@ -6,13 +6,16 @@
w_class = WEIGHT_CLASS_TINY
worn_icon_state = "card"
-/obj/item/toy/cards/cardhand/Initialize(mapload, list/cards_to_combine)
+/obj/item/toy/cards/cardhand/Initialize(mapload, list/cards_to_combine = list())
. = ..()
- if(!LAZYLEN(cards_to_combine) && (mapload && !LAZYLEN(cards)))
+ var/has_runtime_spawned_cards = length(cards_to_combine)
+ var/has_mapped_spawned_cards = mapload && length(cards)
+
+ if(!has_runtime_spawned_cards && !has_mapped_spawned_cards)
CRASH("[src] is being made into a cardhand without a list of cards to combine")
- if(mapload && LAZYLEN(cards)) // these cards have not been initialized
+ if(has_mapped_spawned_cards) // these cards have not been initialized
for(var/card_name in cards)
var/obj/item/toy/singlecard/new_card = new (loc, card_name)
new_card.update_appearance()
From 678d6bda0350100cf32dbd794842e0dbbf82f46c Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Fri, 10 Jun 2022 03:46:39 +0100
Subject: [PATCH 09/16] Small Teshari tweaks/fixes part 2 (#761)
* Consistent preview image
* Runtime fix
* CI fix
Time for another CI cleanup PR I think...
---
.../modules/mob/living/carbon/human/species_types/teshari.dm | 5 ++++-
code/modules/surgery/organs/external/_external_organs.dm | 5 +++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/species_types/teshari.dm b/code/modules/mob/living/carbon/human/species_types/teshari.dm
index 6f5a0cace5f..b30179b5350 100644
--- a/code/modules/mob/living/carbon/human/species_types/teshari.dm
+++ b/code/modules/mob/living/carbon/human/species_types/teshari.dm
@@ -60,10 +60,13 @@
/datum/species/teshari/prepare_human_for_preview(mob/living/carbon/human/human)
human.dna.features["mcolor"] = TESH_BODY_COLOR
human.hair_color = TESH_FEATHER_COLOR
- human.facial_hair_color = COLOR_WHITE
var/obj/item/organ/external/teshari_feathers/head_feathers = human.internal_organs_slot[ORGAN_SLOT_EXTERNAL_TESHARI_FEATHERS]
head_feathers.set_sprite("Plain")
+ var/obj/item/organ/external/teshari_body_feathers/body_feathers = human.internal_organs_slot[ORGAN_SLOT_EXTERNAL_TESHARI_BODY_FEATHERS]
+ body_feathers.set_sprite("None")
+ var/obj/item/organ/external/teshari_ears/ears = human.internal_organs_slot[ORGAN_SLOT_EXTERNAL_TESHARI_EARS]
+ ears.set_sprite("None")
human.update_body(TRUE)
#undef TESH_BODY_COLOR
diff --git a/code/modules/surgery/organs/external/_external_organs.dm b/code/modules/surgery/organs/external/_external_organs.dm
index 790272e4038..02cdcd516bd 100644
--- a/code/modules/surgery/organs/external/_external_organs.dm
+++ b/code/modules/surgery/organs/external/_external_organs.dm
@@ -493,8 +493,9 @@
var/mutable_appearance/tail_secondary = mutable_appearance(tail_primary.icon, "[tail_primary.icon_state]_secondary", layer = -image_layer)
var/mutable_appearance/tail_tertiary = mutable_appearance(tail_primary.icon, "[tail_primary.icon_state]_tertiary", layer = -image_layer)
- tail_secondary.color = owner.dna.features["mcolor2"]
- tail_tertiary.color = owner.dna.features["mcolor3"]
+ if(owner)
+ tail_secondary.color = owner.dna.features["mcolor2"]
+ tail_tertiary.color = owner.dna.features["mcolor3"]
overlay_list += tail_secondary
overlay_list += tail_tertiary
From 6861a9d5387ed78d7316cbbd94451935a6343c2e Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Fri, 10 Jun 2022 03:23:56 +0000
Subject: [PATCH 10/16] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-65038.yml | 8 ----
html/changelogs/AutoChangeLog-pr-65466.yml | 4 --
html/changelogs/AutoChangeLog-pr-65473.yml | 4 --
html/changelogs/AutoChangeLog-pr-65496.yml | 4 --
html/changelogs/AutoChangeLog-pr-65594.yml | 4 --
html/changelogs/AutoChangeLog-pr-65615.yml | 6 ---
html/changelogs/AutoChangeLog-pr-65619.yml | 4 --
html/changelogs/AutoChangeLog-pr-65633.yml | 4 --
html/changelogs/AutoChangeLog-pr-65637.yml | 4 --
html/changelogs/AutoChangeLog-pr-65641.yml | 4 --
html/changelogs/AutoChangeLog-pr-65651.yml | 4 --
html/changelogs/AutoChangeLog-pr-65659.yml | 6 ---
html/changelogs/AutoChangeLog-pr-65662.yml | 4 --
html/changelogs/AutoChangeLog-pr-65667.yml | 4 --
html/changelogs/AutoChangeLog-pr-65671.yml | 4 --
html/changelogs/AutoChangeLog-pr-65675.yml | 4 --
html/changelogs/archive/2022-06.yml | 52 ++++++++++++++++++++++
17 files changed, 52 insertions(+), 72 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-65038.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65466.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65473.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65496.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65594.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65615.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65619.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65633.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65637.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65641.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65651.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65659.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65662.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65667.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65671.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-65675.yml
create mode 100644 html/changelogs/archive/2022-06.yml
diff --git a/html/changelogs/AutoChangeLog-pr-65038.yml b/html/changelogs/AutoChangeLog-pr-65038.yml
deleted file mode 100644
index fea645863c3..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65038.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "ArcaneMusic ft. sprites by Kryson"
-delete-after: True
-changes:
- - rscadd: "Newscasters have been moved over to TGUI, and with them several new features."
- - expansion: "Newscaster channels can now be given channel descriptions!"
- - expansion: "Messages can now be censored by crew with brig access from any console."
- - rscdel: "Standalone bounty boards have been replaced with newscasters, as the two have been merged."
- - refactor: "Bounty boards and newscaster code have been refactored in order to merge the two pieces of content."
diff --git a/html/changelogs/AutoChangeLog-pr-65466.yml b/html/changelogs/AutoChangeLog-pr-65466.yml
deleted file mode 100644
index 49c1b4a9f71..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65466.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SuperNovaa41"
-delete-after: True
-changes:
- - bugfix: "Fixes nonhuman head of departments showing up as their original species in security records."
diff --git a/html/changelogs/AutoChangeLog-pr-65473.yml b/html/changelogs/AutoChangeLog-pr-65473.yml
deleted file mode 100644
index b2714e3e6e1..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65473.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "cacogen"
-delete-after: True
-changes:
- - expansion: "Can fire guns and secondary attack (right-click) with TK. Throwing things with TK now requires throw mode."
diff --git a/html/changelogs/AutoChangeLog-pr-65496.yml b/html/changelogs/AutoChangeLog-pr-65496.yml
deleted file mode 100644
index 2a3e03d32c2..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65496.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "GoblinBackwards"
-delete-after: True
-changes:
- - bugfix: "Fixed airlocks and windoors not being able to be attacked by melee weapons in combat mode."
diff --git a/html/changelogs/AutoChangeLog-pr-65594.yml b/html/changelogs/AutoChangeLog-pr-65594.yml
deleted file mode 100644
index 06c8770dfc9..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65594.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Jolly"
-delete-after: True
-changes:
- - bugfix: "SnowCabin.dmm had its active turfs rectified."
diff --git a/html/changelogs/AutoChangeLog-pr-65615.yml b/html/changelogs/AutoChangeLog-pr-65615.yml
deleted file mode 100644
index 1b8329c0c85..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65615.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "dragomagol"
-delete-after: True
-changes:
- - bugfix: "The chairs on the casino shuttle are now facing the proper directions"
- - bugfix: "The Zeta shuttle brig now uses the brig shuttle area"
- - qol: "Shuttle doors that previously had varedited accesses now use preset access helpers"
diff --git a/html/changelogs/AutoChangeLog-pr-65619.yml b/html/changelogs/AutoChangeLog-pr-65619.yml
deleted file mode 100644
index b64ce7a9eb8..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65619.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "nianjiilical"
-delete-after: True
-changes:
- - balance: "Sentient Diseases now require a minimum playercount of 25 to activate, up from 10."
diff --git a/html/changelogs/AutoChangeLog-pr-65633.yml b/html/changelogs/AutoChangeLog-pr-65633.yml
deleted file mode 100644
index d8abab9f79e..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65633.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Maurukas"
-delete-after: True
-changes:
- - bugfix: "The engineering console on Icebox is once again connected to the station's grid and can see APC status and available power."
diff --git a/html/changelogs/AutoChangeLog-pr-65637.yml b/html/changelogs/AutoChangeLog-pr-65637.yml
deleted file mode 100644
index 23cfcd7c763..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65637.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Rhials"
-delete-after: True
-changes:
- - rscadd: "Added command encryption keys to the cargo order console"
diff --git a/html/changelogs/AutoChangeLog-pr-65641.yml b/html/changelogs/AutoChangeLog-pr-65641.yml
deleted file mode 100644
index aaedcfb7c1a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65641.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Watermelon914"
-delete-after: True
-changes:
- - balance: "Destroy the Blackbox is now worth 6-9 TC instead of 4 TC"
diff --git a/html/changelogs/AutoChangeLog-pr-65651.yml b/html/changelogs/AutoChangeLog-pr-65651.yml
deleted file mode 100644
index a8f57fbf1b7..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65651.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "san7890"
-delete-after: True
-changes:
- - bugfix: "If you were a prisoner on KiloStation and you noticed some abnormally dark rocks, I hope you are pleased to know that they have been brightened up. No compensation is offered."
diff --git a/html/changelogs/AutoChangeLog-pr-65659.yml b/html/changelogs/AutoChangeLog-pr-65659.yml
deleted file mode 100644
index b12ff67947b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65659.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "cacogen"
-delete-after: True
-changes:
- - bugfix: "You can no longer offer things to yourself, choosing instead to take them directly"
- - bugfix: "Can no longer headpat mobs without heads"
- - expansion: "Adds screentips for headpatting, hugging and tail pulling"
diff --git a/html/changelogs/AutoChangeLog-pr-65662.yml b/html/changelogs/AutoChangeLog-pr-65662.yml
deleted file mode 100644
index 2fd38aea341..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65662.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "OperativeLyn"
-delete-after: True
-changes:
- - bugfix: "IceBox had two washing machines on the same tile, as well as a bit brighter than usual decals. That tile is back to normal."
diff --git a/html/changelogs/AutoChangeLog-pr-65667.yml b/html/changelogs/AutoChangeLog-pr-65667.yml
deleted file mode 100644
index 23b44f026b5..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65667.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "GoblinBackwards"
-delete-after: True
-changes:
- - bugfix: "Fixed stray syndicate supply pods not containing any items."
diff --git a/html/changelogs/AutoChangeLog-pr-65671.yml b/html/changelogs/AutoChangeLog-pr-65671.yml
deleted file mode 100644
index 0e6ebe53e2c..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65671.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "LemonInTheDark"
-delete-after: True
-changes:
- - bugfix: "The latejoin menu will now properly close when you join the game"
diff --git a/html/changelogs/AutoChangeLog-pr-65675.yml b/html/changelogs/AutoChangeLog-pr-65675.yml
deleted file mode 100644
index a9343dde82e..00000000000
--- a/html/changelogs/AutoChangeLog-pr-65675.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "vincentiusvin"
-delete-after: True
-changes:
- - spellcheck: "made the reaction list on a few machines' ui (compressor, atmos control) to be newlined."
diff --git a/html/changelogs/archive/2022-06.yml b/html/changelogs/archive/2022-06.yml
new file mode 100644
index 00000000000..c5322166cd6
--- /dev/null
+++ b/html/changelogs/archive/2022-06.yml
@@ -0,0 +1,52 @@
+2022-06-10:
+ ArcaneMusic ft. sprites by Kryson:
+ - rscadd: Newscasters have been moved over to TGUI, and with them several new features.
+ - expansion: Newscaster channels can now be given channel descriptions!
+ - expansion: Messages can now be censored by crew with brig access from any console.
+ - rscdel: Standalone bounty boards have been replaced with newscasters, as the two
+ have been merged.
+ - refactor: Bounty boards and newscaster code have been refactored in order to merge
+ the two pieces of content.
+ GoblinBackwards:
+ - bugfix: Fixed stray syndicate supply pods not containing any items.
+ - bugfix: Fixed airlocks and windoors not being able to be attacked by melee weapons
+ in combat mode.
+ Jolly:
+ - bugfix: SnowCabin.dmm had its active turfs rectified.
+ LemonInTheDark:
+ - bugfix: The latejoin menu will now properly close when you join the game
+ Maurukas:
+ - bugfix: The engineering console on Icebox is once again connected to the station's
+ grid and can see APC status and available power.
+ OperativeLyn:
+ - bugfix: IceBox had two washing machines on the same tile, as well as a bit brighter
+ than usual decals. That tile is back to normal.
+ Rhials:
+ - rscadd: Added command encryption keys to the cargo order console
+ SuperNovaa41:
+ - bugfix: Fixes nonhuman head of departments showing up as their original species
+ in security records.
+ Watermelon914:
+ - balance: Destroy the Blackbox is now worth 6-9 TC instead of 4 TC
+ cacogen:
+ - bugfix: You can no longer offer things to yourself, choosing instead to take them
+ directly
+ - bugfix: Can no longer headpat mobs without heads
+ - expansion: Adds screentips for headpatting, hugging and tail pulling
+ - expansion: Can fire guns and secondary attack (right-click) with TK. Throwing
+ things with TK now requires throw mode.
+ dragomagol:
+ - bugfix: The chairs on the casino shuttle are now facing the proper directions
+ - bugfix: The Zeta shuttle brig now uses the brig shuttle area
+ - qol: Shuttle doors that previously had varedited accesses now use preset access
+ helpers
+ nianjiilical:
+ - balance: Sentient Diseases now require a minimum playercount of 25 to activate,
+ up from 10.
+ san7890:
+ - bugfix: If you were a prisoner on KiloStation and you noticed some abnormally
+ dark rocks, I hope you are pleased to know that they have been brightened up.
+ No compensation is offered.
+ vincentiusvin:
+ - spellcheck: made the reaction list on a few machines' ui (compressor, atmos control)
+ to be newlined.
From b13a1c95d63defbb5c03d7fda380b3da74b31995 Mon Sep 17 00:00:00 2001
From: SabreML <57483089+SabreML@users.noreply.github.com>
Date: Fri, 10 Jun 2022 05:55:30 +0100
Subject: [PATCH 11/16] Species examine text (#745)
* Examine
* Species names
* The English language has no flaws whatsoever
* English is still horrible but this is probably pronounced differently
(And even if it's not people probably won't notice anyway)
---
.../nightmare/nightmare_species.dm | 2 +-
.../mob/living/carbon/human/examine.dm | 7 ++-
.../mob/living/carbon/human/species.dm | 2 +-
.../carbon/human/species_types/abductors.dm | 2 +-
.../carbon/human/species_types/android.dm | 2 +-
.../carbon/human/species_types/dullahan.dm | 2 +-
.../carbon/human/species_types/felinid.dm | 2 +-
.../carbon/human/species_types/flypeople.dm | 2 +-
.../carbon/human/species_types/golems.dm | 56 +++++++++----------
.../carbon/human/species_types/jellypeople.dm | 2 +-
.../human/species_types/lizardpeople.dm | 4 +-
.../carbon/human/species_types/monkeys.dm | 2 +-
.../carbon/human/species_types/mushpeople.dm | 2 +-
.../human/species_types/shadowpeople.dm | 2 +-
.../carbon/human/species_types/skeletons.dm | 2 +-
.../carbon/human/species_types/skrell.dm | 2 +-
.../carbon/human/species_types/snail.dm | 2 +-
.../carbon/human/species_types/vampire.dm | 2 +-
.../carbon/human/species_types/zombies.dm | 4 +-
19 files changed, 52 insertions(+), 49 deletions(-)
diff --git a/code/modules/antagonists/nightmare/nightmare_species.dm b/code/modules/antagonists/nightmare/nightmare_species.dm
index 5b448b72187..8815f081dd4 100644
--- a/code/modules/antagonists/nightmare/nightmare_species.dm
+++ b/code/modules/antagonists/nightmare/nightmare_species.dm
@@ -2,7 +2,7 @@
* A highly aggressive subset of shadowlings
*/
/datum/species/shadow/nightmare
- name = "Nightmare"
+ name = "\improper Nightmare"
id = SPECIES_NIGHTMARE
examine_limb_id = "shadow"
burnmod = 1.5
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 56f6ad5491e..686829fdead 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -14,11 +14,14 @@
if(HAS_TRAIT(L, TRAIT_PROSOPAGNOSIA) || HAS_TRAIT(L, TRAIT_INVISIBLE_MAN))
obscure_name = TRUE
- . = list("This is [!obscure_name ? name : "Unknown"]
") //PARIAH EDIT CHANGE
-
var/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
+ var/species_text
+ if(dna.species && !skipface)
+ species_text = ", \a [dna.species.name]"
+
+ . = list("This is [!obscure_name ? name : "Unknown"][species_text]!
")
//uniform
if(w_uniform && !(obscured & ITEM_SLOT_ICLOTHING) && !(w_uniform.item_flags & EXAMINE_SKIP))
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index f2b4a2542f0..aff6f6ef2ef 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -15,7 +15,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
/datum/species
///If the game needs to manually check your race to do something not included in a proc here, it will use this.
var/id
- ///This is the fluff name. They are displayed on health analyzers and in the character setup menu. Leave them generic for other servers to customize.
+ ///This is the fluff name. They are displayed on health analyzers and in the character setup menu. Must be `\improper`.
var/name
/// The formatting of the name of the species in plural context. Defaults to "[name]\s" if unset.
/// Ex "[Plasmamen] are weak", "[Mothmen] are strong", "[Lizardpeople] don't like", "[Golems] hate"
diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm
index a248ce1e338..7f8999e28f4 100644
--- a/code/modules/mob/living/carbon/human/species_types/abductors.dm
+++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm
@@ -1,5 +1,5 @@
/datum/species/abductor
- name = "Abductor"
+ name = "\improper Abductor"
id = SPECIES_ABDUCTOR
say_mod = "gibbers"
sexes = FALSE
diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm
index 3735838029d..2304df4bc3d 100644
--- a/code/modules/mob/living/carbon/human/species_types/android.dm
+++ b/code/modules/mob/living/carbon/human/species_types/android.dm
@@ -1,5 +1,5 @@
/datum/species/android
- name = "Android"
+ name = "\improper Android"
id = SPECIES_ANDROID
say_mod = "states"
species_traits = list(NOBLOOD, NO_DNA_COPY, NOTRANSSTING)
diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm
index edf3e008371..8715c86b98a 100644
--- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm
+++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm
@@ -1,5 +1,5 @@
/datum/species/dullahan
- name = "Dullahan"
+ name = "\improper Dullahan"
id = SPECIES_DULLAHAN
default_color = "FFFFFF"
species_traits = list(EYECOLOR, HAIR, FACEHAIR, LIPS, HAS_FLESH, HAS_BONE, HAIRCOLOR, FACEHAIRCOLOR)
diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm
index a19009b2131..a770c0a0692 100644
--- a/code/modules/mob/living/carbon/human/species_types/felinid.dm
+++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm
@@ -1,6 +1,6 @@
//Subtype of human
/datum/species/human/felinid
- name = "Felinid"
+ name = "\improper Felinid"
id = SPECIES_FELINE
say_mod = "meows"
diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
index 7a781dedddd..90dd1419180 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -1,5 +1,5 @@
/datum/species/fly
- name = "Flyperson"
+ name = "\improper Flyperson"
plural_form = "Flypeople"
id = SPECIES_FLYPERSON
say_mod = "buzzes"
diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm
index 1563e36e5f7..ff4b7b9f961 100644
--- a/code/modules/mob/living/carbon/human/species_types/golems.dm
+++ b/code/modules/mob/living/carbon/human/species_types/golems.dm
@@ -1,6 +1,6 @@
/datum/species/golem
// Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck.
- name = "Golem"
+ name = "\improper Golem"
id = SPECIES_GOLEM
species_traits = list(NOBLOOD,NOTRANSSTING, MUTCOLORS,NO_UNDERWEAR, NO_DNA_COPY)
inherent_traits = list(
@@ -84,7 +84,7 @@
return to_add
/datum/species/golem/adamantine
- name = "Adamantine Golem"
+ name = "\improper Adamantine Golem"
id = SPECIES_GOLEM_ADAMANTINE
meat = /obj/item/food/meat/slab/human/mutant/golem/adamantine
mutant_organs = list(/obj/item/organ/adamantine_resonator, /obj/item/organ/vocal_cords/adamantine)
@@ -104,7 +104,7 @@
//The suicide bombers of golemkind
/datum/species/golem/plasma
- name = "Plasma Golem"
+ name = "\improper Plasma Golem"
id = SPECIES_GOLEM_PLASMA
fixed_mut_color = "#aa33dd"
meat = /obj/item/stack/ore/plasma
@@ -177,7 +177,7 @@
//Harder to hurt
/datum/species/golem/diamond
- name = "Diamond Golem"
+ name = "\improper Diamond Golem"
id = SPECIES_GOLEM_DIAMOND
fixed_mut_color = "#00ffff"
armor = 70 //up from 55
@@ -189,7 +189,7 @@
//Faster but softer and less armoured
/datum/species/golem/gold
- name = "Gold Golem"
+ name = "\improper Gold Golem"
id = SPECIES_GOLEM_GOLD
fixed_mut_color = "#cccc00"
speedmod = 1
@@ -202,7 +202,7 @@
//Heavier, thus higher chance of stunning when punching
/datum/species/golem/silver
- name = "Silver Golem"
+ name = "\improper Silver Golem"
id = SPECIES_GOLEM_SILVER
fixed_mut_color = "#dddddd"
punchstunthreshold = 9 //60% chance, from 40%
@@ -222,7 +222,7 @@
//Harder to stun, deals more damage, massively slowpokes, but gravproof and obstructive. Basically, The Wall.
/datum/species/golem/plasteel
- name = "Plasteel Golem"
+ name = "\improper Plasteel Golem"
id = SPECIES_GOLEM_PLASTEEL
fixed_mut_color = "#bbbbbb"
stunmod = 0.4
@@ -252,7 +252,7 @@
//Immune to ash storms
/datum/species/golem/titanium
- name = "Titanium Golem"
+ name = "\improper Titanium Golem"
id = SPECIES_GOLEM_TITANIUM
fixed_mut_color = "#ffffff"
meat = /obj/item/stack/ore/titanium
@@ -272,7 +272,7 @@
//Immune to ash storms and lava
/datum/species/golem/plastitanium
- name = "Plastitanium Golem"
+ name = "\improper Plastitanium Golem"
id = SPECIES_GOLEM_PLASTITANIUM
fixed_mut_color = "#888888"
meat = /obj/item/stack/ore/titanium
@@ -294,7 +294,7 @@
//Fast and regenerates... but can only speak like an abductor
/datum/species/golem/alloy
- name = "Alien Alloy Golem"
+ name = "\improper Alien Alloy Golem"
id = SPECIES_GOLEM_ALIEN
fixed_mut_color = "#333333"
meat = /obj/item/stack/sheet/mineral/abductor
@@ -315,7 +315,7 @@
//Since this will usually be created from a collaboration between podpeople and free golems, wood golems are a mix between the two races
/datum/species/golem/wood
- name = "Wood Golem"
+ name = "\improper Wood Golem"
id = SPECIES_GOLEM_WOOD
fixed_mut_color = "#9E704B"
meat = /obj/item/stack/sheet/mineral/wood
@@ -371,7 +371,7 @@
//Radioactive puncher, hits for burn but only as hard as human, slightly more durable against brute but less against everything else
/datum/species/golem/uranium
- name = "Uranium Golem"
+ name = "\improper Uranium Golem"
id = SPECIES_GOLEM_URANIUM
fixed_mut_color = "#77ff00"
meat = /obj/item/stack/ore/uranium
@@ -415,7 +415,7 @@
//Immune to physical bullets and resistant to brute, but very vulnerable to burn damage. Dusts on death.
/datum/species/golem/sand
- name = "Sand Golem"
+ name = "\improper Sand Golem"
id = SPECIES_GOLEM_SAND
fixed_mut_color = "#ffdc8f"
meat = /obj/item/stack/ore/glass //this is sand
@@ -447,7 +447,7 @@
//Reflects lasers and resistant to burn damage, but very vulnerable to brute damage. Shatters on death.
/datum/species/golem/glass
- name = "Glass Golem"
+ name = "\improper Glass Golem"
id = SPECIES_GOLEM_GLASS
fixed_mut_color = "#5a96b4aa" //transparent body
meat = /obj/item/shard
@@ -485,7 +485,7 @@
//Teleports when hit or when it wants to
/datum/species/golem/bluespace
- name = "Bluespace Golem"
+ name = "\improper Bluespace Golem"
id = SPECIES_GOLEM_BLUESPACE
fixed_mut_color = "#3333ff"
meat = /obj/item/stack/ore/bluespace_crystal
@@ -545,14 +545,14 @@
..()
/datum/action/innate/unstable_teleport
- name = "Unstable Teleport"
+ name = "\improper Unstable Teleport"
check_flags = AB_CHECK_CONSCIOUS
button_icon_state = "jaunt"
icon_icon = 'icons/mob/actions/actions_spells.dmi'
var/cooldown = 150
var/last_teleport = 0
///Set to true upon action activation to prevent spamming teleport callbacks while the first is still occurring.
- var/is_charging = FALSE
+ var/is_charging = FALSE
/datum/action/innate/unstable_teleport/IsAvailable()
. = ..()
@@ -584,7 +584,7 @@
//honk
/datum/species/golem/bananium
- name = "Bananium Golem"
+ name = "\improper Bananium Golem"
id = SPECIES_GOLEM_BANANIUM
fixed_mut_color = "#ffff00"
say_mod = "honks"
@@ -691,7 +691,7 @@
speech_args[SPEECH_SPANS] |= SPAN_CLOWN
/datum/species/golem/runic
- name = "Runic Golem"
+ name = "\improper Runic Golem"
id = SPECIES_GOLEM_CULT
sexes = FALSE
info_text = "As a Runic Golem, you possess eldritch powers granted by the Elder Goddess Nar'Sie."
@@ -768,7 +768,7 @@
H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM * delta_time)
/datum/species/golem/cloth
- name = "Cloth Golem"
+ name = "\improper Cloth Golem"
id = SPECIES_GOLEM_CLOTH
sexes = FALSE
info_text = "As a Cloth Golem, you are able to reform yourself after death, provided your remains aren't burned or destroyed. You are, of course, very flammable. \
@@ -944,7 +944,7 @@
fire_act()
/datum/species/golem/plastic
- name = "Plastic Golem"
+ name = "\improper Plastic Golem"
id = SPECIES_GOLEM_PLASTIC
inherent_traits = list(
TRAIT_ADVANCEDTOOLUSER,
@@ -969,7 +969,7 @@
examine_limb_id = SPECIES_GOLEM
/datum/species/golem/bronze
- name = "Bronze Golem"
+ name = "\improper Bronze Golem"
id = SPECIES_GOLEM_BRONZE
prefix = "Bronze"
special_names = list("Bell")
@@ -1039,7 +1039,7 @@
/datum/species/golem/cardboard //Faster but weaker, can also make new shells on its own
- name = "Cardboard Golem"
+ name = "\improper Cardboard Golem"
id = SPECIES_GOLEM_CARDBOARD
prefix = "Cardboard"
special_names = list("Box")
@@ -1107,7 +1107,7 @@
last_creation = world.time
/datum/species/golem/leather
- name = "Leather Golem"
+ name = "\improper Leather Golem"
id = SPECIES_GOLEM_LEATHER
special_names = list("Face", "Man", "Belt") //Ah dude 4 strength 4 stam leather belt AHHH
inherent_traits = list(
@@ -1131,7 +1131,7 @@
attack_sound = 'sound/weapons/whip.ogg'
examine_limb_id = SPECIES_GOLEM
/datum/species/golem/durathread
- name = "Durathread Golem"
+ name = "\improper Durathread Golem"
id = SPECIES_GOLEM_DURATHREAD
prefix = "Durathread"
special_names = list("Boll","Weave")
@@ -1166,7 +1166,7 @@
target.apply_status_effect(/datum/status_effect/strandling)
/datum/species/golem/bone
- name = "Bone Golem"
+ name = "\improper Bone Golem"
id = SPECIES_GOLEM_BONE
say_mod = "rattles"
prefix = "Bone"
@@ -1283,7 +1283,7 @@
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "spooked", /datum/mood_event/spooked)
/datum/species/golem/snow
- name = "Snow Golem"
+ name = "\improper Snow Golem"
id = SPECIES_GOLEM_SNOW
fixed_mut_color = null //custom sprites
armor = 45 //down from 55
@@ -1352,7 +1352,7 @@
action_icon_state = "snowball"
/datum/species/golem/mhydrogen
- name = "Metallic Hydrogen Golem"
+ name = "\improper Metallic Hydrogen Golem"
id = SPECIES_GOLEM_HYDROGEN
fixed_mut_color = "#dddddd"
info_text = "As a Metallic Hydrogen Golem, you were forged in the highest pressures and the highest heats. Your unique mineral makeup makes you immune to most types of damages."
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index 4bf8a1b9a9c..8d97ba7c2f1 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -442,7 +442,7 @@
//Luminescents are able to consume and use slime extracts, without them decaying.
/datum/species/jelly/luminescent
- name = "Luminescent"
+ name = "\improper Luminescent"
plural_form = null
id = SPECIES_LUMINESCENT
examine_limb_id = SPECIES_JELLYPERSON
diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
index 899afb5ae34..bba70f4559b 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -179,7 +179,7 @@
Lizard subspecies: ASHWALKERS
*/
/datum/species/lizard/ashwalker
- name = "Ash Walker"
+ name = "\improper Ash Walker"
id = SPECIES_LIZARD_ASH
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAS_FLESH,HAS_BONE)
mutantlungs = /obj/item/organ/lungs/ashwalker
@@ -196,7 +196,7 @@ Lizard subspecies: ASHWALKERS
Lizard subspecies: SILVER SCALED
*/
/datum/species/lizard/silverscale
- name = "Silver Scale"
+ name = "\improper Silver Scale"
id = SPECIES_LIZARD_SILVER
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE
inherent_traits = list(
diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm
index 40063c834ce..9a0d0d528b2 100644
--- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm
+++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm
@@ -1,5 +1,5 @@
/datum/species/monkey
- name = "Monkey"
+ name = "\improper Monkey"
id = SPECIES_MONKEY
say_mod = "chimpers"
bodytype = BODYTYPE_ORGANIC | BODYTYPE_MONKEY
diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
index db340e41898..e4afe71d1b4 100644
--- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm
@@ -1,5 +1,5 @@
/datum/species/mush //mush mush codecuck
- name = "Mushroomperson"
+ name = "\improper Mushroomperson"
plural_form = "Mushroompeople"
id = SPECIES_MUSHROOM
mutant_bodyparts = list("caps" = "Round")
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index 4b905f35aa0..a659937d80e 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -1,6 +1,6 @@
/datum/species/shadow
// Humans cursed to stay in the darkness, lest their life forces drain. They regain health in shadow and die in light.
- name = "Shadow"
+ name = "\improper Shadow"
plural_form = "Shadowpeople"
id = SPECIES_SHADOW
sexes = 0
diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm
index 67b0712254e..ac7eb01b227 100644
--- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm
+++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm
@@ -1,6 +1,6 @@
/datum/species/skeleton
// 2spooky
- name = "Spooky Scary Skeleton"
+ name = "\improper Spooky Scary Skeleton"
id = SPECIES_SKELETON
say_mod = "rattles"
sexes = 0
diff --git a/code/modules/mob/living/carbon/human/species_types/skrell.dm b/code/modules/mob/living/carbon/human/species_types/skrell.dm
index a5f1f3652eb..16df6433834 100644
--- a/code/modules/mob/living/carbon/human/species_types/skrell.dm
+++ b/code/modules/mob/living/carbon/human/species_types/skrell.dm
@@ -1,5 +1,5 @@
/datum/species/skrell
- name = "Skrell"
+ name = "\improper Skrell"
id = SPECIES_SKRELL
say_mod = "warbles"
default_color = "42F58D"
diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm
index 6b7dfecd6fe..5763fc89e57 100644
--- a/code/modules/mob/living/carbon/human/species_types/snail.dm
+++ b/code/modules/mob/living/carbon/human/species_types/snail.dm
@@ -1,5 +1,5 @@
/datum/species/snail
- name = "Snailperson"
+ name = "\improper Snailperson"
id = SPECIES_SNAIL
offset_features = list(OFFSET_GLASSES = list(0,4))
default_color = "336600" //vomit green
diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm
index 699c07f47d5..88600038787 100644
--- a/code/modules/mob/living/carbon/human/species_types/vampire.dm
+++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm
@@ -5,7 +5,7 @@
#define VAMP_DRAIN_AMOUNT 50
/datum/species/vampire
- name = "Vampire"
+ name = "\improper Vampire"
id = SPECIES_VAMPIRE
default_color = "FFFFFF"
species_traits = list(
diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm
index 797d64bc62b..3d4684d64d3 100644
--- a/code/modules/mob/living/carbon/human/species_types/zombies.dm
+++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm
@@ -2,7 +2,7 @@
/datum/species/zombie
// 1spooky
- name = "High-Functioning Zombie"
+ name = "\improper High-Functioning Zombie"
id = SPECIES_ZOMBIE
say_mod = "moans"
sexes = 0
@@ -77,7 +77,7 @@
return to_add
/datum/species/zombie/infectious
- name = "Infectious Zombie"
+ name = "\improper Infectious Zombie"
id = SPECIES_ZOMBIE_INFECTIOUS
examine_limb_id = SPECIES_ZOMBIE
mutanthands = /obj/item/zombie_hand
From 1f58b0639b80ba9bd26bb1a211b1c36ae5d65cd4 Mon Sep 17 00:00:00 2001
From: ElorgRHG <71735193+ElorgRHG@users.noreply.github.com>
Date: Fri, 10 Jun 2022 21:31:57 +0200
Subject: [PATCH 12/16] Tablets now have a crew manifest app by default (#764)
---
code/datums/datacore.dm | 4 +++-
code/modules/modular_computers/hardware/hard_drive.dm | 2 ++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 47e2e71b5c8..8417ca6cbab 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -164,6 +164,7 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new)
misc_list[++misc_list.len] = list(
"name" = name,
"rank" = rank,
+ "trim" = trim,
)
continue
for(var/department_type as anything in job.departments_list)
@@ -174,6 +175,7 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new)
var/list/entry = list(
"name" = name,
"rank" = rank,
+ "trim" = trim,
)
var/list/department_list = manifest_out[department.department_name]
if(istype(job, department.department_head))
@@ -209,7 +211,7 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new)
var/even = FALSE
for(var/entry in entries)
var/list/entry_list = entry
- dat += "[entry_list["name"]] | [entry_list["rank"]] |
"
+ dat += "[entry_list["name"]] | [entry_list["rank"] == entry_list["trim"] ? entry_list["rank"] : "[entry_list["rank"]] ([entry_list["trim"]])"] |
"
even = !even
dat += ""
diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm
index 2431b41f876..98b4d07aac9 100644
--- a/code/modules/modular_computers/hardware/hard_drive.dm
+++ b/code/modules/modular_computers/hardware/hard_drive.dm
@@ -175,6 +175,7 @@
store_file(new /datum/computer_file/program/messenger(src))
store_file(new /datum/computer_file/program/notepad(src))
+ store_file(new /datum/computer_file/program/crew_manifest(src))
// For borg integrated tablets. No downloader.
/obj/item/computer_hardware/hard_drive/small/integrated/install_default_programs()
@@ -186,6 +187,7 @@
store_file(new /datum/computer_file/program/computerconfig(src)) // Computer configuration utility, allows hardware control and displays more info than status bar
store_file(new /datum/computer_file/program/filemanager(src)) // File manager, allows text editor functions and basic file manipulation.
store_file(new /datum/computer_file/program/robotact(src))
+ store_file(new /datum/computer_file/program/crew_manifest(src))
var/datum/computer_file/program/messenger/messenger = new(src)
messenger.is_silicon = TRUE
store_file(messenger)
From 94bfb2ebe8d801d0b10ad3d6ab771f975ae45893 Mon Sep 17 00:00:00 2001
From: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Date: Sat, 11 Jun 2022 01:18:10 -0700
Subject: [PATCH 13/16] New IPC (eventually) / PAI cable sprite (#766)
* Makes tablets get names when not spawned on the belt (#66524)
* sure
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
---
icons/obj/power.dmi | Bin 35099 -> 35257 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi
index 2cb18e04db3baedc07ef0710b82c43bd6a398744..7888c60f41e70dab9b9de3ce9cad59cab25a4a10 100644
GIT binary patch
literal 35257
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
literal 35099
zcmbTebwE_#*DpK+NGM2&bR(!pr*wxB0*VMor=&>3Fe9LJgOq^MNH@|Y-60Lq9Rmz8
z49q>__xF3=``+id&%N*ahk9n8bN1P5?G>LD+mII;%0#zmZi7G|B2^UyZ4d~H3G)XZ
z7Z_;_8KVP!tb4!Ib5*eXVD4h;>}u=e2m*P2{gu?_n8i!-d3gCz(OD?x9NYfE$NnFa
zKZ4FESj^c?CQbUwEU(UdRDNVL9}rGHqga8RUavCxNSN1IwJ`WeOI2Rwb?;HEm_UY~
z)ijgNysJP=SHx00HmEj9b)T0e%wqVMu-7+}OTYfA=7$5FUav*Xtl~mj>oZ-8LYl9B
z<`2k4c2UmOoSP7n2XWR~o~x)+W0sJ9Eh}u?c!Au>@{hp*q+(6RFjfK4U_aJ4fT9q)ipnvr~C9c@oLwVQaCVe)|rtl
zMn|E9$;FPPmf5A2tt9m3mbY1tILmoJ&viC;$T$DaUjqJAquHOORL5C(td_~8q+aLD
z=e=y}F8^pGYE$Lav3tyr*zc^^>G3-vP=kNx=GLc`=@(Q7*nfV#hx)C!t$Xh0DWVur
zyyqG`!D=D1Z8H9KPDg!Qirl}{f)Dr+tGFX2+b5^j5RlWlkm1OXw%0XeVTNQEqrw&r3%w|2?8;JR25`jdVbwY^YOih
zXu8Qz)LCQse5EU^QqHcIy^O+e95d
z>x1*;nc;&0fs8{-L!(m4KoU88X5F#210p8iGWg^hm>Ki$`UnhjqtnGk1|JwOdn$;z
zjbBbjgBcFgyGw)_mU|L}iy3DAB9ASHPhh%V=yco87@||=BaY9!eFu0(p>6i{(mj{b
zVfh1u*Ea&@z@%R}?oJ?Pwx9XPmfLDcyriI`Zs`)-+$GzS`!kx8&E&D91|JUD27JF0
zf_TptStQWyas~6zZB1|8x6wT!)EW0Z)klq++|sgJ4n-bNp?0xAt%WT!5!)>c+zF{}
zb1&ykGcHkz<7d!6m+0tI=*2?7MZY*U7=+zCcgMK#gZ5*OvQ&81IjC&L
z;WY{9==YrQpU6X^=sqsJBiJLP6=@~d>tyhZGfVuiar`*Vy4Y)a8`z@#Av>tK?`EWST+AFSiE_
zZAEd;zek)_ihEDM7coMosd{2w^eBhjN?fb&XC_>_PH#DqEah0XJr>IsCaxJr4r!@w
ziXDKdfveV9nq|D`Dd57b@}uT!a1dIaw?D9M0a9)~2n8Q?>>q@^{_TqcokJFu)RP(e
zdExYbk>t#dB?#$-H6nKkL$O=?5;#9y9W)GA{0A|gZhRJ9Kr-hC5b`$;^ZDoWWoK6{
zUVd70V{em0pkyGEioI*op8@JZ%rU3pOU_(B&eC|*(YGJbx^p_FGN2s7W1BJnGICQe
zG&}qd7^J$7<`VOck&Y=zFx5PUc7@SP}tu+49xqs24;VL(tAmk~w3-Z*~
z_OdgCoM0x&=Hj@YCuhCVdRV{2>HLP=r(FETeRnRzcL}_EhVCmpZx1*hjyLL0O#7B0
z#CzurF)I7I+J1%rS?4J1hq{^>dwy9#VdyrQP`C4glcH27tquumG|~<0jjJH5=F<9r
zzEVD#e|Y8p;>??xT|M0*wRt=_L)uvHz`!wey!PrGUE6X^v~)S-VLx6QH)R(9VPdy_
zbAq00fl4p>iu)#uw|EFd(n(S`M~5Ikw8TYhv`i*tLf8H<+s{=!wNEzS2$$b))1N!F
z_M2+FUb@`S0^RBOLd{$9aGKB@D^DZMf617%M$KrE*Y|RrROfVZZF88B2qd+1oCcrh
z(8v#rE_vtllA27*D+?eb`|%<7Ozq6VU)#
zuV7a5rfR}EM;O)+nFV6Fkb7eJ74etU4U#BoeO&`2=SREi!AvOU!5Oz1FG#X
zDqVg|wAb=3`w{XfYmm~DN{4YPx~HBGmuHm_nnk|Y%KQhsifCZv!Fn5EgLleL2D7%#
z13Gul50@A{?DrUJ!k3Ic>f~uWFp^NUowTQ+P$C;T2YJY;V^hhI3
zET`d#mD)h-5G2u>3742*MHHAUb1q?lK96S@=6T#=^|M(5do1TUWj|uQ(@sLcjGrk=
z@+@h$4UaK?_7fC+wPfJ^V8<0=#^c_-#C;9Ww!C!TTGrlu%s`kN(Tx3j58VuTHC%AqOKa)&6I9nT_KA;GMoc-(LiAEke-{9Wk9q8lliyJPyD=
z#lo@$nLsbJv|>h(pNVL{j36=2i%eYAP6qU?tc;f#agUOcBbx!^+1Ng33p0V7_omD1
zq?T%(mT(*Zr$r)1rl?I5t(B$p^YP=y*?vsrDfmCVOwq)^8*E-G*Hm2_`pB6kjR(
z`T41&ZJWp)8{t@8eaz+UXM>oc;sV|_xIc>2s;;h15_ZtC9CMR7aUZ?pHGL9fpC
zQ8`M%UZlZ&pUi6L
zYsjxK%GKOdNB*~(f(*py6-wsA;x{LFZMI6;?=%y5KWsq%6f9j2@eiU>GCr~6SD-m_
z4<&L4RrtRR73GHr>%>JOFNGM|q&dp#y?C$=S3}~bp?SNTQ=VV4%~8MNxIj;g8uj2t
zy1HL1p8YO*!ZadEuVtHgMV}w?vW^a*rv?5knw;Cxf
zIMssqZ7_lN=N!9`tmx@n)E|mwFr@N(^T~>_zW!qiOG_|pgP^vm>LrPKFQ9JVDr<#z
zc6Q~i+uFbmV*?wK>zI*%+g$`1%>>AI1~x(1!54e-%1%(TZm!me@(1)aD|Jks-?@0N
zYjD@P!UBO#&G6lT@dj%ropV(UzrkUgUe7he9j=ixBR1Ap;}Zed8>445BwSgh374QE
z@sYeAe&d3rcC%HT?}WiJ2IOiLhb`lX)LgH`q2?J8|OFo(J2nLIyZCVZp^##Cy2
z<&8G&4F>I7DHL%q?z6L5VQa@pLj^$=S6>dptM5uqWSNk?vd-LjcE |