mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 13:38:41 +01:00
Contractor Updates (#19716)
* updates some contractor stuff * Update modular_skyrat/modules/contractor/code/datums/midround/event.dm engrish Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> * rand 75 -> 100 --------- Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#define RANSOM_LOWER 25
|
||||
#define RANSOM_UPPER 75
|
||||
#define RANSOM_LOWER 75
|
||||
#define RANSOM_UPPER 150
|
||||
#define CONTRACTOR_RANSOM_CUT 0.35
|
||||
|
||||
/datum/syndicate_contract
|
||||
@@ -11,7 +11,7 @@
|
||||
var/datum/objective/contract/contract = new()
|
||||
/// Target's job
|
||||
var/target_rank
|
||||
/// A number in multiples of 100, anywhere from 2500 credits to 7500, station cost when someone is kidnapped
|
||||
/// A number in multiples of 100, anywhere from 7500 credits to 15000, station cost when someone is kidnapped
|
||||
var/ransom = 0
|
||||
/// TC payout size, will be small, medium, or large.
|
||||
var/payout_type
|
||||
@@ -160,17 +160,22 @@
|
||||
|
||||
/// Called when person is finished shoving in, awards ransome money
|
||||
/datum/syndicate_contract/proc/finish_enter()
|
||||
|
||||
// Pay contractor their portion of ransom
|
||||
if(!(status == CONTRACT_STATUS_COMPLETE))
|
||||
if(!status != CONTRACT_STATUS_COMPLETE)
|
||||
return
|
||||
|
||||
var/obj/item/card/id/owner_id = contract.owner.current?.get_idcard(TRUE)
|
||||
|
||||
if(owner_id?.registered_account)
|
||||
if(owner_id?.registered_account && !istype(owner_id, /obj/item/card/id/advanced/chameleon))
|
||||
owner_id.registered_account.adjust_money(ransom * CONTRACTOR_RANSOM_CUT)
|
||||
|
||||
owner_id.registered_account.bank_card_talk("We've processed the ransom, agent. Here's your cut - your balance is now \
|
||||
[owner_id.registered_account.account_balance] credits.", TRUE)
|
||||
else
|
||||
to_chat(contract.owner.current, span_notice("A briefcase appears at your feet!"))
|
||||
var/obj/item/storage/secure/briefcase/case = new(get_turf(contract.owner.current))
|
||||
for(var/i in 1 to round(ransom * CONTRACTOR_RANSOM_CUT)) // Gets slightly less/more but whatever
|
||||
new /obj/item/stack/spacecash/c1000(case)
|
||||
|
||||
/// They're off to holding - handle the return timer and give some text about what's going on.
|
||||
/datum/syndicate_contract/proc/handle_victim_experience(mob/living/target)
|
||||
@@ -196,8 +201,23 @@
|
||||
|
||||
/// Continued victim handling
|
||||
/datum/syndicate_contract/proc/victim_stage_two(mob/living/target)
|
||||
var/list/parts_to_fuck_up = list(
|
||||
BODY_ZONE_L_ARM,
|
||||
BODY_ZONE_R_ARM,
|
||||
BODY_ZONE_L_LEG,
|
||||
BODY_ZONE_R_LEG,
|
||||
)
|
||||
|
||||
to_chat(target, span_warning("That pod did something to you..."))
|
||||
target.set_dizzy(70 SECONDS)
|
||||
|
||||
for(var/i in 1 to 2)
|
||||
var/obj/item/bodypart/limb = target.get_bodypart(pick_n_take(parts_to_fuck_up))
|
||||
var/datum/wound/blunt/severe/severe_wound_type = /datum/wound/blunt/severe
|
||||
var/datum/wound/blunt/critical/critical_wound_type = /datum/wound/blunt/critical
|
||||
limb.receive_damage(brute = WOUND_MINIMUM_DAMAGE, wound_bonus = rand(initial(severe_wound_type.threshold_minimum), initial(critical_wound_type.threshold_minimum) + 10))
|
||||
target.update_damage_overlays()
|
||||
|
||||
addtimer(CALLBACK(src, PROC_REF(victim_stage_three), target), 6 SECONDS)
|
||||
|
||||
/// Continued victim handling, flashes them as well
|
||||
@@ -211,6 +231,24 @@
|
||||
/// Continued victim handling
|
||||
/datum/syndicate_contract/proc/victim_stage_four(mob/living/target)
|
||||
to_chat(target, span_warning("Your head pounds..."))
|
||||
|
||||
if(iscarbon(target))
|
||||
var/mob/living/carbon/carbon_target = target
|
||||
switch(rand(1, 100))
|
||||
if(1 to 45)
|
||||
carbon_target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_SURGERY)
|
||||
|
||||
if(46 to 73)
|
||||
carbon_target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_SURGERY)
|
||||
carbon_target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_SURGERY)
|
||||
|
||||
if(74 to 94)
|
||||
carbon_target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_SURGERY)
|
||||
|
||||
if(75 to 100)
|
||||
carbon_target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_SURGERY)
|
||||
carbon_target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_SURGERY)
|
||||
|
||||
addtimer(CALLBACK(src, PROC_REF(victim_stage_five), target), 10 SECONDS)
|
||||
|
||||
/// Continued victim handling, some unconsciousness
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
weight = 8
|
||||
max_occurrences = 1
|
||||
category = EVENT_CATEGORY_INVASION
|
||||
description = "A pre-equipped contractor floats towards the station to fulfill contracts."
|
||||
|
||||
/datum/round_event/ghost_role/contractor
|
||||
minimum_required = 1
|
||||
@@ -24,9 +25,9 @@
|
||||
return MAP_ERROR
|
||||
|
||||
var/mob/living/carbon/human/operative = new(pick(spawn_locs))
|
||||
operative.randomize_human_appearance(~RANDOMIZE_SPECIES)
|
||||
operative.dna.update_dna_identity()
|
||||
var/datum/mind/mind = new /datum/mind(selected.key)
|
||||
selected.client?.prefs?.apply_prefs_to(operative)
|
||||
mind.set_assigned_role(SSjob.GetJobType(/datum/job/drifting_contractor))
|
||||
mind.special_role = ROLE_DRIFTING_CONTRACTOR
|
||||
mind.active = TRUE
|
||||
|
||||
@@ -106,8 +106,9 @@
|
||||
|
||||
// Paper guide
|
||||
new /obj/item/paper/contractor_guide/midround(src)
|
||||
new /obj/item/reagent_containers/hypospray/medipen/atropine(src)
|
||||
new /obj/item/jammer(src)
|
||||
new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
|
||||
new /obj/item/lighter(src)
|
||||
new /obj/item/jammer(src)
|
||||
|
||||
#undef SMALL_ITEM_AMOUNT
|
||||
|
||||
@@ -78,6 +78,9 @@
|
||||
<p>The contractor hub, available at the top right of the uplink, will provide you unique items and abilities. These are bought using Contractor Rep,
|
||||
with two Rep being provided each time you complete a contract.</p>
|
||||
|
||||
<p>You've also been provided with a medipen of atropine, to prevent your implanted microbomb going off if it would be more tactically sound for your
|
||||
body to stay intact. If circumstances change, you are still able to detonate your microbomb post-mortem.</p>
|
||||
|
||||
<h3>Using the tablet</h3>
|
||||
<ol>
|
||||
<li>Open the Syndicate Contract Uplink program.</li>
|
||||
|
||||
Reference in New Issue
Block a user