mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 15:14:27 +01:00
Revert "More adjustments. Implemented gas exuding/consumption (currently unused). Implemented cuttings, fixed some issues."
This reverts commit 95b069b7d4.
This commit is contained in:
@@ -119,7 +119,7 @@
|
||||
/obj/machinery/portable_atmospherics/hydroponics/bullet_act(var/obj/item/projectile/Proj)
|
||||
|
||||
//Don't act on seeds like dionaea that shouldn't change.
|
||||
if(seed && seed.immutable > 0)
|
||||
if(seed && seed.immutable)
|
||||
return
|
||||
|
||||
//Override for somatoray projectiles.
|
||||
@@ -169,11 +169,6 @@
|
||||
// Advance plant age.
|
||||
if(prob(25)) age += 1 * HYDRO_SPEED_MULTIPLIER
|
||||
|
||||
//Highly mutable plants have a chance of mutating every tick.
|
||||
if(seed.immutable == -1)
|
||||
var/mut_prob = rand(1,100)
|
||||
if(mut_prob <= 5) mutate(mut_prob == 1 ? 2 : 1)
|
||||
|
||||
// Maintain tray nutrient and water levels.
|
||||
if(seed.nutrient_consumption > 0 && nutrilevel > 0 && prob(25))
|
||||
nutrilevel -= max(0,seed.nutrient_consumption * HYDRO_SPEED_MULTIPLIER)
|
||||
@@ -201,23 +196,10 @@
|
||||
// If atmos input is not there, grab from turf.
|
||||
if(!environment)
|
||||
if(istype(T))
|
||||
environment = T.air
|
||||
if(!environment)
|
||||
environment = T.return_air()
|
||||
if(!environment) //We're in a crate or nullspace, bail out.
|
||||
return
|
||||
|
||||
// Handle gas consumption.
|
||||
if(seed.consume_gasses && seed.consume_gasses.len)
|
||||
var/missing_gas = 0
|
||||
for(var/gas in seed.consume_gasses)
|
||||
if(environment && environment.gas && environment.gas[gas] && \
|
||||
environment.gas[gas] >= seed.consume_gasses[gas])
|
||||
environment.adjust_gas(gas,-seed.consume_gasses[gas],1)
|
||||
else
|
||||
missing_gas++
|
||||
|
||||
if(missing_gas > 0)
|
||||
health -= missing_gas * HYDRO_SPEED_MULTIPLIER
|
||||
|
||||
// Process it.
|
||||
var/pressure = environment.return_pressure()
|
||||
if(pressure < seed.lowkpa_tolerance || pressure > seed.highkpa_tolerance)
|
||||
@@ -226,13 +208,6 @@
|
||||
if(abs(environment.temperature - seed.ideal_heat) > seed.heat_tolerance)
|
||||
health -= healthmod
|
||||
|
||||
// Handle gas production.
|
||||
if(seed.exude_gasses && seed.exude_gasses.len)
|
||||
var/datum/gas_mixture/exuded = new
|
||||
for(var/gas in seed.exude_gasses)
|
||||
exuded.adjust_gas(gas,seed.exude_gasses[gas*seed.potency],1) //This will need adjustment since it produces moles.
|
||||
loc.assume_air(exuded)
|
||||
|
||||
// Handle light requirements.
|
||||
var/area/A = T.loc
|
||||
if(A)
|
||||
@@ -282,14 +257,13 @@
|
||||
pestlevel = 0
|
||||
|
||||
// If enough time (in cycles, not ticks) has passed since the plant was harvested, we're ready to harvest again.
|
||||
else if(seed.products && seed.products.len && age > seed.production && \
|
||||
(age - lastproduce) > seed.production && (!harvest && !dead))
|
||||
|
||||
else if(age > seed.production && (age - lastproduce) > seed.production && (!harvest && !dead))
|
||||
harvest = 1
|
||||
lastproduce = age
|
||||
|
||||
if(prob(5)) // On each tick, there's a 5 percent chance the pest population will increase
|
||||
pestlevel += 1 * HYDRO_SPEED_MULTIPLIER
|
||||
|
||||
check_level_sanity()
|
||||
update_icon()
|
||||
return
|
||||
@@ -783,30 +757,7 @@
|
||||
usr << "[src] is \red filled with weeds!"
|
||||
if(pestlevel >= 5)
|
||||
usr << "[src] is \red filled with tiny worms!"
|
||||
if(!istype(src,/obj/machinery/portable_atmospherics/hydroponics/soil))
|
||||
|
||||
var/turf/T = loc
|
||||
var/datum/gas_mixture/environment
|
||||
|
||||
if(closed_system && (connected_port || holding))
|
||||
environment = air_contents
|
||||
|
||||
if(!environment)
|
||||
if(istype(T))
|
||||
environment = T.return_air()
|
||||
|
||||
if(!environment) //We're in a crate or nullspace, bail out.
|
||||
return
|
||||
|
||||
var/area/A = T.loc
|
||||
var/light_available
|
||||
if(A)
|
||||
if(A.lighting_use_dynamic)
|
||||
light_available = max(0,min(10,T.lighting_lumcount)-5)
|
||||
else
|
||||
light_available = 5
|
||||
|
||||
usr << "The tray's sensor suite is reporting a light level of [light_available] lumens and a temperature of [environment.temperature]K."
|
||||
usr << text ("")
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/verb/close_lid()
|
||||
set name = "Toggle Tray Lid"
|
||||
|
||||
@@ -71,9 +71,7 @@
|
||||
if(grown_seed.harvest_repeat)
|
||||
dat += "This plant can be harvested repeatedly.<br>"
|
||||
|
||||
if(grown_seed.immutable == -1)
|
||||
dat += "This plant is highly mutable.<br>"
|
||||
else if(grown_seed.immutable > 0)
|
||||
if(grown_seed.immutable)
|
||||
dat += "This plant does not possess genetics that are alterable.<br>"
|
||||
|
||||
if(grown_seed.products && grown_seed.products.len)
|
||||
|
||||
@@ -83,7 +83,7 @@ proc/populate_seed_list()
|
||||
var/spread = 0 // 0 limits plant to tray, 1 = creepers, 2 = vines.
|
||||
var/carnivorous = 0 // 0 = none, 1 = eat pests in tray, 2 = eat living things (when a vine).
|
||||
var/parasite = 0 // 0 = no, 1 = gain health from weed level.
|
||||
var/immutable = 0 // If set, plant will never mutate. If -1, plant has a chance of mutating during process().
|
||||
var/immutable // If set, plant will never mutate.
|
||||
var/alter_temp // If set, the plant will periodically alter local temp by this amount.
|
||||
|
||||
// Cosmetics.
|
||||
@@ -99,13 +99,13 @@ proc/populate_seed_list()
|
||||
|
||||
//Returns a key corresponding to an entry in the global seed list.
|
||||
/datum/seed/proc/get_mutant_variant()
|
||||
if(!mutants || !mutants.len || immutable > 0) return 0
|
||||
if(!mutants || !mutants.len || immutable) return 0
|
||||
return pick(mutants)
|
||||
|
||||
//Mutates the plant overall (randomly).
|
||||
/datum/seed/proc/mutate(var/degree,var/turf/source_turf)
|
||||
|
||||
if(!degree || immutable > 0) return
|
||||
if(!degree || immutable) return
|
||||
|
||||
source_turf.visible_message("\blue \The [display_name] quivers!")
|
||||
|
||||
@@ -179,7 +179,7 @@ proc/populate_seed_list()
|
||||
//Mutates a specific trait/set of traits.
|
||||
/datum/seed/proc/apply_gene(var/datum/plantgene/gene)
|
||||
|
||||
if(!gene || !gene.values || immutable > 0) return
|
||||
if(!gene || !gene.values || immutable) return
|
||||
|
||||
switch(gene.genetype)
|
||||
|
||||
@@ -209,12 +209,11 @@ proc/populate_seed_list()
|
||||
else
|
||||
chems[rid] = gene.values[2][rid]
|
||||
|
||||
var/list/new_gasses = gene.values[3]
|
||||
if(istype(new_gasses))
|
||||
if(!exude_gasses) exude_gasses = list()
|
||||
exude_gasses |= new_gasses
|
||||
for(var/gas in exude_gasses)
|
||||
exude_gasses[gas] = max(1,round(exude_gasses[gas]*0.8))
|
||||
//TODO.
|
||||
//if(!exude_gasses) exude_gasses = list()
|
||||
//exude_gasses |= gene.values[3]
|
||||
//for(var/gas in exude_gasses)
|
||||
// exude_gasses[gas] = max(1,round(exude_gasses[gas]/2))
|
||||
|
||||
alter_temp = gene.values[4]
|
||||
potency = gene.values[5]
|
||||
@@ -349,6 +348,7 @@ proc/populate_seed_list()
|
||||
if(!user)
|
||||
return
|
||||
|
||||
//TODO: check for failing to harvest.
|
||||
var/got_product
|
||||
if(!isnull(products) && products.len && yield > 0)
|
||||
got_product = 1
|
||||
@@ -389,6 +389,7 @@ proc/populate_seed_list()
|
||||
handle_living_product(product)
|
||||
|
||||
// Make sure the product is inheriting the correct seed type reference.
|
||||
// TODO: can this be collapsed into one type check since they share vars?
|
||||
else if(istype(product,/obj/item/weapon/reagent_containers/food/snacks/grown))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/grown/current_product = product
|
||||
current_product.plantname = name
|
||||
@@ -402,7 +403,7 @@ proc/populate_seed_list()
|
||||
// be put into the global datum list until the product is harvested, though.
|
||||
/datum/seed/proc/diverge(var/modified)
|
||||
|
||||
if(immutable > 0) return
|
||||
if(immutable) return
|
||||
|
||||
//Set up some basic information.
|
||||
var/datum/seed/new_seed = new
|
||||
@@ -1169,7 +1170,6 @@ proc/populate_seed_list()
|
||||
yield = -1
|
||||
potency = -1
|
||||
growth_stages = 4
|
||||
immutable = -1
|
||||
|
||||
/datum/seed/whitebeets
|
||||
name = "whitebeet"
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
user << "There is already a seed loaded."
|
||||
|
||||
var/obj/item/seeds/S =W
|
||||
if(S.seed && S.seed.immutable > 0)
|
||||
if(S.seed && S.seed.immutable)
|
||||
user << "That seed is not compatible with our genetics technology."
|
||||
else
|
||||
user.drop_item(W)
|
||||
|
||||
Reference in New Issue
Block a user