mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 19:14:15 +01:00
75e7ef6def
This PR aims to clean or bring up to date portions of code about dna, the dna console and mutations. This includes taking care of or removing some of the awful choices like the pratically useless `datum/mutation/human` pathing, or the class variable, in favor of using sources to avoid potential issues with extraneous sources of a mutation. The files changed are over a hundred just because I removed the `datum/mutation/human` path, but the actual bulk of the code is mainly shared between the datum/dna.dm, _mutations.dm and dna_console.dm. Mutation shitcode is hurting my future plans for infusions a little. Also it's a much needed refactor. Drafted 'till I'm sure it works without issues. 🆑 refactor: Refactored mutation code backend. Report any issue. /🆑
144 lines
5.8 KiB
Plaintext
144 lines
5.8 KiB
Plaintext
|
|
/datum/bounty/item/science/relic
|
|
name = "E.X.P.E.R.I-MENTORially Discovered Devices"
|
|
description = "Psst, hey. Don't tell the assistants, but we're undercutting them on the value of those 'strange objects' they've been finding. Fish one up and send us a discovered one by using the E.X.P.E.R.I-MENTOR."
|
|
reward = CARGO_CRATE_VALUE * 8
|
|
wanted_types = list(/obj/item/relic = TRUE)
|
|
|
|
/datum/bounty/item/science/relic/applies_to(obj/O)
|
|
if(!..())
|
|
return FALSE
|
|
var/obj/item/relic/experiment = O
|
|
if(experiment.activated)
|
|
return TRUE
|
|
return
|
|
|
|
/datum/bounty/item/science/bepis_disc
|
|
name = "Reformatted Tech Disk"
|
|
description = "It turns out the diskettes the BEPIS prints experimental nodes on are extremely space-efficient. Send us one of your spares when you're done with it."
|
|
reward = CARGO_CRATE_VALUE * 8
|
|
wanted_types = list(
|
|
/obj/item/disk/design_disk/bepis/remove_tech = TRUE,
|
|
/obj/item/disk/design_disk/bepis = TRUE,
|
|
)
|
|
|
|
/datum/bounty/item/science/genetics
|
|
name = "Genetics Disability Mutator"
|
|
description = "Understanding the humanoid genome is the first step to curing many spaceborn genetic defects, and exceeding our basest limits."
|
|
reward = CARGO_CRATE_VALUE * 2
|
|
wanted_types = list(/obj/item/dnainjector = TRUE)
|
|
///What's the instability
|
|
var/desired_instability = 0
|
|
|
|
/datum/bounty/item/science/genetics/New()
|
|
. = ..()
|
|
desired_instability = rand(10,40)
|
|
reward += desired_instability * (CARGO_CRATE_VALUE * 0.2)
|
|
description += " We want a DNA injector whose total instability is higher than [desired_instability] points."
|
|
|
|
/datum/bounty/item/science/genetics/applies_to(obj/O)
|
|
if(!..())
|
|
return FALSE
|
|
var/obj/item/dnainjector/mutator = O
|
|
if(mutator.used)
|
|
return FALSE
|
|
var/inst_total = 0
|
|
for(var/pot_mut in mutator.add_mutations)
|
|
var/datum/mutation/mutation = pot_mut
|
|
if(initial(mutation.quality) != POSITIVE)
|
|
continue
|
|
inst_total += mutation.instability
|
|
if(inst_total >= desired_instability)
|
|
return TRUE
|
|
return FALSE
|
|
|
|
//******Modular Computer Bounties******
|
|
/datum/bounty/item/science/ntnet
|
|
name = "Modular Tablets"
|
|
description = "Turns out that NTNet wasn't actually a fad after all, who knew. Send some fully functional PDAs to help get us up to speed on the latest technology."
|
|
reward = CARGO_CRATE_VALUE * 6
|
|
required_count = 4
|
|
wanted_types = list(/obj/item/modular_computer/pda = TRUE)
|
|
var/require_powered = TRUE
|
|
|
|
/datum/bounty/item/science/ntnet/applies_to(obj/O)
|
|
if(!..())
|
|
return FALSE
|
|
if(require_powered)
|
|
var/obj/item/modular_computer/computer = O
|
|
if(!istype(computer) || !computer.enabled)
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/bounty/item/science/ntnet/laptops
|
|
name = "Modular Laptops"
|
|
description = "Central command brass need something more powerful than a tablet, but more portable than a console. Help these old fogeys out by shipping us some working laptops. Send them turned on."
|
|
reward = CARGO_CRATE_VALUE * 3
|
|
required_count = 2
|
|
wanted_types = list(/obj/item/modular_computer/laptop = TRUE)
|
|
|
|
/datum/bounty/item/science/ntnet/console
|
|
name = "Modular Computer Console"
|
|
description = "Our big data division needs more powerful hardware to play 'Outbomb Cuban Pe-', err, to closely monitor threats in your sector. Send us a working modular computer console."
|
|
reward = CARGO_CRATE_VALUE * 6
|
|
required_count = 1
|
|
wanted_types = list(/obj/machinery/modular_computer = TRUE)
|
|
require_powered = FALSE
|
|
|
|
/datum/bounty/item/science/ntnet/console/applies_to(obj/O)
|
|
if(!..())
|
|
return FALSE
|
|
var/obj/machinery/modular_computer/computer = O
|
|
if(!istype(computer) || !computer.cpu)
|
|
return FALSE
|
|
return TRUE
|
|
|
|
|
|
//******Anomaly Cores******
|
|
/datum/bounty/item/science/ref_anomaly
|
|
name = "Refined Bluespace Core"
|
|
description = "We need a bluespace core to assemble a bag of holding. Ship us one, please."
|
|
reward = CARGO_CRATE_VALUE * 20
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/bluespace = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/can_get(obj/O)
|
|
var/anomaly_type = wanted_types[1]
|
|
if(SSresearch.created_anomaly_types[anomaly_type] >= SSresearch.anomaly_hard_limit_by_type[anomaly_type])
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/bounty/item/science/ref_anomaly/flux
|
|
name = "Refined Flux Core"
|
|
description = "We're trying to make a tesla cannon to handle some moths. Ship us a flux core, please."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/flux = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/pyro
|
|
name = "Refined Pyroclastic Core"
|
|
description = "We need to study a refined pyroclastic core, please send one."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/pyro = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/grav
|
|
name = "Refined Gravitational Core"
|
|
description = "Central R&D is trying to discover a way to make mechs float, send over a gravitational core."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/grav = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/vortex
|
|
name = "Refined Vortex Core"
|
|
description = "We're going to throw a vortex core into a wormhole to see what happens. Send one."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/vortex = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/hallucination
|
|
name = "Refined Hallucination Core"
|
|
description = "We're making a better version of space drugs, send us a core to help us replicate its effects."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/hallucination = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/bioscrambler
|
|
name = "Refined Bioscrambler Core"
|
|
description = "Our janitor lizard lost all their limbs, send us a bioscrambler core to replace them."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/bioscrambler = TRUE)
|
|
|
|
/datum/bounty/item/science/ref_anomaly/dimensional
|
|
name = "Refined Dimensional Core"
|
|
description = "We're trying to save money on our annual renovations at CentCom. Send us a dimensional core."
|
|
wanted_types = list(/obj/item/assembly/signaler/anomaly/dimensional = TRUE)
|