diff --git a/code/controllers/subsystem/city_events.dm b/code/controllers/subsystem/city_events.dm index 53fdcef16195..5aa5f4a532d7 100644 --- a/code/controllers/subsystem/city_events.dm +++ b/code/controllers/subsystem/city_events.dm @@ -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 @@ -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) @@ -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") @@ -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) @@ -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) diff --git a/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm b/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm new file mode 100644 index 000000000000..e19cdd8a9bf4 --- /dev/null +++ b/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm @@ -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 diff --git a/code/modules/jobs/job_types/city/scavenger.dm b/code/modules/jobs/job_types/city/rat.dm similarity index 57% rename from code/modules/jobs/job_types/city/scavenger.dm rename to code/modules/jobs/job_types/city/rat.dm index b2ae3d13e032..040fe7f98cce 100644 --- a/code/modules/jobs/job_types/city/scavenger.dm +++ b/code/modules/jobs/job_types/city/rat.dm @@ -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) @@ -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" diff --git a/code/modules/jobs/job_types/trusted_players/association/roaming.dm b/code/modules/jobs/job_types/trusted_players/association/roaming.dm index d432c00145e2..6a720418bf5c 100644 --- a/code/modules/jobs/job_types/trusted_players/association/roaming.dm +++ b/code/modules/jobs/job_types/trusted_players/association/roaming.dm @@ -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 diff --git a/code/modules/jobs/job_types/trusted_players/hana.dm b/code/modules/jobs/job_types/trusted_players/hana.dm index 9301816a3a17..0027ab7c447a 100644 --- a/code/modules/jobs/job_types/trusted_players/hana.dm +++ b/code/modules/jobs/job_types/trusted_players/hana.dm @@ -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 . = ..() diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index bde8c8df884f..c197704a506a 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -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", diff --git a/config/maps.txt b/config/maps.txt index 9015a3aea24f..4618c1ed6102 100644 --- a/config/maps.txt +++ b/config/maps.txt @@ -99,3 +99,6 @@ endmap map runtimestation endmap + +map city +endmap diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme index e8f975c58c21..e6bee0a2fdc2 100644 --- a/lobotomy-corp13.dme +++ b/lobotomy-corp13.dme @@ -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"