diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index cdc4314c6c6..e6ea3ad1e40 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -217,17 +217,24 @@ return //Override for somatoray projectiles. - if(istype(Proj ,/obj/item/projectile/energy/floramut)&& prob(20)) - if(istype(Proj, /obj/item/projectile/energy/floramut/gene)) - var/obj/item/projectile/energy/floramut/gene/G = Proj - if(seed) - seed = seed.diverge_mutate_gene(G.gene, get_turf(loc)) //get_turf just in case it's not in a turf. - else - mutate(1) + var/mutchance = 15 + if(istype(Proj ,/obj/item/projectile/energy/floramut)) + var/obj/item/projectile/energy/floramut/GM = Proj + mutchance *= GM.lasermod + if(prob(mutchance)) + if(istype(Proj, /obj/item/projectile/energy/floramut/gene)) + var/obj/item/projectile/energy/floramut/gene/G = Proj + if(seed) + seed = seed.diverge_mutate_gene(G.gene, get_turf(loc)) //get_turf just in case it's not in a turf. + else + mutate(1) + return + else if(istype(Proj ,/obj/item/projectile/energy/florayield)) + var/obj/item/projectile/energy/floramut/GY = Proj + mutchance *= GY.lasermod + if(prob(mutchance)) + yield_mod = min(10,yield_mod+rand(1,2)) return - else if(istype(Proj ,/obj/item/projectile/energy/florayield) && prob(20)) - yield_mod = min(10,yield_mod+rand(1,2)) - return ..() diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index bd2d3d2d012..0bfafac81fe 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -120,8 +120,16 @@ /obj/item/weapon/gun/energy/floragun/consume_next_projectile() . = ..() var/obj/item/projectile/energy/floramut/gene/G = . + var/obj/item/projectile/energy/florayield/GY = . + var/obj/item/projectile/energy/floramut/GM = . + if(istype(G)) G.gene = gene + G.lasermod = emitter.rating + else if(istype(GY)) + GY.lasermod = emitter.rating + else if(istype(GM)) + GM.lasermod = emitter.rating /obj/item/weapon/gun/energy/meteorgun name = "meteor gun" diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index ee75074cc73..1d85c67f5dc 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -138,7 +138,7 @@ light_power = 0.5 light_color = "#33CC00" impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser - + var/lasermod = 0 combustion = FALSE /obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0) @@ -195,6 +195,7 @@ light_power = 0.5 light_color = "#FFFFFF" impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser + var/lasermod = 0 /obj/item/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target