diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm index e51b4825cc0..6bdf71c5254 100644 --- a/code/game/machinery/atmoalter/portable_atmospherics.dm +++ b/code/game/machinery/atmoalter/portable_atmospherics.dm @@ -15,9 +15,11 @@ /obj/machinery/portable_atmospherics/New() ..() - - air_contents.volume = volume - air_contents.temperature = T20C + //VOREStation Edit - Fix runtime + if(air_contents) + air_contents.volume = volume + air_contents.temperature = T20C + //VOREStation Edit End return 1 diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 54e9b58cbf5..655aa012a01 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -190,7 +190,12 @@ var/clr if(get_trait(TRAIT_BIOLUM_COLOUR)) clr = get_trait(TRAIT_BIOLUM_COLOUR) - splat.set_light(get_trait(TRAIT_BIOLUM), l_color = clr) + //VOREStation Edit Start - Tons of super bright super long range lights everywhere is annoying and laggy, so let's limit it a bit. + var/blight = get_trait(TRAIT_BIOLUM) + if(blight >= 5) + blight = 5 + splat.set_light(blight, 0.5, l_color = clr) + //VOREStation Edit End var/flesh_colour = get_trait(TRAIT_FLESH_COLOUR) if(!flesh_colour) flesh_colour = get_trait(TRAIT_PRODUCT_COLOUR) if(flesh_colour) splat.color = get_trait(TRAIT_PRODUCT_COLOUR) @@ -836,8 +841,12 @@ var/clr if(get_trait(TRAIT_BIOLUM_COLOUR)) clr = get_trait(TRAIT_BIOLUM_COLOUR) - product.set_light(get_trait(TRAIT_BIOLUM), l_color = clr) - + //VOREStation Edit Start - Tons of super bright super long range lights everywhere is annoying and laggy, so let's limit it a bit. + var/blight = get_trait(TRAIT_BIOLUM) + if(blight >= 5) + blight = 5 + product.set_light(blight, 0.5, l_color = clr) + //VOREStation Edit End if(get_trait(TRAIT_STINGS)) product.force = 1 diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm index 393089ebff0..e820af130ed 100644 --- a/code/modules/hydroponics/spreading/spreading.dm +++ b/code/modules/hydroponics/spreading/spreading.dm @@ -77,6 +77,10 @@ spread_chance = 0 /obj/effect/plant/New(var/newloc, var/datum/seed/newseed, var/obj/effect/plant/newparent) + //VOREStation Edit Start + if(istype(loc, /turf/simulated/open)) + qdel(src) + //VOREStation Edit End ..() if(!newparent) @@ -159,7 +163,12 @@ var/clr if(seed.get_trait(TRAIT_BIOLUM_COLOUR)) clr = seed.get_trait(TRAIT_BIOLUM_COLOUR) - set_light(1+round(seed.get_trait(TRAIT_POTENCY)/20), l_color = clr) + //VOREStation Edit Start - Tons of super bright super long range lights everywhere is annoying and laggy, so let's limit it a bit. + var/blight = 1+round(seed.get_trait(TRAIT_POTENCY)/20) + if(blight >= 5) + blight = 5 + set_light(blight, 0.5, l_color = clr) + //VOREStation Edit End return else set_light(0) diff --git a/code/modules/hydroponics/spreading/spreading_growth.dm b/code/modules/hydroponics/spreading/spreading_growth.dm index eebcbc93892..f85209884b0 100644 --- a/code/modules/hydroponics/spreading/spreading_growth.dm +++ b/code/modules/hydroponics/spreading/spreading_growth.dm @@ -4,8 +4,10 @@ var/list/cardinal_neighbors = list() for(var/check_dir in cardinal) var/turf/simulated/T = get_step(get_turf(src), check_dir) - if(istype(T)) + //VOREStation Edit Start - Vines can go up/down stairs, but don't register that they have done this, so do so infinitely, which is annoying and laggy. + if(istype(T) && !istype(check_dir, /turf/simulated/open)) //Let's not have them go on open space where you can't really get to them. cardinal_neighbors |= T + //VOREStation Edit End return cardinal_neighbors /obj/effect/plant/proc/update_neighbors() @@ -114,6 +116,10 @@ //spreading vines aren't created on their final turf. //Instead, they are created at their parent and then move to their destination. /obj/effect/plant/proc/spread_to(turf/target_turf) + //VOREStation Edit Start - Vines can go up/down stairs, but don't register that they have done this, so do so infinitely, which is annoying and laggy. + if(istype(target_turf, /turf/simulated/open)) + return + //VOREStation Edit End var/obj/effect/plant/child = new(get_turf(src),seed,parent) spawn(1) // This should do a little bit of animation. diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index f396b00dbf3..4a9e37e30e7 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -41,6 +41,10 @@ icon_state = "blank" /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/New(var/newloc,var/datum/seed/newseed) + //VOREStation Addition Start + if(istype(loc, /turf/simulated/open) || istype(loc, /turf/space)) + qdel(src) + //VOREStation Addition End ..() seed = newseed dead = 0 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm b/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm index 97f5e636f5b..be4e903681e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/softdog.dm @@ -263,4 +263,53 @@ visible_message("[src] stops playing dead.", runemessage = "[src] stops playing dead") else M.visible_message("The petting was interrupted!!!", runemessage = "The petting was interrupted") - return \ No newline at end of file + return + +/mob/living/simple_mob/vore/woof/hostile/aweful + maxHealth = 100 + health = 100 + var/killswitch = FALSE + + +/mob/living/simple_mob/vore/woof/hostile/aweful/Initialize() + . = ..() + var/thismany = (rand(25,500)) / 100 + resize(thismany, animate = FALSE, uncapped = TRUE, ignore_prefs = TRUE) + +/mob/living/simple_mob/vore/woof/hostile/aweful/death() + . = ..() + if(killswitch) + visible_message("\The [src] evaporates into nothing...") + qdel(src) + return + var/thismany = rand(0,3) + var/list/possiblewoofs = list(/mob/living/simple_mob/vore/woof/hostile/aweful/melee, /mob/living/simple_mob/vore/woof/hostile/aweful/ranged) + if(thismany == 0) + visible_message("\The [src] evaporates into nothing...") + if(thismany >= 1) + var/thiswoof = pick(possiblewoofs) + new thiswoof(loc, src) + visible_message("Another [src] appears!") + if(thismany >= 2) + var/thiswoof = pick(possiblewoofs) + new thiswoof(loc, src) + visible_message("Another [src] appears!") + if(thismany >= 3) + var/thiswoof = pick(possiblewoofs) + new thiswoof(loc, src) + visible_message("Another [src] appears!") + qdel(src) + +/mob/living/simple_mob/vore/woof/hostile/aweful/melee + + movement_cooldown = 0 + + ai_holder_type = /datum/ai_holder/simple_mob/woof/hostile + +/mob/living/simple_mob/vore/woof/hostile/aweful/ranged + movement_cooldown = 0 + + ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/woof + + projectiletype = /obj/item/projectile/awoo_missile + projectilesound = 'sound/voice/long_awoo.ogg' diff --git a/code/modules/multiz/stairs.dm b/code/modules/multiz/stairs.dm index 5ce4b2ec264..59e6374895c 100644 --- a/code/modules/multiz/stairs.dm +++ b/code/modules/multiz/stairs.dm @@ -148,10 +148,12 @@ // Or if we fell down the openspace if((top in oldloc) || oldloc == GetAbove(src)) return - + //VOREStation Addition Start + if(istype(AM, /obj/effect/plant)) + return + //VOREStation Addition End if(isobserver(AM)) // Ghosts have their own methods for going up and down return - if(AM.pulledby) // Animating the movement of pulled things is handled when the puller goes up the stairs return @@ -199,7 +201,10 @@ /obj/structure/stairs/bottom/use_stairs_instant(var/atom/movable/AM) if(isobserver(AM)) // Ghosts have their own methods for going up and down return - + //VOREStation Addition Start + if(istype(AM, /obj/effect/plant)) + return + //VOREStation Addition End if(isliving(AM)) var/mob/living/L = AM @@ -401,10 +406,12 @@ // Or if we climb up the middle if((bottom in oldloc) || oldloc == GetBelow(src)) return - + //VOREStation Addition Start + if(istype(AM, /obj/effect/plant)) + return + //VOREStation Addition End if(isobserver(AM)) // Ghosts have their own methods for going up and down return - if(AM.pulledby) // Animating the movement of pulled things is handled when the puller goes up the stairs return @@ -450,10 +457,12 @@ /obj/structure/stairs/top/use_stairs_instant(var/atom/movable/AM) if(isobserver(AM)) // Ghosts have their own methods for going up and down return - + //VOREStation Addition Start + if(istype(AM, /obj/effect/plant)) + return + //VOREStation Addition End if(isliving(AM)) var/mob/living/L = AM - if(L.grabbed_by.len) // Same as pulledby, whoever's holding you will keep you from going down stairs. return