diff --git a/code/controllers/subsystem/faction_task.dm b/code/controllers/subsystem/faction_task.dm index 84176a5b..e14d8004 100644 --- a/code/controllers/subsystem/faction_task.dm +++ b/code/controllers/subsystem/faction_task.dm @@ -41,6 +41,12 @@ GLOBAL_LIST_INIT(faction_task_probabilities, list( "/datum/job/citizens/f13tourist" = list( "/datum/faction_task/individual_player/heist" = 100, ), + "/datum/job/wastes/f13vagrant" = list( + "/datum/faction_task/individual_player/heist" = 100, + ), + "datum/job/citzens/f13convict" = list( + "/datum/faction_task/individual_player/heist" = 100, + ), )) GLOBAL_DATUM_INIT(faction_task_controller, /datum/faction_task_controller, new) @@ -642,11 +648,18 @@ GLOBAL_LIST_INIT(faction_relics, list( /datum/faction_task/individual_player/heist name = "Heist" max_players = 5 - player_chance = 75 + player_chance = 15 var/datum/job/target_faction var/obj/target var/area/drop_off +/datum/faction_task/individual_player/heist/add_player(mob/living/user) + var/obj/item/card/id/reno/heisters/heister_id = new /obj/item/card/id/reno/heisters(get_turf(user)) + var/obj/item/paper/heist/heist_note = new /obj/item/paper/heist(get_turf(user)) + user.equip_to_slot_if_possible(heister_id, ITEM_SLOT_ID) + user.put_in_inactive_hand(heist_note) + . = ..() + /datum/faction_task/individual_player/heist/New() ..() addtimer(CALLBACK(src, PROC_REF(pick_target)), 225 SECONDS) diff --git a/code/datums/weather/weather_types/acid_rain.dm b/code/datums/weather/weather_types/acid_rain.dm index 4517f80e..c37fdab4 100644 --- a/code/datums/weather/weather_types/acid_rain.dm +++ b/code/datums/weather/weather_types/acid_rain.dm @@ -1,7 +1,7 @@ /datum/weather/acid_rain name = "acid rain" desc = "The planet's thunderstorms are by nature acidic, and will incinerate anyone standing beneath them without protection." - probability = 2 + probability = 0 telegraph_duration = 400 telegraph_message = span_userdanger("Thunder rumbles far above. You hear droplets drumming against the canopy. Seek shelter.") @@ -17,7 +17,8 @@ end_message = span_boldannounce("The downpour gradually slows to a light shower. It should be safe outside now.") end_sound = 'sound/ambience/acidrain_end.ogg' - area_types = list(/area/f13/wasteland, /area/f13/desert, /area/f13/farm, /area/f13/forest, /area/f13/ruins) + //area_types = list(/area/f13/wasteland, /area/f13/desert, /area/f13/farm, /area/f13/forest, /area/f13/ruins) + area_types = list(/area) protected_areas = list(/area/shuttle) target_trait = ZTRAIT_STATION protect_indoors = TRUE @@ -31,7 +32,7 @@ /datum/weather/acid_rain/weather_act(mob/living/L) var/resist = L.getarmor(null, "acid") if(prob(max(0,100-resist))) - L.acid_act(90, 10) + L.acid_act(60, 10) L.adjustFireLoss(4) /datum/weather/acid_rain/weather_act_turf(turf/T) diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index ebdfd01a..915aa7aa 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -16,13 +16,14 @@ end_duration = 300 end_overlay = "light_ash" - area_types = list(/area/f13/wasteland, /area/f13/desert, /area/f13/farm, /area/f13/forest, /area/f13/ruins) + //area_types = list(/area/f13/wasteland, /area/f13/desert, /area/f13/farm, /area/f13/forest, /area/f13/ruins) + area_types = list(/area) protect_indoors = TRUE target_trait = ZTRAIT_ASHSTORM immunity_type = "ash" - probability = 90 + probability = 0 barometer_predictable = TRUE @@ -104,7 +105,7 @@ /datum/weather/ash_storm/sandstorm name = "sandstorm" desc = "A passing sand storm blankets the area in harmless sands." - probability = 15 + probability = 0 telegraph_message = span_userdanger("Sandstorm is coming to the area, decreasing overall visibility outside.") @@ -134,7 +135,8 @@ end_duration = 3000 end_overlay = "light_ash" - area_types = list(/area/f13/wasteland, /area/f13/desert, /area/f13/farm, /area/f13/forest, /area/f13/ruins) + //area_types = list(/area/f13/wasteland, /area/f13/desert, /area/f13/farm, /area/f13/forest, /area/f13/ruins) + area_types = list(/area) protect_indoors = TRUE target_trait = ZTRAIT_STATION diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 647827ea..aaf1c3bb 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -402,6 +402,10 @@ damage_deflection = 44 security_level = 6 +/obj/machinery/door/airlock/vault/heist + name = "mysterious door" + req_one_access = (ACCESS_HEIST) + ////////////////////////////////// /* Hatch Airlocks diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 0e3bc8d1..fb864a33 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -1741,3 +1741,15 @@ /obj/item/card/id/reno/vangraffs/business/management desc = "It has eggshell coloring." icon_state = "business_card_2" + +////////////////// +/// Heist Boys /// +////////////////// + +/obj/item/card/id/reno/heisters + name = "NCR citizenship permit" + desc = "A plain, though worn, ID permit for an NCR citizen... or is it?" + icon_state = "doctor" + item_state = "card-doctor" + access = list(ACCESS_HEIST) + uses_overlays = FALSE diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index fe0a481a..eeb2d7de 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -690,21 +690,179 @@ Temperance Union members harbor a deep-seated distrust in the effectiveness of c /obj/item/paper/vangraffs name = "To The New Robotics Contractor" - desc = "If you're reading this it means Chop Van Graff failed to properly update her instructional note." + desc = "If you're reading this, you have chosen or been chosen to be an assistant roboticist." icon_state = "paper_words" - info = {"ChopChop please."} + info = {" + +
+ + +I don’t like to be official, so let’s make this quick and easy.
+ +Besides energy weapon sales, we get major profits from robot sales and upgrades. Naturally, those require resources. That’s where you come in.
+ +There are two ways to acquire raw metals for robot crafting:
+The import prices per single ore piece are as follows:
+If the profit on these sales doesn’t outstrip the cost of resources, you’re not just wasting my time—you’re making a serious mistake. Don’t bring in a damn thing that costs more than it’s worth. I’m trusting you to handle this with professionalism. Fail to uphold these standards and our next conversation won’t just be unpleasant. It’ll be the last talk you ever have.
+ +- Van Graff Branch Manager
+ + +"} /obj/item/paper/wrights name = "Wright Export Contract" - desc = "If you're reading this it means Chop Wright failed to do her chores and must be sternly corrected." + desc = "If you're reading this it means your family or an associate of the Wrights family has something new cooked up." icon_state = "paper_words" - info = {"ChopChop please."} + info = {" + + + + +Ladies and gentlemen,
+ +It is my pleasure to acquaint you, our newest and most distinguished hires, with the fundamental duties that lie ahead. Beyond overseeing the clinic, we are also engaged in the profitable enterprise of exporting raw resources via train.
+ +These resources may be obtained through the rather unfortunate yet necessary menial labor conducted in the mines northeast of New Reno. Alternatively, one may procure ore imported directly from the NCR Prison, following the rates listed here per individual piece of ore:
+ +Once the ore is acquired, it is exported via our rail line in bulk at established rates, a highly profitable venture that secures our standing here in New Reno. Do not falter in this task; a considerable responsibility rests upon you to uphold the family’s interests.
+ +Rest assured, you are being watched—not only by us but, indeed, by Providence itself.
+ + +"} /obj/item/paper/ncrcf name = "Instructions for the NCRCF" - desc = "If you're reading this it means the first girlboss senator has failed utterly. - Kimball and the Boys." + desc = "If you're reading this, it means you're here to police the dregs of society rather than being on the frontlines." icon_state = "paper_words" - info = {"ChopChop please."} + info = {" + + + + +LISTEN UP, YOU SORRY SACKS OF FILTH. YOU MIGHT BE OUT OF THE ARMY BUT THAT DOESN'T MEAN YOU GET TO SIT AROUND PLAYING WITH TEA CUPS LIKE A BUNCH OF HELPLESS GRANDMAS. THIS ISN'T A DAYCARE CENTER - THIS PRISON IS OUR GOVERNMENT'S PRIDE AND JOY, AND I'LL BE DAMNED IF YOU'RE GONNA BE THE CLOWNS WHO SCREW IT UP.
+ +YOUR JOB ISN'T JUST TO BABYSIT INMATES; YOU'VE GOT TO MAKE SURE THOSE WORTHLESS WORMS DIG UP EVERY OUNCE OF ORE IN THE MINE. THAT ORE ISN'T JUST DIRT, IT'S PROFIT FOR THIS WHOLE OPERATION. YOU EXPORT THE ORE STRAIGHT TO THE VAN GRAFF FAMILY FOR THEIR ROBOT FREAKSHOWS AND THE WRIGHTS TO SHIP IT OUT VIA TRAIN.
+ +HERE ARE ORE PRICES:
+THIS ISN'T YOUR MOTHER'S BACKYARD PROJECT; THIS OPERATION KEEPS THIS PLACE RUNNING. GET IT THROUGH YOUR THICK SKULLS AND ACT LIKE IT, OR SO HELP ME, I'M GOING TO MAKE GOD HIMSELF COME DOWN SWINGING A HAMMER BIGGER THAN VAULT-CITY AND CRUSH WHATEVER'S LEFT OF YOUR SORRY EXCUSES FOR MANHOOD. MAKE THIS UNIT PROUD OR I WILL PERSONALLY MAKE SURE YOU REGRET IT.
+ + +"} /obj/item/paper/bishops name = "Word to the Wise" @@ -713,3 +871,12 @@ Temperance Union members harbor a deep-seated distrust in the effectiveness of c info = {"