Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reworks job spawning in City of Light #2453

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 24 additions & 4 deletions code/controllers/subsystem/city_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ SUBSYSTEM_DEF(cityevents)
var/list/distortions_available = list()
var/helpful_events = list("chickens", "money", "tresmetal", "hppens", "sppens")
var/harmful_events = list("drones", "beaks", "shrimps", "lovetowneasy", "lovetownhard")
var/ordeal_events = list("sweepers", "scouts", "bots", "gbugs", "gcorporals")
var/ordeal_events = list("sweepers", "scouts", "bots", "gbugs")
var/neutral_events = list("swag")
var/boss_events = list("sweeper", "lovetown", "factory", "gcorp")
var/list/generated = list() //Which ckeys have generated stats
Expand Down Expand Up @@ -53,7 +53,7 @@ SUBSYSTEM_DEF(cityevents)
total_events += pick(helpful_events)
total_events += pick(harmful_events)
total_events += pick(ordeal_events)
// total_events += pick(ordeal_events)
total_events += pick(ordeal_events)
// total_events += pick(ordeal_events)
total_events += pick(neutral_events)
total_events += pick(neutral_events)
Expand Down Expand Up @@ -84,8 +84,6 @@ SUBSYSTEM_DEF(cityevents)
spawnatlandmark(/mob/living/simple_animal/hostile/ordeal/green_bot, 10)
if("gbugs")
spawnatlandmark(/mob/living/simple_animal/hostile/ordeal/steel_dawn, 30)
if("gcorporals")
spawnatlandmark(/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, 10)

//Harmful events
if("shrimps")
Expand Down Expand Up @@ -117,6 +115,8 @@ SUBSYSTEM_DEF(cityevents)
if("swag")
spawnitem(/obj/item/clothing/shoes/swagshoes, 2) // Swag out, man
wavetime+=1
if(prob(50))
JobAddition()

//Spawning Mobs, always spawns 3.
/datum/controller/subsystem/cityevents/proc/spawnatlandmark(mob/living/L, chance)
Expand All @@ -137,6 +137,26 @@ SUBSYSTEM_DEF(cityevents)
if(prob(chance))
new I (get_turf(J))

//Add in random antags as time goes on.
/datum/controller/subsystem/cityevents/proc/JobAddition()
var/jobpicked = rand(1,5)
for(var/datum/job/processing in SSjob.occupations)
if(jobpicked <= 2)
if(istype(processing, /datum/job/scavenger))
processing.total_positions +=1

if(jobpicked == 3)
if(istype(processing, /datum/job/associateroaming))
processing.total_positions +=1

if(jobpicked == 4)
if(istype(processing, /datum/job/roamingsalsu))
processing.total_positions += 1

if(jobpicked == 5)
if(istype(processing, /datum/job/butcher))
processing.total_positions += 1

/datum/controller/subsystem/cityevents/proc/Boss()
minor_announce("Warning, large hostile detected. Suppression required.", "Local Activity Alert:", TRUE)
var/T = pick(spawners)
Expand Down
49 changes: 49 additions & 0 deletions code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
//Randomspawn Salsus
/datum/job/roamingsalsu
title = "Blade Lineage Roaming Salsu"
outfit = /datum/outfit/job/roamingsalsu
department_head = list("the code of honor")
faction = "Station"
supervisors = "the code of honor"
selection_color = "#72718a"
total_positions = 0
spawn_positions = 0
display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON
access = list(ACCESS_SYNDICATE)
minimal_access = list(ACCESS_SYNDICATE)
paycheck = 150
maptype = list("city")
job_important = "You belong to the Blade Lineage, a band of wandering swordsmen. \
Seek honor, seek to kill the strong, and take money for your slaughter if the opportunity arrives. \
In an honorable duel, the loser should be brought to a doctor, out of courtesy to their skill. \
Using a disguise is dishonorable, as is using ranged weapons and stun weapons, and attacking someone that is not significantly stronger than you while not in an agreed duel. \
If anyone uses cheese tactics against you, or attacks you for no reason while not in a duel, they are dishonorable. \
You, or anyone in blade lineage may kill anyone dishonorable in any way, without hesitation, or remorse."
job_notice = "Avoid killing other players without a reason. Killing weak players not in self-defense is cowardly."


roundstart_attributes = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
TEMPERANCE_ATTRIBUTE = 60,
JUSTICE_ATTRIBUTE = 60
)

/datum/job/salsu/after_spawn(mob/living/carbon/human/H, mob/M)
ADD_TRAIT(H, TRAIT_COMBATFEAR_IMMUNE, JOB_TRAIT)
ADD_TRAIT(H, TRAIT_WORK_FORBIDDEN, JOB_TRAIT)
. = ..()


/datum/outfit/job/roamingsalsu
name = "Blade Lineage Salsu"
jobtype = /datum/job/salsu

