From adf2166c571ed872f709f1bdd49d8aa54244bcfb Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 8 Jul 2019 12:31:15 -0700
Subject: [PATCH 01/27] t
---
.../subsystem/processing/quirks.dm | 51 ++++++++++++++++++-
code/datums/traits/_quirk.dm | 1 -
code/modules/jobs/job_types/captain.dm | 3 ++
code/modules/jobs/job_types/cargo_service.dm | 2 +
code/modules/jobs/job_types/engineering.dm | 2 +
code/modules/jobs/job_types/job.dm | 2 +
code/modules/jobs/job_types/medical.dm | 2 +
code/modules/jobs/job_types/science.dm | 2 +
code/modules/jobs/job_types/security.dm | 2 +
.../modules/mob/dead/new_player/new_player.dm | 2 +-
10 files changed, 65 insertions(+), 4 deletions(-)
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index a6c86a3576..708f823298 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -9,6 +9,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
runlevels = RUNLEVEL_GAME
var/list/quirks = list() //Assoc. list of all roundstart quirk datum types; "name" = /path/
+ var/list/quirk_names_by_path = list()
var/list/quirk_points = list() //Assoc. list of quirk names and their "point cost"; positive numbers are good traits, and negative ones are bad
var/list/quirk_objects = list() //A list of all quirk objects in the game, since some may process
@@ -22,11 +23,57 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
var/datum/quirk/T = V
quirks[initial(T.name)] = T
quirk_points[initial(T.name)] = initial(T.value)
+ quirk_names_by_path[T] = initial(T.name)
-/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects)
+/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects, roundstart = FALSE, datum/job/job, silent = FALSE)
GenerateQuirks(cli)
- for(var/V in cli.prefs.character_quirks)
+ var/list/quirks = cli.prefs.character_quirks.Copy()
+ var/list/cut
+ if(job && job.blacklisted_quirks)
+ cut = filter_quirks(quirks, job)
+ for(var/V in quirks)
user.add_quirk(V, spawn_effects)
+ if(!silent)
+ to_chat(user, "The following quirks were cut during assignment either due to a job restriction or another reason: [english_list(cut)].")
+
+/datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name)
+ return quirks[name]
+
+/datum/controller/subsystem/processing/quirks/proc/quirk_points_by_name(name)
+ return quirk_points[name]
+
+/datum/controller/subsystem/processing/quirks/proc/quirk_name_by_path(path)
+ return quirk_names_by_path[path]
+
+/datum/controller/subsystem/processing/quirks/proc/total_points(list/quirk_names)
+ . = 0
+ for(var/i in quirk_names)
+ . += quirk_points_by_name(i)
+
+/datum/controller/subsystem/processing/quirks/proc/filter_quirks(list/quirks, datum/job/job)
+ var/list/cut = list()
+ var/list/banned_names = list()
+ for(var/i in job.blacklisted_quirks)
+ var/name = quirk_name_by_path(i)
+ if(name)
+ banned_names += name
+ var/list/blacklisted = quirks & banned_names
+ if(length(blacklisted))
+ for(var/i in blacklisted)
+ quirks -= i
+ cut += i
+ var/points_used = total_points(quirks)
+ if(points_used > 0)
+ //they owe us points, let's collect.
+ for(var/i in quirks)
+ var/points = quirk_points_by_name(i)
+ if(points > 0)
+ cut += i
+ quirks -= i
+ points_used -= points
+ if(points_used <= 0)
+ break
+ return cut
/datum/controller/subsystem/processing/quirks/proc/GenerateQuirks(client/user)
if(user.prefs.character_quirks.len)
diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm
index cc6dd8db3f..12e34b0c90 100644
--- a/code/datums/traits/_quirk.dm
+++ b/code/datums/traits/_quirk.dm
@@ -13,7 +13,6 @@
var/mob/living/quirk_holder
/datum/quirk/New(mob/living/quirk_mob, spawn_effects)
- ..()
if(!quirk_mob || (human_only && !ishuman(quirk_mob)) || quirk_mob.has_quirk(type))
qdel(src)
quirk_holder = quirk_mob
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index cd9c914e7a..e9fa8ec099 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -21,6 +21,8 @@ Captain
access = list() //See get_access()
minimal_access = list() //See get_access()
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+
/datum/job/captain/get_access()
return get_all_accesses()
@@ -94,6 +96,7 @@ Head of Personnel
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
/datum/outfit/job/hop
name = "Head of Personnel"
diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm
index 22ef2a9211..a8d64e8013 100644
--- a/code/modules/jobs/job_types/cargo_service.dm
+++ b/code/modules/jobs/job_types/cargo_service.dm
@@ -17,6 +17,8 @@ Quartermaster
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+
/datum/outfit/job/quartermaster
name = "Quartermaster"
jobtype = /datum/job/qm
diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm
index f28e5f1afc..ec596d67a0 100644
--- a/code/modules/jobs/job_types/engineering.dm
+++ b/code/modules/jobs/job_types/engineering.dm
@@ -29,6 +29,8 @@ Chief Engineer
ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT,
ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+
/datum/outfit/job/ce
name = "Chief Engineer"
jobtype = /datum/job/chief_engineer
diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm
index f678700735..aa356362f7 100644
--- a/code/modules/jobs/job_types/job.dm
+++ b/code/modules/jobs/job_types/job.dm
@@ -56,6 +56,8 @@
var/list/mind_traits // Traits added to the mind of the mob assigned this job
+ var/list/blacklisted_quirks //list of quirk typepaths blacklisted.
+
//Only override this proc
//H is usually a human unless an /equip override transformed it
/datum/job/proc/after_spawn(mob/living/H, mob/M, latejoin = FALSE)
diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm
index 5a926f490a..2f48f89ce4 100644
--- a/code/modules/jobs/job_types/medical.dm
+++ b/code/modules/jobs/job_types/medical.dm
@@ -27,6 +27,8 @@ Chief Medical Officer
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+
/datum/outfit/job/cmo
name = "Chief Medical Officer"
jobtype = /datum/job/cmo
diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm
index 6a14f204a3..846403b279 100644
--- a/code/modules/jobs/job_types/science.dm
+++ b/code/modules/jobs/job_types/science.dm
@@ -31,6 +31,8 @@ Research Director
ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM,
ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+
/datum/outfit/job/rd
name = "Research Director"
jobtype = /datum/job/rd
diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm
index 8d2b9e8681..49a4d390d1 100644
--- a/code/modules/jobs/job_types/security.dm
+++ b/code/modules/jobs/job_types/security.dm
@@ -37,6 +37,8 @@ Head of Security
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent)
+
/datum/outfit/job/hos
name = "Head of Security"
jobtype = /datum/job/hos
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 0d72d47023..4302341865 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -416,7 +416,7 @@
SSticker.mode.make_antag_chance(humanc)
if(humanc && CONFIG_GET(flag/roundstart_traits))
- SSquirks.AssignQuirks(humanc, humanc.client, TRUE)
+ SSquirks.AssignQuirks(humanc, humanc.client, TRUE, TRUE, job)
log_manifest(character.mind.key,character.mind,character,latejoin = TRUE)
From 270cdb1c43ce5aeae1276ac45110f4d8ac3648a3 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 8 Jul 2019 12:35:21 -0700
Subject: [PATCH 02/27] CE memes
---
code/modules/jobs/job_types/engineering.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm
index ec596d67a0..0477bdf43e 100644
--- a/code/modules/jobs/job_types/engineering.dm
+++ b/code/modules/jobs/job_types/engineering.dm
@@ -29,7 +29,7 @@ Chief Engineer
ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT,
ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic)
/datum/outfit/job/ce
name = "Chief Engineer"
From 30a006e42f63c4b302a7ac6d8bc33caaccf40bf9 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Mon, 8 Jul 2019 18:21:04 -0700
Subject: [PATCH 03/27] additions, and it now nulls out.
---
code/controllers/subsystem/processing/quirks.dm | 11 +++++++++++
code/controllers/subsystem/ticker.dm | 2 +-
code/modules/jobs/job_types/captain.dm | 2 +-
code/modules/jobs/job_types/security.dm | 2 +-
code/modules/mob/dead/new_player/new_player.dm | 2 +-
5 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index 708f823298..2cc2fcb9ac 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -62,6 +62,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
for(var/i in blacklisted)
quirks -= i
cut += i
+
+ /* //Code to automatically reduce positive quirks until balance is even.
var/points_used = total_points(quirks)
if(points_used > 0)
//they owe us points, let's collect.
@@ -73,6 +75,15 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
points_used -= points
if(points_used <= 0)
break
+ */
+
+ //Nah, let's null all non-neutrals out.
+ if(cut.len)
+ for(var/i in quirks)
+ if(quirk_points_by_name(i) != 0)
+ cut += i
+ quirks -= i
+
return cut
/datum/controller/subsystem/processing/quirks/proc/GenerateQuirks(client/user)
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 74f9ad0382..ed9ccad538 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -374,7 +374,7 @@ SUBSYSTEM_DEF(ticker)
if(player.mind.assigned_role != player.mind.special_role)
SSjob.EquipRank(N, player.mind.assigned_role, 0)
if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character))
- SSquirks.AssignQuirks(N.new_character, N.client, TRUE)
+ SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE)
CHECK_TICK
if(captainless)
for(var/mob/dead/new_player/N in GLOB.player_list)
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index e9fa8ec099..af9e57ff2c 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -96,7 +96,7 @@ Head of Personnel
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/prosopagnosia)
/datum/outfit/job/hop
name = "Head of Personnel"
diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm
index 49a4d390d1..d216320d2d 100644
--- a/code/modules/jobs/job_types/security.dm
+++ b/code/modules/jobs/job_types/security.dm
@@ -37,7 +37,7 @@ Head of Security
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
/datum/outfit/job/hos
name = "Head of Security"
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 4302341865..dc730bf0fd 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -416,7 +416,7 @@
SSticker.mode.make_antag_chance(humanc)
if(humanc && CONFIG_GET(flag/roundstart_traits))
- SSquirks.AssignQuirks(humanc, humanc.client, TRUE, TRUE, job)
+ SSquirks.AssignQuirks(humanc, humanc.client, TRUE, FALSE, job, FALSE)
log_manifest(character.mind.key,character.mind,character,latejoin = TRUE)
From 570fa0cd3b7d73300a4f59fe5b24d2e4affae69e Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Sun, 14 Jul 2019 03:53:15 -0700
Subject: [PATCH 04/27] fix
---
code/controllers/subsystem/processing/quirks.dm | 4 ++--
code/controllers/subsystem/ticker.dm | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index 2cc2fcb9ac..dbf41ce0c4 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -25,7 +25,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
quirk_points[initial(T.name)] = initial(T.value)
quirk_names_by_path[T] = initial(T.name)
-/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects, roundstart = FALSE, datum/job/job, silent = FALSE)
+/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects, roundstart = FALSE, datum/job/job, silent = FALSE, mob/to_chat_target)
GenerateQuirks(cli)
var/list/quirks = cli.prefs.character_quirks.Copy()
var/list/cut
@@ -34,7 +34,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
for(var/V in quirks)
user.add_quirk(V, spawn_effects)
if(!silent)
- to_chat(user, "The following quirks were cut during assignment either due to a job restriction or another reason: [english_list(cut)].")
+ to_chat(to_chat_target || user, "The following quirks were cut during assignment either due to a job restriction or another reason: [english_list(cut)].")
/datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name)
return quirks[name]
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index ed9ccad538..94802e3ede 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -374,7 +374,7 @@ SUBSYSTEM_DEF(ticker)
if(player.mind.assigned_role != player.mind.special_role)
SSjob.EquipRank(N, player.mind.assigned_role, 0)
if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character))
- SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE)
+ SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE, N)
CHECK_TICK
if(captainless)
for(var/mob/dead/new_player/N in GLOB.player_list)
From f8fdbfc211b2f7221d652a19aa4a8bca2a1d0b64 Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Sun, 21 Jul 2019 02:30:19 -0700
Subject: [PATCH 05/27] Update quirks.dm
---
code/controllers/subsystem/processing/quirks.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index dbf41ce0c4..bd939cf977 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -34,7 +34,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
for(var/V in quirks)
user.add_quirk(V, spawn_effects)
if(!silent)
- to_chat(to_chat_target || user, "The following quirks were cut during assignment either due to a job restriction or another reason: [english_list(cut)].")
+ to_chat(to_chat_target || user, "All of your non-neutral character quirks have been cut due to these quirks conflicting with your job assignment: [english_list(cut)].")
/datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name)
return quirks[name]
@@ -81,7 +81,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
if(cut.len)
for(var/i in quirks)
if(quirk_points_by_name(i) != 0)
- cut += i
+ //cut += i -- Commented out: Only show the ones that triggered the quirk purge.
quirks -= i
return cut
From 175b69e86895e1518ad903be1ab63045e519810c Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Thu, 25 Jul 2019 23:18:31 -0700
Subject: [PATCH 06/27] headmins have decided
---
code/modules/jobs/job_types/captain.dm | 4 ++--
code/modules/jobs/job_types/cargo_service.dm | 2 +-
code/modules/jobs/job_types/engineering.dm | 2 +-
code/modules/jobs/job_types/medical.dm | 2 +-
code/modules/jobs/job_types/science.dm | 2 +-
code/modules/jobs/job_types/security.dm | 5 ++++-
6 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index af9e57ff2c..6e09ced0e5 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -21,7 +21,7 @@ Captain
access = list() //See get_access()
minimal_access = list() //See get_access()
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
/datum/job/captain/get_access()
return get_all_accesses()
@@ -96,7 +96,7 @@ Head of Personnel
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/prosopagnosia)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/prosopagnosia, /datum/quirk/insanity)
/datum/outfit/job/hop
name = "Head of Personnel"
diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm
index a8d64e8013..c07520570c 100644
--- a/code/modules/jobs/job_types/cargo_service.dm
+++ b/code/modules/jobs/job_types/cargo_service.dm
@@ -17,7 +17,7 @@ Quartermaster
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_QM, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
/datum/outfit/job/quartermaster
name = "Quartermaster"
diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm
index 0477bdf43e..4381fe2613 100644
--- a/code/modules/jobs/job_types/engineering.dm
+++ b/code/modules/jobs/job_types/engineering.dm
@@ -29,7 +29,7 @@ Chief Engineer
ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT,
ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity)
/datum/outfit/job/ce
name = "Chief Engineer"
diff --git a/code/modules/jobs/job_types/medical.dm b/code/modules/jobs/job_types/medical.dm
index 2f48f89ce4..1dc35f40db 100644
--- a/code/modules/jobs/job_types/medical.dm
+++ b/code/modules/jobs/job_types/medical.dm
@@ -27,7 +27,7 @@ Chief Medical Officer
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
/datum/outfit/job/cmo
name = "Chief Medical Officer"
diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm
index 846403b279..99591f37f6 100644
--- a/code/modules/jobs/job_types/science.dm
+++ b/code/modules/jobs/job_types/science.dm
@@ -31,7 +31,7 @@ Research Director
ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM,
ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
/datum/outfit/job/rd
name = "Research Director"
diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm
index d216320d2d..121c9b7017 100644
--- a/code/modules/jobs/job_types/security.dm
+++ b/code/modules/jobs/job_types/security.dm
@@ -37,7 +37,7 @@ Head of Security
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
- blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/nonviolent, /datum/quirk/paraplegic, /datum/quirk/insanity)
/datum/outfit/job/hos
name = "Head of Security"
@@ -97,6 +97,7 @@ Warden
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //SEE /DATUM/JOB/WARDEN/GET_ACCESS()
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
/datum/job/warden/get_access()
var/list/L = list()
@@ -152,6 +153,7 @@ Detective
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
/datum/outfit/job/detective
name = "Detective"
@@ -207,6 +209,7 @@ Security Officer
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) //BUT SEE /DATUM/JOB/WARDEN/GET_ACCESS()
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
+ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/nonviolent, /datum/quirk/paraplegic)
/datum/job/officer/get_access()
var/list/L = list()
From d6885d41a99518a40df7dd635e58c1a26747f7cc Mon Sep 17 00:00:00 2001
From: kevinz000 <2003111+kevinz000@users.noreply.github.com>
Date: Wed, 31 Jul 2019 07:54:14 -0700
Subject: [PATCH 07/27] Update quirks.dm
---
code/controllers/subsystem/processing/quirks.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index bd939cf977..4af54b8c70 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -33,7 +33,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
cut = filter_quirks(quirks, job)
for(var/V in quirks)
user.add_quirk(V, spawn_effects)
- if(!silent)
+ if(!silent && LAZYLEN(cut))
to_chat(to_chat_target || user, "All of your non-neutral character quirks have been cut due to these quirks conflicting with your job assignment: [english_list(cut)].")
/datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name)
From f76bb27127290fc19c2a43c88a0e0607675aeb51 Mon Sep 17 00:00:00 2001
From: Poojawa
Date: Thu, 8 Aug 2019 21:33:42 -0500
Subject: [PATCH 08/27] Fixes some runtimes and removes a holodeck exploit
and a cleanup >.>;
---
code/__DEFINES/subsystems.dm | 1 +
code/controllers/subsystem/vore.dm | 2 +-
code/game/world.dm | 5 +-
code/modules/holodeck/holo_effect.dm | 10 ++--
.../living/simple_animal/simple_animal_vr.dm | 3 ++
code/modules/surgery/bodyparts/bodyparts.dm | 3 +-
.../code/datums/mood_events/moodular.dm | 20 ++------
.../simple_animal/simplemob_vore_values.dm | 48 +++++++++++++++++++
.../code/modules/vore/eating/belly_obj_vr.dm | 10 ++--
.../code/modules/vore/eating/bellymodes_vr.dm | 10 +++-
10 files changed, 82 insertions(+), 30 deletions(-)
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 19d0540e0e..3394fba90c 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -93,6 +93,7 @@
#define FIRE_PRIORITY_SERVER_MAINT 10
#define FIRE_PRIORITY_RESEARCH 10
#define FIRE_PRIORITY_VIS 10
+#define FIRE_PRIORITY_VORE 10
#define FIRE_PRIORITY_GARBAGE 15
#define FIRE_PRIORITY_WET_FLOORS 20
#define FIRE_PRIORITY_AIR 20
diff --git a/code/controllers/subsystem/vore.dm b/code/controllers/subsystem/vore.dm
index faaa297ca3..ca34f9ab61 100644
--- a/code/controllers/subsystem/vore.dm
+++ b/code/controllers/subsystem/vore.dm
@@ -7,7 +7,7 @@
SUBSYSTEM_DEF(bellies)
name = "Bellies"
- priority = 5
+ priority = FIRE_PRIORITY_VORE
wait = 1 SECONDS
flags = SS_KEEP_TIMING|SS_NO_INIT
runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
diff --git a/code/game/world.dm b/code/game/world.dm
index dedf822597..e9c8433006 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -137,7 +137,7 @@ GLOBAL_VAR(restart_counter)
// but those are both private, so let's put the commit info in the runtime
// log which is ultimately public.
log_runtime(GLOB.revdata.get_log_message())
-
+
/world/Topic(T, addr, master, key)
TGS_TOPIC //redirect to server tools if necessary
@@ -270,7 +270,8 @@ GLOBAL_VAR(restart_counter)
if (M.client)
n++
- features += "[SSmapping.config.map_name]" //CIT CHANGE - makes the hub entry display the current map
+ if(SSmapping.config) // this just stops the runtime, honk.
+ features += "[SSmapping.config.map_name]" //CIT CHANGE - makes the hub entry display the current map
if(get_security_level())//CIT CHANGE - makes the hub entry show the security level
features += "[get_security_level()] alert"
diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm
index fee0b2b7c9..707d650608 100644
--- a/code/modules/holodeck/holo_effect.dm
+++ b/code/modules/holodeck/holo_effect.dm
@@ -87,10 +87,10 @@
/obj/effect/holodeck_effect/mobspawner/pet
mobtype = list(
- /mob/living/simple_animal/butterfly, /mob/living/simple_animal/chick/holo,
- /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/cat/kitten,
- /mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/pet/dog/corgi/puppy,
- /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/fox)
+ /mob/living/simple_animal/butterfly/holo, /mob/living/simple_animal/chick/holo,
+ /mob/living/simple_animal/pet/cat/holo, /mob/living/simple_animal/pet/cat/kitten/holo,
+ /mob/living/simple_animal/pet/dog/corgi/holo, /mob/living/simple_animal/pet/dog/corgi/puppy/holo,
+ /mob/living/simple_animal/pet/dog/pug/holo, /mob/living/simple_animal/pet/fox/holo)
/obj/effect/holodeck_effect/mobspawner/bee
mobtype = /mob/living/simple_animal/hostile/poison/bees/toxin
@@ -100,7 +100,7 @@
/obj/effect/holodeck_effect/mobspawner/penguin
mobtype = /mob/living/simple_animal/pet/penguin/emperor
-
+
/obj/effect/holodeck_effect/mobspawner/penguin/Initialize()
if(prob(1))
mobtype = /mob/living/simple_animal/pet/penguin/emperor/shamebrero
diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
index 41ece5ed06..1e8f4c768f 100644
--- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
@@ -9,6 +9,7 @@
var/list/prey_excludes = list() //For excluding people from being eaten.
var/voracious_chance = VORACIOUS_CHANCE //Mob AI Engagement probability when rolling between regular melee strike and a vore attempt, default 40%
+ var/holodeck = FALSE
// Vore belly interactions
// Most mobs are only going to have the one gut. Multi-gut set ups should refer to Ash Drake's dragon_vore.dm for set up.
@@ -49,6 +50,8 @@
// Simple animals have only one belly. This creates it (if it isn't already set up)
/mob/living/simple_animal/init_vore()
vore_init = TRUE
+ if(holodeck) //hacky dumbshit, but I can't get it to work right anyway
+ return
if(vore_organs.len)
return
if(no_vore) //If it can't vore, let's not give it a stomach.
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index a97a133685..81b491e6de 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -354,7 +354,8 @@
if("mam_body_markings" in S.default_features)
var/datum/sprite_accessory/Smark
Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]]
- body_markings_icon = Smark.icon
+ if(Smark)
+ body_markings_icon = Smark.icon
if(H.dna.features.["mam_body_markings"] != "None")
body_markings = lowertext(H.dna.features.["mam_body_markings"])
auxmarking = lowertext(H.dna.features.["mam_body_markings"])
diff --git a/modular_citadel/code/datums/mood_events/moodular.dm b/modular_citadel/code/datums/mood_events/moodular.dm
index b53ce417e8..aa87f1b97a 100644
--- a/modular_citadel/code/datums/mood_events/moodular.dm
+++ b/modular_citadel/code/datums/mood_events/moodular.dm
@@ -3,9 +3,7 @@
// box of hugs
/obj/item/storage/box/hug/attack_self(mob/user)
. = ..()
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("hugbox", /datum/mood_event/hugbox)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"hugbox", /datum/mood_event/hugbox)
//Removed headpats here, duplicate code?
@@ -13,25 +11,17 @@
/obj/item/toy/plush/attack_self(mob/user)
. = ..()
if(stuffed || grenade)
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plushpet", /datum/mood_event/plushpet)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushpet", /datum/mood_event/plushpet)
else
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plush_nostuffing", /datum/mood_event/plush_nostuffing)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plush_nostuffing", /datum/mood_event/plush_nostuffing)
// Jack the Ripper starring plush
/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params)
. = ..()
if(I.is_sharp())
if(!grenade)
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plushjack", /datum/mood_event/plushjack)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushjack", /datum/mood_event/plushjack)
// plush playing (plush-on-plush action)
if(istype(I, /obj/item/toy/plush))
- GET_COMPONENT_FROM(mood, /datum/component/mood, user)
- if(mood)
- mood.add_event("plushplay", /datum/mood_event/plushplay)
+ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT,"plushplay", /datum/mood_event/plushplay)
diff --git a/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm b/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm
index 78e18fdb5e..78f11e0a41 100644
--- a/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm
+++ b/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm
@@ -133,3 +133,51 @@
vore_active = TRUE
isPredator = TRUE
vore_default_mode = DM_DIGEST
+
+/mob/living/simple_animal/butterfly/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/chick/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/pet/cat/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/pet/cat/kitten/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/pet/dog/corgi/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/pet/dog/corgi/puppy/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/pet/dog/pug/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
+
+/mob/living/simple_animal/pet/fox/holo
+ holodeck = TRUE
+ feeding = FALSE
+ devourable = FALSE
+ digestable = FALSE
diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
index c4b2fbf5b1..1ad29c1af3 100644
--- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm
@@ -152,11 +152,13 @@
SSbellies.belly_list += src
/obj/belly/Destroy()
- SSbellies.belly_list -= src
if(owner)
- owner.vore_organs -= src
- owner = null
- . = ..()
+ Remove(owner)
+ return ..()
+
+/obj/belly/proc/Remove(mob/living/owner)
+ owner.vore_organs -= src
+ owner = null
// Called whenever an atom enters this belly
/obj/belly/Entered(var/atom/movable/thing,var/atom/OldLoc)
diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
index 9356c25f57..da323f02e2 100644
--- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
+++ b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm
@@ -4,10 +4,16 @@
recent_sound = FALSE
return SSBELLIES_IGNORED
+ if(!owner)
+ qdel(src)
+ SSbellies.belly_list -= src
+ return SSBELLIES_PROCESSED
+
if(loc != owner)
- if(istype(owner))
- loc = owner
+ if(isliving(owner)) //we don't have machine based bellies. (yet :honk:)
+ forceMove(owner)
else
+ SSbellies.belly_list -= src
qdel(src)
return SSBELLIES_PROCESSED
From 5dc2124df05e93f573fa6fb67cbb6b2c7a23fb68 Mon Sep 17 00:00:00 2001
From: Fel
Date: Fri, 9 Aug 2019 19:00:21 -0400
Subject: [PATCH 09/27] Update custom_items.dm
---
.../modules/custom_loadout/custom_items.dm | 25 -------------------
1 file changed, 25 deletions(-)
diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm
index ece673587f..943e844ec6 100644
--- a/modular_citadel/code/modules/custom_loadout/custom_items.dm
+++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm
@@ -322,31 +322,6 @@
name = "worn pet collar"
desc = "a pet collar that looks well used."
-/obj/item/clothing/neck/petcollar/naomi/examine(mob/user)
- . = ..()
- if(usr.ckey != "technicalmagi")
- to_chat(user, "There's something odd about the it. You probably shouldn't wear it...")//warn people not to wear it if they're not Naomi, lest they become as crazy as she is
-
-/obj/item/clothing/neck/petcollar/naomi/equipped()
- . = ..()
- START_PROCESSING(SSobj, src)
-
-/obj/item/clothing/neck/petcollar/naomi/dropped()
- . = ..()
- STOP_PROCESSING(SSobj, src)
-
-/obj/item/clothing/neck/petcollar/naomi/process()
- var/mob/living/carbon/human/H
- if(ishuman(loc))
- H = loc
- if(!H)
- return
- else if(H.get_item_by_slot(SLOT_NECK) == src)
- if(H.arousalloss < H.max_arousal / 3)
- H.arousalloss = H.max_arousal / 3
- if(prob(5) && H.hallucination < 15)
- H.hallucination += 10
-
/obj/item/clothing/neck/cloak/green
name = "Generic Green Cloak"
desc = "This cloak doesn't seem too special."
From 5dddb11773ba1a357c7d81a62297ddea67a42b40 Mon Sep 17 00:00:00 2001
From: deathride58
Date: Sun, 11 Aug 2019 08:37:00 -0400
Subject: [PATCH 10/27] Fixes handcuffs being impossible to actually resist out
of
---
code/modules/mob/living/living.dm | 13 ++++++-----
.../modules/mob/living/carbon/human/human.dm | 23 ++++++++++---------
2 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index d992a46245..19f18f9973 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -636,14 +636,15 @@
else if(canmove)
if(on_fire)
resist_fire() //stop, drop, and roll
- else if(resting) //cit change - allows resisting out of resting
+ return
+ if(resting) //cit change - allows resisting out of resting
resist_a_rest() // ditto
- else if(iscarbon(src)) //Citadel Change for embedded removal memes
- var/mob/living/carbon/C = src
- if(!C.handcuffed && !C.legcuffed)
- return TRUE
- else if(last_special <= world.time)
+ return
+ if(resist_embedded()) //Citadel Change for embedded removal memes
+ return
+ if(last_special <= world.time)
resist_restraints() //trying to remove cuffs.
+ return
/mob/proc/resist_grab(moving_resist)
diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human.dm b/modular_citadel/code/modules/mob/living/carbon/human/human.dm
index 70bac64825..bb8d4a5f4a 100644
--- a/modular_citadel/code/modules/mob/living/carbon/human/human.dm
+++ b/modular_citadel/code/modules/mob/living/carbon/human/human.dm
@@ -13,18 +13,19 @@
/mob/living/carbon/human/species/xeno
race = /datum/species/xeno
-/mob/living/carbon/human/resist()
- . = ..()
- if(wear_suit && wear_suit.breakouttime)//added in human cuff breakout proc
+/mob/living/proc/resist_embedded()
+ return
+
+/mob/living/carbon/human/resist_embedded()
+ if(handcuffed || legcuffed || (wear_suit && wear_suit.breakouttime))
return
- if(.)
- if(canmove && !on_fire)
- for(var/obj/item/bodypart/L in bodyparts)
- if(istype(L) && L.embedded_objects.len)
- for(var/obj/item/I in L.embedded_objects)
- if(istype(I) && I.w_class >= WEIGHT_CLASS_NORMAL) //minimum weight class to insta-ripout via resist
- remove_embedded_unsafe(L, I, src, 1.5) //forcefully call the remove embedded unsafe proc but with extra pain multiplier. if you want to remove it less painfully, examine and remove it carefully.
- return FALSE //Hands are occupied
+ if(canmove && !on_fire)
+ for(var/obj/item/bodypart/L in bodyparts)
+ if(istype(L) && L.embedded_objects.len)
+ for(var/obj/item/I in L.embedded_objects)
+ if(istype(I) && I.w_class >= WEIGHT_CLASS_NORMAL) //minimum weight class to insta-ripout via resist
+ remove_embedded_unsafe(L, I, src, 1.5) //forcefully call the remove embedded unsafe proc but with extra pain multiplier. if you want to remove it less painfully, examine and remove it carefully.
+ return TRUE //Hands are occupied
return
/mob/living/carbon/human/proc/remove_embedded_unsafe(obj/item/bodypart/L, obj/item/I, mob/user, painmul = 1)
From d30df526f7e36ae88d4e40f885a227aaeedcc9a1 Mon Sep 17 00:00:00 2001
From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com>
Date: Sun, 11 Aug 2019 19:05:36 -0400
Subject: [PATCH 11/27] Update berries.dm
---
code/modules/hydroponics/grown/berries.dm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index f106a0dfe0..d24160ad6f 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -218,13 +218,13 @@
// Strawberry
/obj/item/seeds/strawberries
- name = "pack of green grape seeds"
+ name = "pack of strawberrie seeds"
desc = "These seeds grow into strawberries vines."
icon_state = "seed-strawberry"
species = "strawberry"
plantname = "Strawberry Vine"
product = /obj/item/reagent_containers/food/snacks/grown/strawberries
- reagents_add = list("vitamin" = 0.07, "nutriment" = 0.1, "sugar" = 0.1)
+ reagents_add = list("vitamin" = 0.07, "nutriment" = 0.1, "sugar" = 0.2)
mutatelist = list()
/obj/item/reagent_containers/food/snacks/grown/strawberries
@@ -233,4 +233,4 @@
icon_state = "strawberries"
filling_color = "#7FFF00"
tastes = list("strawberries" = 1)
- wine_power = 20
\ No newline at end of file
+ wine_power = 20
From 32d70bbb6a8f073353cd10c69ea89b8d5cec6f92 Mon Sep 17 00:00:00 2001
From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com>
Date: Sun, 11 Aug 2019 19:10:34 -0400
Subject: [PATCH 12/27] >_<
---
code/modules/vending/megaseed.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm
index 4594048256..56b12838f0 100644
--- a/code/modules/vending/megaseed.dm
+++ b/code/modules/vending/megaseed.dm
@@ -32,6 +32,7 @@
/obj/item/seeds/wheat/rice = 3,
/obj/item/seeds/soya = 3,
/obj/item/seeds/sunflower = 3,
+ /obj/item/seeds/strawberries = 3,
/obj/item/seeds/tea = 3,
/obj/item/seeds/tobacco = 3,
/obj/item/seeds/tomato = 3,
From 2095a142564cc82f88d0406f7e5c42deeac37dab Mon Sep 17 00:00:00 2001
From: Linzolle
Date: Mon, 12 Aug 2019 13:49:26 -0500
Subject: [PATCH 13/27] add mining shuttle console to techweb
---
.../comp_board_designs/comp_board_designs_cargo .dm | 10 +++++++++-
code/modules/research/techweb/all_nodes.dm | 2 +-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
index fd548adc76..e1d9ad9bf9 100644
--- a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
@@ -32,4 +32,12 @@
id = "mining"
build_path = /obj/item/circuitboard/computer/mining
category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY
\ No newline at end of file
+ departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY
+
+/datum/design/board/mining
+ name = "Computer Design (Mining Shuttle Console)"
+ desc = "Allows for the construction of circuit boards used to build a Mining Shuttle Console."
+ id = "miningshuttle"
+ build_path = /obj/item/circuitboard/computer/mining_shuttle
+ category = list("Computer Boards")
+ departmental_flags = DEPARTMENTAL_FLAG_CARGO
\ No newline at end of file
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index a25cc79ddc..9c3a1a4f36 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -432,7 +432,7 @@
display_name = "Computer Consoles"
description = "Computers and how they work."
prereq_ids = list("datatheory")
- design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera")
+ design_ids = list("cargo", "cargorequest", "libraryconsole", "mining", "miningshuttle", "crewconsole", "rdcamera", "comconsole", "idcardconsole", "seccamera")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
export_price = 5000
From 13b3552e642cd8c20a161e1cfbdc9d5697791bdf Mon Sep 17 00:00:00 2001
From: Linzolle
Date: Mon, 12 Aug 2019 14:37:48 -0500
Subject: [PATCH 14/27] i'm dumb
---
.../designs/comp_board_designs/comp_board_designs_cargo .dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
index e1d9ad9bf9..b11a5ee258 100644
--- a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
+++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm
@@ -34,7 +34,7 @@
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY
-/datum/design/board/mining
+/datum/design/board/miningshuttle
name = "Computer Design (Mining Shuttle Console)"
desc = "Allows for the construction of circuit boards used to build a Mining Shuttle Console."
id = "miningshuttle"
From 141a93236c475b4da8d19e29e141ca9cbeb4511a Mon Sep 17 00:00:00 2001
From: Winter Flare <7543955+Owai-Seek@users.noreply.github.com>
Date: Wed, 14 Aug 2019 04:01:18 -0400
Subject: [PATCH 15/27] Service QoL
-Adds the Pimpin' Ride to the Custodial Locator Cartridge.
-Makes additional Pimpin' Rides orderable through cargo.
-Moves Light Replacer from power_designs to misc_designs and properly places it in equipment (where all other advanced sanitation research items appear.)
---
code/game/objects/items/devices/PDA/cart.dm | 17 +++++++++++++++++
code/modules/cargo/packs.dm | 13 ++++++++++++-
code/modules/research/designs/misc_designs.dm | 10 ++++++++++
code/modules/research/designs/power_designs.dm | 10 ----------
4 files changed, 39 insertions(+), 11 deletions(-)
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index bf352e8eb7..3885a1f4d9 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -498,6 +498,23 @@ Code:
else
menu += "[ldat]"
+ menu += "Pimpin' Ride:
"
+
+ ldat = null
+ for (var/obj/vehicle/ridden/janicart/M in world)
+ var/turf/ml = get_turf(M)
+
+ if(ml)
+ if (ml.z != cl.z)
+ continue
+ var/direction = get_dir(src, M)
+ ldat += "Ride - \[[ml.x],[ml.y] ([uppertext(dir2text(direction))])\]
"
+
+ if (!ldat)
+ menu += "None"
+ else
+ menu += "[ldat]"
+
menu += "Located Janitorial Cart:
"
ldat = null
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index 5656287c52..1087f1ebb5 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -1699,7 +1699,7 @@
/datum/supply_pack/service/janitor/janpremium
name = "Janitor Premium Supplies"
desc = "Do to the union for better supplies, we have desided to make a deal for you, In this crate you can get a brand new chem, Drying Angent this stuff is the work of slimes or magic! This crate also contains a rag to test out the Drying Angent magic, three wet floor signs, and some spare bottles of ammonia."
- cost = 3000
+ cost = 1750
access = ACCESS_JANITOR
contains = list(/obj/item/caution,
/obj/item/caution,
@@ -1707,9 +1707,20 @@
/obj/item/reagent_containers/rag,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/glass/bottle/ammonia,
+ /obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/spray/drying_agent)
crate_name = "janitor backpack crate"
+/datum/supply_pack/service/janitor/janpimp
+ name = "Custodial Cruiser"
+ desc = "Clown steal your ride? Assistant lock it in the dorms? Order a new one and get back to cleaning in style!"
+ cost = 3000
+ access = ACCESS_JANITOR
+ contains = list(/obj/vehicle/ridden/janicart,
+ /obj/item/key/janitor)
+ crate_name = "janitor ride crate"
+ crate_type = /obj/structure/closet/crate/large
+
/datum/supply_pack/service/mule
name = "MULEbot Crate"
desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!"
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index 0968ce049e..4a6f9625f1 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -290,6 +290,16 @@
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+/datum/design/light_replacer
+ name = "Light Replacer"
+ desc = "A device to automatically replace lights. Refill with working light bulbs."
+ id = "light_replacer"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
+ build_path = /obj/item/lightreplacer
+ category = list("Equipment")
+ departmental_flags = DEPARTMENTAL_FLAG_SERVICE
+
/datum/design/blutrash
name = "Trashbag of Holding"
desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage."
diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm
index f8122c16e3..1dbd111785 100644
--- a/code/modules/research/designs/power_designs.dm
+++ b/code/modules/research/designs/power_designs.dm
@@ -57,16 +57,6 @@
category = list("Misc","Power Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
-/datum/design/light_replacer
- name = "Light Replacer"
- desc = "A device to automatically replace lights. Refill with working light bulbs."
- id = "light_replacer"
- build_type = PROTOLATHE
- materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
- build_path = /obj/item/lightreplacer
- category = list("Power Designs")
- departmental_flags = DEPARTMENTAL_FLAG_SERVICE
-
/datum/design/inducer
name = "Inducer"
desc = "The NT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them."
From 97c3b2eda7b9fa80b48e6eab1a9cadf13c295f9f Mon Sep 17 00:00:00 2001
From: Chayse Ramsay
Date: Wed, 14 Aug 2019 18:29:35 +0100
Subject: [PATCH 16/27] Prevents runtime spam from Hugs of the North Star
Also fixes an unintended oversight of the Gloves of the North Star, with them causing the warcry upon picking up any item or clicking on any item in harm intent.
---
code/modules/clothing/gloves/miscellaneous.dm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 1af24f8e61..cc6d65b74d 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -65,6 +65,9 @@
var/warcry = "AT"
/obj/item/clothing/gloves/rapid/Touch(mob/living/target,proximity = TRUE)
+ if(!istype(target))
+ return
+
var/mob/living/M = loc
if(M.a_intent == INTENT_HARM)
@@ -87,6 +90,9 @@
warcry = "owo" //Shouldn't ever come into play
/obj/item/clothing/gloves/rapid/hug/Touch(mob/living/target,proximity = TRUE)
+ if(!istype(target))
+ return
+
var/mob/living/M = loc
if(M.a_intent == INTENT_HELP)
From 04c302b08e94cc3ec3c3f6dcf8e043e8f98eb8ca Mon Sep 17 00:00:00 2001
From: Winter Flare <7543955+Owai-Seek@users.noreply.github.com>
Date: Thu, 15 Aug 2019 06:28:46 -0400
Subject: [PATCH 17/27] Service Tweaks
Makes the Janibelt a bit more useful by expanding its limited pool of allowed items. Beakers and Bottles for carrying additional space cleaner/ammonia/water.
Allows the plant DNA maniuplator to be wrenched and moved.
---
code/game/objects/items/storage/belt.dm | 3 +++
code/modules/hydroponics/gene_modder.dm | 2 ++
2 files changed, 5 insertions(+)
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index d71b91c8dc..96543ec5af 100755
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -524,12 +524,15 @@
/obj/item/grenade/chem_grenade,
/obj/item/lightreplacer,
/obj/item/flashlight,
+ /obj/item/reagent_containers/glass/beaker,
+ /obj/item/reagent_containers/glass/bottle,
/obj/item/reagent_containers/spray,
/obj/item/soap,
/obj/item/holosign_creator,
/obj/item/key/janitor,
/obj/item/clothing/gloves,
/obj/item/melee/flyswatter,
+ /obj/item/paint/paint_remover,
/obj/item/assembly/mousetrap
))
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index d6eacfe0e1..79a23014b0 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -69,6 +69,8 @@
if(default_deconstruction_screwdriver(user, "dnamod", "dnamod", I))
update_icon()
return
+ else if(default_unfasten_wrench(user, I))
+ return
if(default_deconstruction_crowbar(I))
return
if(iscyborg(user))
From 087bca85e89b2bb9d6bcd760b4efed942a7aba45 Mon Sep 17 00:00:00 2001
From: Raptorizer
Date: Thu, 15 Aug 2019 07:08:27 -0500
Subject: [PATCH 18/27] Update maintenance_loot.dm
Double the amount of canned peaches that spawn within maintenance
---
code/_globalvars/lists/maintenance_loot.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index f65c15ec88..c25ebf5b0a 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/toolbox/artistic = 2,
/obj/item/toy/eightball = 1,
/obj/item/reagent_containers/pill/floorpill = 1,
- /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
+ /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
/obj/item/storage/pill_bottle/penis_enlargement = 2,
/obj/item/storage/pill_bottle/breast_enlargement = 2,
From a6d10885ec76c87c13b0e60e3ec6af112f1f13e8 Mon Sep 17 00:00:00 2001
From: Raptorizer
Date: Thu, 15 Aug 2019 07:11:57 -0500
Subject: [PATCH 19/27] Revert "Update maintenance_loot.dm"
This reverts commit 087bca85e89b2bb9d6bcd760b4efed942a7aba45.
---
code/_globalvars/lists/maintenance_loot.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index c25ebf5b0a..f65c15ec88 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/toolbox/artistic = 2,
/obj/item/toy/eightball = 1,
/obj/item/reagent_containers/pill/floorpill = 1,
- /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2,
+ /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
/obj/item/storage/pill_bottle/penis_enlargement = 2,
/obj/item/storage/pill_bottle/breast_enlargement = 2,
From d16ee247a081cbc0b116875d008a46b9862d02da Mon Sep 17 00:00:00 2001
From: Raptorizer
Date: Thu, 15 Aug 2019 07:24:09 -0500
Subject: [PATCH 20/27] Update maintenance_loot.dm
Double the amount of peaches that spawn within Maintenance
---
code/_globalvars/lists/maintenance_loot.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index f65c15ec88..c25ebf5b0a 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/toolbox/artistic = 2,
/obj/item/toy/eightball = 1,
/obj/item/reagent_containers/pill/floorpill = 1,
- /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
+ /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
/obj/item/storage/pill_bottle/penis_enlargement = 2,
/obj/item/storage/pill_bottle/breast_enlargement = 2,
From 017a3111ec2fdaa33273245a5f922ae42a00d1c7 Mon Sep 17 00:00:00 2001
From: Poojawa
Date: Thu, 15 Aug 2019 08:37:10 -0500
Subject: [PATCH 21/27] Yeah this is a much, much better way of doing it.
---
code/modules/holodeck/holo_effect.dm | 14 ++++--
.../living/simple_animal/simple_animal_vr.dm | 3 +-
.../simple_animal/simplemob_vore_values.dm | 48 -------------------
3 files changed, 11 insertions(+), 54 deletions(-)
diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm
index 707d650608..308cec1cbd 100644
--- a/code/modules/holodeck/holo_effect.dm
+++ b/code/modules/holodeck/holo_effect.dm
@@ -78,6 +78,12 @@
// these vars are not really standardized but all would theoretically create stuff on death
for(var/v in list("butcher_results","corpse","weapon1","weapon2","blood_volume") & mob.vars)
mob.vars[v] = null
+ ENABLE_BITFIELD(mob.flags_1, HOLOGRAM_1)
+ if(isliving(mob))
+ var/mob/living/L = mob
+ L.feeding = FALSE
+ L.devourable = FALSE
+ L.digestable = FALSE
return mob
/obj/effect/holodeck_effect/mobspawner/deactivate(var/obj/machinery/computer/holodeck/HC)
@@ -87,10 +93,10 @@
/obj/effect/holodeck_effect/mobspawner/pet
mobtype = list(
- /mob/living/simple_animal/butterfly/holo, /mob/living/simple_animal/chick/holo,
- /mob/living/simple_animal/pet/cat/holo, /mob/living/simple_animal/pet/cat/kitten/holo,
- /mob/living/simple_animal/pet/dog/corgi/holo, /mob/living/simple_animal/pet/dog/corgi/puppy/holo,
- /mob/living/simple_animal/pet/dog/pug/holo, /mob/living/simple_animal/pet/fox/holo)
+ /mob/living/simple_animal/butterfly, /mob/living/simple_animal/chick/holo,
+ /mob/living/simple_animal/pet/cat, /mob/living/simple_animal/pet/cat/kitten,
+ /mob/living/simple_animal/pet/dog/corgi, /mob/living/simple_animal/pet/dog/corgi/puppy,
+ /mob/living/simple_animal/pet/dog/pug, /mob/living/simple_animal/pet/fox)
/obj/effect/holodeck_effect/mobspawner/bee
mobtype = /mob/living/simple_animal/hostile/poison/bees/toxin
diff --git a/code/modules/mob/living/simple_animal/simple_animal_vr.dm b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
index 1e8f4c768f..666de9cef0 100644
--- a/code/modules/mob/living/simple_animal/simple_animal_vr.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal_vr.dm
@@ -9,7 +9,6 @@
var/list/prey_excludes = list() //For excluding people from being eaten.
var/voracious_chance = VORACIOUS_CHANCE //Mob AI Engagement probability when rolling between regular melee strike and a vore attempt, default 40%
- var/holodeck = FALSE
// Vore belly interactions
// Most mobs are only going to have the one gut. Multi-gut set ups should refer to Ash Drake's dragon_vore.dm for set up.
@@ -50,7 +49,7 @@
// Simple animals have only one belly. This creates it (if it isn't already set up)
/mob/living/simple_animal/init_vore()
vore_init = TRUE
- if(holodeck) //hacky dumbshit, but I can't get it to work right anyway
+ if(CHECK_BITFIELD(flags_1, HOLOGRAM_1))
return
if(vore_organs.len)
return
diff --git a/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm b/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm
index 78f11e0a41..78e18fdb5e 100644
--- a/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm
+++ b/modular_citadel/code/modules/mob/living/simple_animal/simplemob_vore_values.dm
@@ -133,51 +133,3 @@
vore_active = TRUE
isPredator = TRUE
vore_default_mode = DM_DIGEST
-
-/mob/living/simple_animal/butterfly/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/chick/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/pet/cat/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/pet/cat/kitten/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/pet/dog/corgi/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/pet/dog/corgi/puppy/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/pet/dog/pug/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
-
-/mob/living/simple_animal/pet/fox/holo
- holodeck = TRUE
- feeding = FALSE
- devourable = FALSE
- digestable = FALSE
From 4ca72c77336772bdfe3b7dde0e0859809d94ebc7 Mon Sep 17 00:00:00 2001
From: kappa-sama <44128284+kappa-sama@users.noreply.github.com>
Date: Fri, 16 Aug 2019 14:38:25 -0400
Subject: [PATCH 22/27] re-add sugarcane to megaseed vendors
how did this happen
---
code/modules/vending/megaseed.dm | 1 +
1 file changed, 1 insertion(+)
diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm
index 4594048256..b70784cc36 100644
--- a/code/modules/vending/megaseed.dm
+++ b/code/modules/vending/megaseed.dm
@@ -31,6 +31,7 @@
/obj/item/seeds/replicapod = 3,
/obj/item/seeds/wheat/rice = 3,
/obj/item/seeds/soya = 3,
+ /obj/item/seeds/sugarcane = 3,
/obj/item/seeds/sunflower = 3,
/obj/item/seeds/tea = 3,
/obj/item/seeds/tobacco = 3,
From a124b02ee20d7dd1839b53163991bf4e1fe2eb65 Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Fri, 16 Aug 2019 18:57:39 -0500
Subject: [PATCH 23/27] Automatic changelog generation for PR #9107 [ci skip]
---
html/changelogs/AutoChangeLog-pr-9107.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-9107.yml
diff --git a/html/changelogs/AutoChangeLog-pr-9107.yml b/html/changelogs/AutoChangeLog-pr-9107.yml
new file mode 100644
index 0000000000..65a14b9576
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9107.yml
@@ -0,0 +1,4 @@
+author: "Bhijn"
+delete-after: True
+changes:
+ - bugfix: "You can now actually use the resist hotkey to resist out of handcuffs. Woah, revolutionary"
From dea9ea4b3fa5562f3da89fda3ca021d3fb1446ff Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Fri, 16 Aug 2019 18:58:29 -0500
Subject: [PATCH 24/27] Automatic changelog generation for PR #9119 [ci skip]
---
html/changelogs/AutoChangeLog-pr-9119.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-9119.yml
diff --git a/html/changelogs/AutoChangeLog-pr-9119.yml b/html/changelogs/AutoChangeLog-pr-9119.yml
new file mode 100644
index 0000000000..756c3edcb2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9119.yml
@@ -0,0 +1,4 @@
+author: "Linzolle"
+delete-after: True
+changes:
+ - rscadd: "mining shuttle console can now be printed after computer consoles have been researched"
From f376fac53d8cbf0ba2d1f768fca701bb08225bca Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Fri, 16 Aug 2019 18:59:53 -0500
Subject: [PATCH 25/27] Automatic changelog generation for PR #9133 [ci skip]
---
html/changelogs/AutoChangeLog-pr-9133.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-9133.yml
diff --git a/html/changelogs/AutoChangeLog-pr-9133.yml b/html/changelogs/AutoChangeLog-pr-9133.yml
new file mode 100644
index 0000000000..50bfced879
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9133.yml
@@ -0,0 +1,4 @@
+author: "Raptorizer"
+delete-after: True
+changes:
+ - tweak: "Doubled peach spawn rate"
From 1adeeebcac642139518d30432b4b4cf50dd06407 Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Fri, 16 Aug 2019 19:03:13 -0500
Subject: [PATCH 26/27] Automatic changelog generation for PR #9130 [ci skip]
---
html/changelogs/AutoChangeLog-pr-9130.yml | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-9130.yml
diff --git a/html/changelogs/AutoChangeLog-pr-9130.yml b/html/changelogs/AutoChangeLog-pr-9130.yml
new file mode 100644
index 0000000000..f10e72a6ce
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9130.yml
@@ -0,0 +1,9 @@
+author: "Owai-Seek"
+delete-after: True
+changes:
+ - rscadd: "custodial cruiser cargo crate"
+ - tweak: "removed light replacer from power designs and moved to misc designs"
+ - tweak: "added pimpin ride to custodial locator"
+ - tweak: "added additional items to janibelt whitelist"
+ - tweak: "made plant DNA manipulator unwrenchable"
+ - balance: "reduced janitor premium supply costs"
From 2839935209e5e2ec3caea7f9a16d714c916251bc Mon Sep 17 00:00:00 2001
From: CitadelStationBot
Date: Fri, 16 Aug 2019 19:14:31 -0500
Subject: [PATCH 27/27] Automatic changelog generation for PR #9138 [ci skip]
---
html/changelogs/AutoChangeLog-pr-9138.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-9138.yml
diff --git a/html/changelogs/AutoChangeLog-pr-9138.yml b/html/changelogs/AutoChangeLog-pr-9138.yml
new file mode 100644
index 0000000000..b78d505c5a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9138.yml
@@ -0,0 +1,4 @@
+author: "kappa-sama"
+delete-after: True
+changes:
+ - bugfix: "seed"