mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 18:47:20 +01:00
* biting off more than I can chew, but I feel like hurting myself * more shit * progress continues, moral stays sameish * bite of 2587 * mod_theme down, but probably broken * 385 errors, 16 warnings, zero tgui interactions * 292 19 * final strech to buggy mess, break time * it compiles. It almost fucking certainly doesnt work, but it compiles * fudhsciffubgsbgpgb actions not working as should for modules * fuck it we'll just open the pr as we work on it * icons work now * tgui stuff * more progress * JUDGEMENT * IT LIVES. TGUI LIVES. Special thanks to Sirryan and my brother. * jetpacks, gps, and go do what exo-suits yourself * almost ready * sorry to whoever has to review this * should work™️ * should be good now * pushing changes so I can do reviews next * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * lore™️ Adds illegals level to modsuit parts from syndicate. * early returns * and these illegals * no uplink reference idiot * mod inhands are a good idea * this is needed for inhands nerd * Bomb detector working, modsutis cover ears. skin things * overslotting removal, cyborg charging, ert loadout for gamma * duplicated signal * modsuit themes, removes broken mister / bad base type module, 2 cores in robotics. * tether module, orb module, holster stuff * built in no slip, cheaper 87 * removes modules already installed, engineer ert get jetpack, equip into modsuit storage * comments spaces and duplicate flags * Some adjustments and thoughts on armor, heads get guns because they are cool like that / looting command members armor * Apply suggestions from code review Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Compile TGUI, slowdown adjustment, Modsuit to MODsuit * sonar, do after, more equipment, acid handling * overlay bugs / ERT / DS suits autodeploy * middle click action buttons * traders, sec modsuit energy nerf * surplus weighting * Kinesis module. * Pathfinder module, kinesis balance, blueprint for pathfinder and kinesis * more power / unused module removed * name, ds fix, pre equipped to cc suit * depot / grammer * ok should be good™️ * overslot, dupe gun, missing suit storage * stealth nerf, new kit * gun stuff / ds theme * bio armor is gone * let me push changes please thank you * makes shocks work right * copies over some changes TG made to module prices after porting * Merge remote-tracking branch 'upstream/master' into Because-I-hate-myself-and-someone-has-to-try-it- * sirryans changes Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Update code/modules/telesci/gps.dm Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Update code/modules/telesci/gps.dm Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Control define, ERT / DS have gloves / boots again. * Apply suggestions from code review Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * More changes * god I hate tgui. Why do all the bundles live underground, instead of in my basement? * she updates my master till I testmerge * modsuits can recharge again * fixes a lot of shit * Ready for TM probably * sure fuck it whatever that makes sense I guess * the pinpointer works better™️ * Another storage module bug fix * hair and medical stuff * fuck fuck fuck * fixes sonar * Bag exploit fixes / plasma runtimes / ear nerf * dna lock improvement / cryostorage * whoops * Ball form second cooldown wasn't helping, no more infinite cores * she springs my lock till I ***SNAP*** * plasmaman no longer die * fixes modsuit emp issues * atmos no longer fucking dies * Fixes, module printing, and a restriction on newly constructed modsuits * Inventory code my hated * WOOO PREFERENCE CODE WOOOOO * icons my hated * fix for mods / spaceproof shit * holy shit whhhyyyyy * backpack first * Update mod_theme.dm * prevent infinite gun arms / infinite modsuit cores / syndicate modules * fixes tm error * scream loudly if species sprites break. They shouldn't, but, you know. * deconflicted with luck * converts to refit for species * fix pathfinder * fixes modsuits being funky power wise * lockboxes :gatto: , as well as DN-MP shield lock, and slight nerf to atmos modsuit * nerfs the atmos modsuit * magboots for ds / CC modsuit * downside of autosave: typing in wrong window saves bad stuff * Gamma ERT have internal cameras again. * spellcheck when * ah fuck * yes delete the null that works * whoops * fixes error / description * un vulps your cannon * fixes tails disapeering on base modsuits * space to underscore * tgui fix / tajaran * springlock buff, cryopod fix * u helps * WHO PUTS A GUN IN ITEMS * tgui moment * mining modsuit nerf / hidden holster module * PAIN * UNATHI TIDE STATION WIDE * I love special code * slightly dense * shark jumpscare * fixes ghost item, fixes springlock being bad * YIPPEEEE IT WORKED * she decons my flict * pain * ebbas days are numbered :^) * hidden * r-r-r-ebuild * fixes more bugs * qwerty, you are dense * fixes gps * fix mulebot crate * level fix * adds back icon * moving storage, fix bug, modules activate / deactivate message * yeah * yeah * yeah™️ * steels requests * windoors no longer make pathfinder module explode * chat spam * oil slicks + modsuits * whoops * bag check * ofc * Update code/modules/mod/mod_control.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/datums/uplink_items/uplink_nuclear.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/mod/mod_control.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/mod/modules/module_pathfinder.dm Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com> --------- Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
204 lines
7.4 KiB
Plaintext
204 lines
7.4 KiB
Plaintext
// Theft objectives.
|
|
//
|
|
// Separated into datums so we can prevent roles from getting certain objectives.
|
|
|
|
#define THEFT_FLAG_SPECIAL 1//unused, maybe someone will use it some day, I'll leave it here for the children
|
|
#define THEFT_FLAG_UNIQUE 2
|
|
|
|
/datum/theft_objective
|
|
var/name = "this objective is impossible, yell at a coder"
|
|
var/typepath=/obj/effect/debugging
|
|
var/list/protected_jobs = list()
|
|
var/list/altitems = list()
|
|
var/flags = 0
|
|
var/location_override
|
|
/// Do we have a special item we give to somewhen when they get this objective?
|
|
var/special_equipment = null
|
|
/// If a steal objective has forbidden jobs, and the forbidden jobs would not be in the possession of this item, set this to false
|
|
var/job_possession = TRUE
|
|
|
|
/datum/theft_objective/proc/check_completion(datum/mind/owner)
|
|
if(!owner.current)
|
|
return 0
|
|
if(!isliving(owner.current))
|
|
return 0
|
|
var/list/all_items = owner.current.get_contents()
|
|
for(var/obj/I in all_items) //Check for items
|
|
if(istype(I, typepath) && check_special_completion(I))
|
|
return 1
|
|
return 0
|
|
|
|
//This proc is to be used for not granting objectives if a special requirement other than job is not met.
|
|
|
|
/datum/theft_objective/proc/check_objective_conditions()
|
|
return TRUE
|
|
|
|
/datum/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc)
|
|
return 1
|
|
|
|
/datum/theft_objective/antique_laser_gun
|
|
name = "the captain's antique laser gun"
|
|
typepath = /obj/item/gun/energy/laser/captain
|
|
protected_jobs = list("Captain")
|
|
location_override = "the Captain's Office"
|
|
|
|
/datum/theft_objective/captains_modsuit
|
|
name = "the captain's Magnate MODsuit"
|
|
typepath = /obj/item/mod/control/pre_equipped/magnate
|
|
protected_jobs = list("Captain")
|
|
location_override = "the Captain's Office"
|
|
|
|
/datum/theft_objective/captains_rapier
|
|
name = "the captain's rapier"
|
|
typepath = /obj/item/melee/rapier
|
|
protected_jobs = list("Captain")
|
|
location_override = "the Captain's Office"
|
|
|
|
/datum/theft_objective/hoslaser
|
|
name = "the head of security's X-01 multiphase energy gun"
|
|
typepath = /obj/item/gun/energy/gun/hos
|
|
protected_jobs = list("Head Of Security")
|
|
location_override = "the Head of Security's Office"
|
|
|
|
/datum/theft_objective/hand_tele
|
|
name = "a hand teleporter"
|
|
typepath = /obj/item/hand_tele
|
|
protected_jobs = list("Captain", "Research Director", "Chief Engineer")
|
|
location_override = "Teleporter"
|
|
|
|
/datum/theft_objective/ai
|
|
name = "a functional AI"
|
|
typepath = /obj/item/aicard
|
|
location_override = "AI Satellite. An intellicard for transportation can be found in Tech Storage, Science Department or manufactured"
|
|
|
|
/datum/theft_objective/ai/check_special_completion(obj/item/aicard/C)
|
|
if(..())
|
|
for(var/mob/living/silicon/ai/A in C)
|
|
if(isAI(A) && A.stat != 2) //See if any AI's are alive inside that card.
|
|
return 1
|
|
return 0
|
|
|
|
/datum/theft_objective/defib
|
|
name = "the chief medical officer's advanced compact defibrillator"
|
|
typepath = /obj/item/defibrillator/compact/advanced
|
|
protected_jobs = list("Chief Medical Officer", "Paramedic")
|
|
location_override = "the Chief Medical Officer's Office"
|
|
|
|
/datum/theft_objective/magboots
|
|
name = "the chief engineer's advanced magnetic boots"
|
|
typepath = /obj/item/clothing/shoes/magboots/advance
|
|
protected_jobs = list("Chief Engineer")
|
|
location_override = "the Chief Engineer's Office"
|
|
|
|
/datum/theft_objective/blueprints
|
|
name = "the station blueprints"
|
|
typepath = /obj/item/areaeditor/blueprints/ce
|
|
protected_jobs = list("Chief Engineer")
|
|
altitems = list(/obj/item/photo)
|
|
location_override = "the Chief Engineer's Office"
|
|
|
|
/datum/theft_objective/blueprints/check_special_completion(obj/item/I)
|
|
if(istype(I, /obj/item/areaeditor/blueprints/ce))
|
|
return 1
|
|
if(istype(I, /obj/item/photo))
|
|
var/obj/item/photo/P = I
|
|
if(P.blueprints)
|
|
return 1
|
|
return 0
|
|
|
|
/datum/theft_objective/capmedal
|
|
name = "the medal of captaincy"
|
|
typepath = /obj/item/clothing/accessory/medal/gold/captain
|
|
protected_jobs = list("Captain")
|
|
location_override = "the Captain's Office"
|
|
|
|
/datum/theft_objective/nukedisc
|
|
name = "the nuclear authentication disk"
|
|
typepath = /obj/item/disk/nuclear
|
|
protected_jobs = list("Captain")
|
|
location_override = "the Captain's Office"
|
|
|
|
/datum/theft_objective/reactive
|
|
name = "any type of reactive armor"
|
|
typepath = /obj/item/clothing/suit/armor/reactive
|
|
protected_jobs = list("Research Director", "Scientist", "Roboticist") //no one with protolathe access, who will often be handed a core
|
|
location_override = "the Research Director's Office"
|
|
|
|
/datum/theft_objective/steal/documents
|
|
name = "any set of secret documents of any organization"
|
|
typepath = /obj/item/documents //Any set of secret documents. Doesn't have to be NT's
|
|
location_override = "the Vault"
|
|
|
|
/datum/theft_objective/hypospray
|
|
name = "the chief medical officer's advanced hypospray"
|
|
typepath = /obj/item/reagent_containers/hypospray/CMO
|
|
protected_jobs = list("Chief Medical Officer")
|
|
location_override = "the Chief Medical Officer's Office"
|
|
|
|
/datum/theft_objective/krav
|
|
name = "the warden's krav maga martial arts gloves"
|
|
typepath = /obj/item/clothing/gloves/color/black/krav_maga/sec
|
|
protected_jobs = list("Head Of Security", "Warden")
|
|
location_override = "the Warden's Office"
|
|
|
|
/datum/theft_objective/supermatter_sliver
|
|
name = "a supermatter sliver"
|
|
typepath = /obj/item/nuke_core/supermatter_sliver
|
|
protected_jobs = list("Chief Engineer", "Station Engineer", "Life Support Specialist") //Unlike other steal objectives, all jobs in the department have easy access, and would not be noticed at all stealing this
|
|
location_override = "Engineering. You can use the box and instructions provided to harvest the sliver"
|
|
special_equipment = /obj/item/storage/box/syndie_kit/supermatter
|
|
job_possession = FALSE //The CE / engineers / atmos techs do not carry around supermater slivers.
|
|
|
|
/datum/theft_objective/supermatter_sliver/check_objective_conditions() //If there is no supermatter, you don't get the objective. Yes, one could order it from cargo, but I don't think that is fair, especially if we get a map without a supermatter
|
|
return !isnull(GLOB.main_supermatter_engine)
|
|
|
|
/datum/theft_objective/plutonium_core
|
|
name = "the plutonium core from the station's nuclear device"
|
|
typepath = /obj/item/nuke_core/plutonium
|
|
location_override = "the Vault. You can use the box and instructions provided to remove the core, with some extra tools"
|
|
special_equipment = /obj/item/storage/box/syndie_kit/nuke
|
|
|
|
/datum/theft_objective/number
|
|
var/min=0
|
|
var/max=0
|
|
var/step=1
|
|
|
|
var/required_amount=0
|
|
|
|
/datum/theft_objective/number/New()
|
|
if(min==max)
|
|
required_amount=min
|
|
else
|
|
var/lower=min/step
|
|
var/upper=min/step
|
|
required_amount=rand(lower,upper)*step
|
|
name = "[required_amount] [name]"
|
|
|
|
/datum/theft_objective/number/check_completion(datum/mind/owner)
|
|
if(!owner.current)
|
|
return 0
|
|
if(!isliving(owner.current))
|
|
return 0
|
|
var/list/all_items = owner.current.get_contents()
|
|
var/found_amount=0.0
|
|
for(var/obj/item/I in all_items)
|
|
if(istype(I, typepath))
|
|
found_amount += getAmountStolen(I)
|
|
return found_amount >= required_amount
|
|
|
|
/datum/theft_objective/number/proc/getAmountStolen(obj/item/I)
|
|
return I:amount
|
|
|
|
/datum/theft_objective/unique
|
|
flags = THEFT_FLAG_UNIQUE
|
|
|
|
/datum/theft_objective/unique/docs_red
|
|
name = "the \"Red\" secret documents"
|
|
typepath = /obj/item/documents/syndicate/red
|
|
location_override = "a Syndicate agent's possession"
|
|
|
|
/datum/theft_objective/unique/docs_blue
|
|
name = "the \"Blue\" secret documents"
|
|
typepath = /obj/item/documents/syndicate/blue
|
|
location_override = "a Syndicate agent's possession"
|