Bevy of newhydro fixes.

Conflicts:
	code/game/machinery/vending.dm
	code/modules/projectiles/guns/energy/special.dm
	icons/obj/hydroponics.dmi
This commit is contained in:
Zuhayr
2014-07-29 00:20:38 +09:30
committed by ZomgPonies
parent 21a9d92930
commit d1059b488b
8 changed files with 111 additions and 59 deletions
+17 -14
View File
@@ -58,9 +58,9 @@ proc/populate_seed_list()
//Tolerances.
var/requires_nutrients = 1 // The plant can starve.
var/nutrient_consumption = 0.1 // Plant eats this much per tick.
var/requires_water = 1 // The plant can become dehydrated.
var/water_consumption = 1 // Plant drinks this much per tick.
var/nutrient_consumption = 0.25 // Plant eats this much per tick.
var/requires_water = 3 // The plant can become dehydrated.
var/water_consumption = 1 // Plant drinks this much per tick.
var/ideal_heat = 293 // Preferred temperature in Kelvin.
var/heat_tolerance = 20 // Departure from ideal that is survivable.
var/ideal_light = 8 // Preferred light level in luminosity.
@@ -104,9 +104,12 @@ proc/populate_seed_list()
//Mutates the plant overall (randomly).
/datum/seed/proc/mutate(var/degree,var/turf/source_turf)
world << "Seed mutation proc called with [degree]."
if(!degree || immutable) return
source_turf.visible_message("[display_name] quivers uneasily!")
source_turf.visible_message("\blue \The [display_name] quivers!")
//This looks like shit, but it's a lot easier to read/change this way.
var/total_mutations = rand(1,1+degree)
@@ -115,7 +118,7 @@ proc/populate_seed_list()
if(0) //Plant cancer!
lifespan = max(0,lifespan-rand(1,5))
endurance = max(0,endurance-rand(10,20))
source_turf.visible_message("[display_name] withers rapidly!")
source_turf.visible_message("\red \The [display_name] withers rapidly!")
if(1)
nutrient_consumption = max(0, min(5, nutrient_consumption + rand(-(degree*0.1),(degree*0.1))))
water_consumption = max(0, min(50, water_consumption + rand(-degree,degree)))
@@ -134,7 +137,7 @@ proc/populate_seed_list()
if(prob(degree*5))
carnivorous = max(0, min(2, carnivorous + rand(-degree,degree)))
if(carnivorous)
source_turf.visible_message("[display_name] shudders hungrily.")
source_turf.visible_message("\blue \The [display_name] shudders hungrily.")
if(6)
weed_tolerance = max(0, min(10, weed_tolerance + (rand(-2,2) * degree)))
if(prob(degree*5)) parasite = !parasite
@@ -148,7 +151,7 @@ proc/populate_seed_list()
potency = max(0, min(200, potency + (rand(-20,20) * degree)))
if(prob(degree*5))
spread = max(0, min(2, spread + rand(-1,1)))
source_turf.visible_message("[display_name] spasms visibly, shifting in the tray.")
source_turf.visible_message("\blue \The [display_name] spasms visibly, shifting in the tray.")
if(9)
maturation = max(0, min(30, maturation + (rand(-1,1) * degree)))
if(prob(degree*5))
@@ -157,22 +160,22 @@ proc/populate_seed_list()
if(prob(degree*2))
biolum = !biolum
if(biolum)
source_turf.visible_message("[display_name] begins to glow!")
source_turf.visible_message("\blue \The [display_name] begins to glow!")
if(prob(degree*2))
biolum_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
source_turf.visible_message("[display_name]'s glow <font=[biolum_colour]>changes colour</font>!")
source_turf.visible_message("\blue \The [display_name]'s glow <font=[biolum_colour]>changes colour</font>!")
else
source_turf.visible_message("[display_name]'s glow dims...")
source_turf.visible_message("\blue \The [display_name]'s glow dims...")
if(11)
if(prob(degree*2))
flowers = !flowers
if(flowers)
source_turf.visible_message("[display_name] sprouts a bevy of flowers!")
source_turf.visible_message("\blue \The [display_name] sprouts a bevy of flowers!")
if(prob(degree*2))
flower_colour = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
source_turf.visible_message("[display_name]'s flowers <font=[flower_colour]>changes colour</font>!")
source_turf.visible_message("\blue \The [display_name]'s flowers <font=[flower_colour]>changes colour</font>!")
else
source_turf.visible_message("[display_name]'s flowers wither and fall off.")
source_turf.visible_message("\blue \The [display_name]'s flowers wither and fall off.")
return
//Mutates a specific trait/set of traits.
@@ -368,7 +371,7 @@ proc/populate_seed_list()
yield_mod = 0
total_yield = yield
else
total_yield = max(1,rand(1,((yield_mod+yield))))
total_yield = max(1,rand(yield_mod,yield_mod+yield))
currently_querying = list()
for(var/i = 0;i<total_yield;i++)
+12 -2
View File
@@ -3,9 +3,16 @@
desc = "A small disk used for carrying data on plant genetics."
icon = 'icons/obj/hydroponics.dmi'
icon_state = "disk"
w_class = 1.0
var/list/genes = list()
var/genesource = "unknown"
/obj/item/weapon/disk/botany/New()
..()
pixel_x = rand(-5,5)
pixel_y = rand(-5,5)
/obj/item/weapon/disk/botany/attack_self(var/mob/user as mob)
if(genes.len)
var/choice = alert(user, "Are you sure you want to wipe the disk?", "Xenobotany Data", "No", "Yes")
@@ -24,6 +31,7 @@
..()
for(var/i = 0;i<7;i++)
new /obj/item/weapon/disk/botany(src)
/obj/machinery/botany
icon = 'icons/obj/hydroponics.dmi'
icon_state = "hydrotray3"
@@ -181,7 +189,7 @@
if(seed.seed.name == "new line" || isnull(seed_types[seed.seed.name]))
seed.seed.uid = seed_types.len + 1
seed.seed.name = "[uid]"
seed.seed.name = "[seed.seed.uid]"
seed_types[seed.seed.name] = seed.seed
seed.update_seed()
@@ -215,6 +223,8 @@
if(seed && seed.seed)
genetics = seed.seed
degradation = 0
del(seed)
seed = null
@@ -233,7 +243,7 @@
if(!genetics.roundstart)
loaded_disk.genesource += " (variety #[genetics.uid])"
loaded_disk.name += " ([gene_tag_masks[href_list["get_gene"]]])"
loaded_disk.name += " ([gene_tag_masks[href_list["get_gene"]]], #[genetics.uid])"
loaded_disk.desc += " The label reads \'gene [gene_tag_masks[href_list["get_gene"]]], sampled from [genetics.display_name]\'."
eject_disk = 1
+2 -2
View File
@@ -295,8 +295,8 @@
var/limited_growth = 0
/obj/effect/plant_controller/creeper
collapse_limit = 50
slowdown_limit = 5
collapse_limit = 6
slowdown_limit = 3
limited_growth = 1
/obj/effect/plant_controller/New()
+49 -31
View File
@@ -38,42 +38,52 @@
var/charge_tick = 0
var/mode = 0 //0 = mutate, 1 = yield boost
New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/floragun/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/energy/floragun/Del()
processing_objects.Remove(src)
..()
/obj/item/weapon/gun/energy/floragun/process()
charge_tick++
if(charge_tick < 4) return 0
charge_tick = 0
if(!power_supply) return 0
power_supply.give(1000)
update_icon()
return 1
/obj/item/weapon/gun/energy/floragun/attack_self(mob/living/user as mob)
switch(mode)
if(0)
mode = 1
charge_cost = 1000
user << "\red The [src.name] is now set to increase yield."
projectile_type = "/obj/item/projectile/energy/florayield"
modifystate = "florayield"
if(1)
mode = 0
charge_cost = 1000
user << "\red The [src.name] is now set to induce mutations."
projectile_type = "/obj/item/projectile/energy/floramut"
modifystate = "floramut"
update_icon()
return
Destroy()
processing_objects.Remove(src)
..()
/obj/item/weapon/gun/energy/floragun/afterattack(obj/target, mob/user, flag)
process()
charge_tick++
if(charge_tick < 4) return 0
charge_tick = 0
if(!power_supply) return 0
power_supply.give(1000)
update_icon()
return 1
attack_self(mob/living/user as mob)
switch(mode)
if(0)
mode = 1
charge_cost = 1000
user << "\red The [src.name] is now set to increase yield."
projectile_type = "/obj/item/projectile/energy/florayield"
modifystate = "florayield"
if(1)
mode = 0
charge_cost = 1000
user << "\red The [src.name] is now set to induce mutations."
projectile_type = "/obj/item/projectile/energy/floramut"
modifystate = "floramut"
update_icon()
if(flag && istype(target,/obj/machinery/portable_atmospherics/hydroponics))
var/obj/machinery/portable_atmospherics/hydroponics/tray = target
if(process_chambered())
user.visible_message("\red <b> \The [user] fires \the [src] into \the [tray]!</b>")
Fire(target,user)
return
..()
/obj/item/weapon/gun/energy/meteorgun
name = "meteor gun"
desc = "For the love of god, make sure you're aiming this the right way!"
@@ -176,6 +186,14 @@ obj/item/weapon/gun/energy/staff/focus
/obj/item/weapon/gun/energy/sniperrifle/dropped(mob/user)
user.client.view = world.view
/*
This is called from
modules/mob/mob_movement.dm if you move you will be zoomed out
modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
*/
/obj/item/weapon/gun/energy/sniperrifle/verb/zoom()
set category = "Object"
set name = "Use Sniper Scope"