belt = /obj/item/pda/security
ears = null
uniform = /obj/item/clothing/under/suit/lobotomy/plain
glasses = /obj/item/clothing/glasses/sunglasses
l_hand = /obj/item/ego_weapon/city/bladelineage/city
r_hand =/obj/item/clothing/suit/armor/ego_gear/city/blade_lineage_salsu
backpack_contents = list()
shoes = /obj/item/clothing/shoes/laceup
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Scavenger
/datum/job/scavenger
title = "Rat"
faction = "Station"
total_positions = -1
spawn_positions = -1
total_positions = 0
spawn_positions = 0
supervisors = "your stomach, riches and gold."
selection_color = "#555555"
access = list(ACCESS_LAWYER)
Expand All @@ -18,45 +18,19 @@ Scavenger
allow_bureaucratic_error = FALSE
maptype = "city"
roundstart_attributes = list(
FORTITUDE_ATTRIBUTE = 40,
PRUDENCE_ATTRIBUTE = 40,
TEMPERANCE_ATTRIBUTE = 40,
JUSTICE_ATTRIBUTE = 40
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
TEMPERANCE_ATTRIBUTE = 60,
JUSTICE_ATTRIBUTE = 60
)
paycheck = 0
job_important = "Your sole purpose is to cause chaos in the city. You have no rules."


/datum/job/scavenger/after_spawn(mob/living/carbon/human/H, mob/M, latejoin = FALSE)
ADD_TRAIT(H, TRAIT_COMBATFEAR_IMMUNE, JOB_TRAIT)
ADD_TRAIT(H, TRAIT_WORK_FORBIDDEN, JOB_TRAIT)
job_important = "You may be hostile to anyone else, unless you join a fixer office. \
Your goal is to sell items you find in the backstreets and make money. \
Instead of being a rat in the backstreets, you may also start or join a fixer office."

//You get one shot at good stats.
if(!(M.ckey in SScityevents.generated))
//generate from the lowest of 2 generated numbers
var/statgeneration1 = rand(110)
var/statgeneration2 = rand(110)

var/stattotal = 20 + min(statgeneration1, statgeneration2)

roundstart_attributes = list(
FORTITUDE_ATTRIBUTE = stattotal,
PRUDENCE_ATTRIBUTE = stattotal,
TEMPERANCE_ATTRIBUTE = stattotal,
JUSTICE_ATTRIBUTE = stattotal
)
SScityevents.generated+=M.ckey
else
roundstart_attributes = list(
FORTITUDE_ATTRIBUTE = 20,
PRUDENCE_ATTRIBUTE = 20,
TEMPERANCE_ATTRIBUTE = 20,
JUSTICE_ATTRIBUTE = 20
)
..()
add_skill_book(H)

/datum/outfit/job/scavenger
name = "Rat"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
faction = "Station"
supervisors = "hana association"
selection_color = "#e09660"
total_positions = 1
spawn_positions = 1
display_order = JOB_DISPLAY_ORDER_ASSOCIATION
total_positions = 0
spawn_positions = 0
display_order = JOB_DISPLAY_ORDER_FIXER
trusted_only = TRUE
access = list(ACCESS_NETWORK)
minimal_access = list(ACCESS_NETWORK)
paycheck = 700
maptype = list("fixers")
maptype = list("fixers", "city")


//They actually need this for their weapons
Expand Down
2 changes: 1 addition & 1 deletion code/modules/jobs/job_types/trusted_players/hana.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
// add_verb(outfit_owner, /client/proc/hanaslayquest)
if(SSmaptype.maptype == "fixers")
for(var/datum/job/processing in SSjob.occupations)
if(istype(processing, /datum/job/associateroaming) && processing.total_positions<7) //Can have a max of 7 of these
if(istype(processing, /datum/job/associateroaming) && processing.total_positions<6) //Can have a max of 6 of these
processing.total_positions +=2

. = ..()
Expand Down
1 change: 1 addition & 0 deletions code/modules/jobs/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ GLOBAL_LIST_INIT(security_positions, list(
"Blade Lineage Cutthroat",
"Blade Lineage Salsu",
"Blade Lineage Ronin",
"Blade Lineage Roaming Salsu",

"Grand Inquisitor",
"N Corp Grosshammer",
Expand Down
3 changes: 3 additions & 0 deletions config/maps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,6 @@ endmap

map runtimestation
endmap

map city
endmap
3 changes: 2 additions & 1 deletion lobotomy-corp13.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2354,10 +2354,11 @@
#include "code\modules\jobs\job_types\city\civilian.dm"
#include "code\modules\jobs\job_types\city\doctor.dm"
#include "code\modules\jobs\job_types\city\HHPP.dm"
#include "code\modules\jobs\job_types\city\scavenger.dm"
#include "code\modules\jobs\job_types\city\rat.dm"
#include "code\modules\jobs\job_types\city\workshop.dm"
#include "code\modules\jobs\job_types\city\fixer\east.dm"
#include "code\modules\jobs\job_types\city\fixer\north.dm"
#include "code\modules\jobs\job_types\city\misc\blade_lineage_misc.dm"
#include "code\modules\jobs\job_types\city\syndicate\blade_lineage\cutthroat.dm"
#include "code\modules\jobs\job_types\city\syndicate\blade_lineage\salsu.dm"
#include "code\modules\jobs\job_types\city\syndicate\index\messenger.dm"
Expand Down
Loading