diff --git a/_maps/map_files/vanderlin/vanderlin.dmm b/_maps/map_files/vanderlin/vanderlin.dmm index f6bbb1706b7..d7a2b5d5c76 100644 --- a/_maps/map_files/vanderlin/vanderlin.dmm +++ b/_maps/map_files/vanderlin/vanderlin.dmm @@ -1991,7 +1991,17 @@ /turf/open/floor/blocks/paving, /area/indoors/town/bath) "aWB" = ( -/obj/structure/table/wood/plain_alt, +/obj/structure/closet/crate/chest/crate, +/obj/item/key/sweeper, +/obj/item/broom, +/obj/item/natural/bundle/cloth{ + amount = 5; + pixel_y = 7 + }, +/obj/item/reagent_containers/glass/bucket/wooden, +/obj/item/reagent_containers/glass/bucket/wooden, +/obj/item/soap, +/obj/item/soap, /turf/open/floor/ruinedwood/turned, /area/indoors/town) "aWO" = ( @@ -17991,6 +18001,20 @@ /area/indoors/town/keep/captain) "iGe" = ( /obj/effect/decal/cleanable/dirt/cobweb, +/obj/structure/rack/shelf, +/obj/item/storage/sack{ + pixel_x = 6; + pixel_y = 39 + }, +/obj/item/storage/sack{ + pixel_x = -2; + pixel_y = 39 + }, +/obj/item/storage/sack{ + pixel_x = -10; + pixel_y = 39 + }, +/obj/structure/fermentation_keg/water, /turf/open/floor/ruinedwood/turned, /area/indoors/town) "iGp" = ( @@ -21553,7 +21577,8 @@ /turf/open/floor/grass, /area/indoors/town/church/inquisition) "klY" = ( -/obj/machinery/light/fueled/torchholder/r, +/obj/machinery/light/fueled/wallfire/candle/weak/r, +/obj/effect/landmark/start/sweeper, /turf/open/floor/ruinedwood/turned, /area/indoors/town) "kma" = ( @@ -23406,9 +23431,11 @@ /turf/open/floor/metal/barograte, /area/indoors/town/dwarfin) "lec" = ( -/obj/structure/door/weak/bolt{ - dir = 4 +/obj/structure/door{ + name = "Sweeper's Quarters" }, +/obj/effect/mapping_helpers/access/locker, +/obj/effect/mapping_helpers/access/keyset/town/sweeper, /turf/open/floor/ruinedwood/turned, /area/indoors/town) "leJ" = ( @@ -24164,6 +24191,23 @@ }, /turf/open/floor/cobblerock, /area/outdoors/town) +"lwR" = ( +/obj/structure/handcart, +/obj/structure/rack/shelf, +/obj/item/burial_shroud{ + pixel_x = 6; + pixel_y = 38 + }, +/obj/item/burial_shroud{ + pixel_x = 0; + pixel_y = 38 + }, +/obj/item/burial_shroud{ + pixel_x = -7; + pixel_y = 38 + }, +/turf/open/floor/ruinedwood/turned, +/area/indoors/town) "lwS" = ( /obj/structure/fluff/walldeco/bath/wallpipes{ dir = 1; @@ -29526,9 +29570,7 @@ /turf/open/openspace, /area/indoors/town/garrison) "nYo" = ( -/obj/structure/chair/wood/alt/chair3{ - dir = 4 - }, +/obj/structure/bed/shit, /turf/open/floor/ruinedwood/turned, /area/indoors/town) "nYq" = ( @@ -151729,7 +151771,7 @@ biy biy xhZ nKC -qcD +lwR klY aWB pkd diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index c6eebf563aa..ae09e058557 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -18,6 +18,7 @@ #define ACCESS_ARTIFICER "artificer" #define ACCESS_MINER "miner" #define ACCESS_BATHHOUSE "bathhouse" +#define ACCESS_SWEEPER "sweeper" // Town Garrison (Including forest) #define ACCESS_GARRISON "garrison" diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 2ca14bb3e31..949f7b5784c 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -168,6 +168,7 @@ #define JDO_BOGWITCH 35.1 #define JDO_BOGWITCH_APP 35.2 +#define JDO_SWEEPER 35.3 #define JDO_VAGRANT 36 #define JDO_ORPHAN 37 #define JDO_SOILCHILD 38 @@ -228,6 +229,7 @@ #define JOB_BARD "Bard" #define JOB_PRISONER "Prisoner" #define JOB_BEGGAR "Beggar" +#define JOB_SWEEPER "Sweeper" #define JOB_SQUIRE "Squire" diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index daf330ca262..254eae04395 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -300,6 +300,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) name = JOB_BEGGAR jobs_to_spawn = list(JOB_BEGGAR) +/obj/effect/landmark/start/sweeper + name = JOB_SWEEPER + jobs_to_spawn = list(JOB_SWEEPER) + /obj/effect/landmark/start/consort name = JOB_CONSORT jobs_to_spawn = list(JOB_CONSORT) diff --git a/code/game/objects/items/keys.dm b/code/game/objects/items/keys.dm index ae804c22b6f..64b52918779 100644 --- a/code/game/objects/items/keys.dm +++ b/code/game/objects/items/keys.dm @@ -185,6 +185,12 @@ icon_state = "brownkey" lockids = list(ACCESS_MINER) +/obj/item/key/sweeper + name = "sweeper's key" + desc = "This key opens the Sweeper's room. It smells foul." + icon_state = "rustkey" + lockids = list(ACCESS_SWEEPER) + // Residents /obj/item/key/matron diff --git a/code/modules/jobs/job_types/peasants/sweeper.dm b/code/modules/jobs/job_types/peasants/sweeper.dm new file mode 100644 index 00000000000..d75bcd7728c --- /dev/null +++ b/code/modules/jobs/job_types/peasants/sweeper.dm @@ -0,0 +1,61 @@ +/datum/attribute_holder/sheet/job/sweeper + raw_attribute_list = list( + STAT_ENDURANCE = 2, + STAT_SPEED = 1, + STAT_INTELLIGENCE = -2, + /datum/attribute/skill/misc/climbing = 20, + /datum/attribute/skill/combat/wrestling = 10, + /datum/attribute/skill/combat/unarmed = 20, + /datum/attribute/skill/misc/athletics = 30, + /datum/attribute/skill/craft/crafting = 20, + ) + +/datum/job/sweeper + title = JOB_SWEEPER + tutorial = "You are the street cleaner of Vanderlin, the one who takes care of the rot and refuse." + + department_flag = PEASANTS + display_order = JDO_SWEEPER + job_flags = (JOB_ANNOUNCE_ARRIVAL | JOB_EQUIP_RANK | JOB_NEW_PLAYER_JOINABLE | JOB_SHOW_IN_CREDITS) + faction = FACTION_TOWN + total_positions = 1 + spawn_positions = 1 + bypass_lastclass = TRUE + banned_leprosy = FALSE + + allowed_races = RACES_PLAYER_ALL + + outfit = /datum/outfit/sweeper + give_bank_account = 10 + can_random = FALSE + can_have_apprentices = FALSE + can_be_apprentice = TRUE + + cmode_music = 'sound/music/cmode/towner/CombatBeggar.ogg' + + traits = list( + TRAIT_DEADNOSE, + ) + + attribute_sheet = /datum/attribute_holder/sheet/job/sweeper + +/datum/job/sweeper/after_spawn(mob/living/carbon/human/spawned, client/player_client) + . = ..() + // Hygiene roll + if(prob(25)) + spawned.set_hygiene(HYGIENE_LEVEL_DISGUSTING) + else + spawned.set_hygiene(HYGIENE_LEVEL_DIRTY) + + +/datum/outfit/sweeper + name = JOB_SWEEPER + pants = /obj/item/clothing/pants/tights/colored/black + gloves =/obj/item/clothing/gloves/leather/black + shirt = /obj/item/clothing/shirt/shortshirt/colored/grey + backl = /obj/item/storage/backpack/satchel/cloth + head = /obj/item/clothing/head/strawhat + shoes = /obj/item/clothing/shoes/boots + ring = /obj/item/key/sweeper + belt = /obj/item/storage/belt/leather/black + neck = /obj/item/storage/belt/pouch diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index b40579c3af3..0a697d833a3 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -101,6 +101,7 @@ GLOBAL_LIST_INIT(peasant_positions, list( /datum/job/bard::title, /datum/job/prisoner::title, /datum/job/vagrant::title, + /datum/job/sweeper::title, /datum/job/persistence/woodsman::title, /datum/job/persistence/miner::title, /datum/job/persistence/farmer::title, diff --git a/code/modules/mapping/mapping_helpers/access_helper.dm b/code/modules/mapping/mapping_helpers/access_helper.dm index 431385bb7a8..1c7da91b737 100644 --- a/code/modules/mapping/mapping_helpers/access_helper.dm +++ b/code/modules/mapping/mapping_helpers/access_helper.dm @@ -101,6 +101,9 @@ accesses = list(ACCESS_BATHHOUSE) difficulty = 5 +/obj/effect/mapping_helpers/access/keyset/town/sweeper + accesses = list(ACCESS_SWEEPER) + // Town Garrison /obj/effect/mapping_helpers/access/keyset/garrison color = "#b02323" diff --git a/vanderlin.dme b/vanderlin.dme index fc7844fc371..7af2d067e9d 100644 --- a/vanderlin.dme +++ b/vanderlin.dme @@ -3190,6 +3190,7 @@ #include "code\modules\jobs\job_types\peasants\miner.dm" #include "code\modules\jobs\job_types\peasants\prisoner.dm" #include "code\modules\jobs\job_types\peasants\soilson.dm" +#include "code\modules\jobs\job_types\peasants\sweeper.dm" #include "code\modules\jobs\job_types\persistence\caravanguard.dm" #include "code\modules\jobs\job_types\persistence\carpenter.dm" #include "code\modules\jobs\job_types\persistence\farmer.dm"