Skip to content

Commit

Permalink
Reworks job spawning in City of Light (#2453)
Browse files Browse the repository at this point in the history
reworks

Update lobotomy-corp13.dme

makes specific roaming salsu role
  • Loading branch information
Kitsunemitsu authored Nov 19, 2024
1 parent 2e2a285 commit cd17cd2
Show file tree
Hide file tree
Showing 8 changed files with 91 additions and 43 deletions.
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 @@ -2355,10 +2355,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

0 comments on commit cd17cd2

Please sign in to comment.