From 55282f15d6af3c5279e1b6cba389c00aee18b421 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Fri, 12 Apr 2019 22:58:11 +0200 Subject: [PATCH 1/8] less puke related lag --- code/game/atoms.dm | 10 ++++++---- code/game/gamemodes/miniantags/borer/borer.dm | 6 ++---- code/game/machinery/computer/arcade.dm | 2 +- code/modules/mining/equipment_locker.dm | 3 +-- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/mob.dm | 5 ++--- code/modules/reagents/chemistry/reagents/food.dm | 6 ++---- 7 files changed, 15 insertions(+), 19 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 024b2a924cf..733d12dbf78 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -642,14 +642,16 @@ var/list/blood_splatter_icons = list() update_icons() //apply the now updated overlays to the mob -/atom/proc/add_vomit_floor(mob/living/carbon/M as mob, var/toxvomit = 0) - if( istype(src, /turf/simulated) ) - var/obj/effect/decal/cleanable/vomit/this = new /obj/effect/decal/cleanable/vomit(src) +/atom/proc/add_vomit_floor(toxvomit = 0, type = /obj/effect/decal/cleanable/vomit) + if(istype(src, /turf/simulated)) + if(locate(type) in get_turf(src)) + return //Performance improvement + var/obj/effect/decal/cleanable/vomit/this = new type(src) // Make toxins vomit look different if(toxvomit) this.icon_state = "vomittox_[pick(1,4)]" - + playsound(src, 'sound/effects/splat.ogg', 50, 1) /atom/proc/get_global_map_pos() if(!islist(global_map) || isemptylist(global_map)) return diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 34d1f64f0d0..3b97ecd5a62 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -760,10 +760,8 @@ to_chat(src, "Your host twitches and quivers as you rapdly excrete several larvae from your sluglike body.") visible_message("[src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!") B.chemicals -= 100 - - new /obj/effect/decal/cleanable/vomit(get_turf(src)) - playsound(loc, 'sound/effects/splat.ogg', 50, 1) - new /mob/living/simple_animal/borer(get_turf(src),B.generation + 1) + var/turf/T = get_turf(src) + T.add_vomit_floor() else to_chat(src, "You need 100 chemicals to reproduce!") diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 6d360a2ddb3..54841a78a08 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -470,7 +470,7 @@ M.nutrition -= 50 //lose a lot of food var/turf/location = usr.loc if(istype(location, /turf/simulated)) - location.add_vomit_floor(src, 1) + location.add_vomit_floor(TRUE) if(ORION_TRAIL_FLUX) if(prob(75)) M.Weaken(3) diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index b0eafcbc8bb..38d5436ecfb 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -701,8 +701,7 @@ H.nutrition -= 20 H.adjustToxLoss(-3) var/turf/T = get_turf(H) - T.add_vomit_floor(H) - playsound(H, 'sound/effects/splat.ogg', 50, 1) + T.add_vomit_floor() else visible_message("[src] flickers and fails, due to bluespace interference!") qdel(src) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0f1c5d91df1..9122647c201 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -109,7 +109,7 @@ adjustBruteLoss(3) else if(T) - T.add_vomit_floor(src) + T.add_vomit_floor() nutrition -= lost_nutrition if(stun) adjustToxLoss(-3) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index ee04e624f02..15c88318d0a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1176,12 +1176,11 @@ var/list/slot_equipment_priority = list( \ if(green) if(!no_text) visible_message("[src] vomits up some green goo!","You vomit up some green goo!") - new /obj/effect/decal/cleanable/vomit/green(location) + location.add_vomit_floor(FALSE, /obj/effect/decal/cleanable/vomit/green) else if(!no_text) visible_message("[src] pukes all over [p_them()]self!","You puke all over yourself!") - location.add_vomit_floor(src, 1) - playsound(location, 'sound/effects/splat.ogg', 50, 1) + location.add_vomit_floor(TRUE) /mob/proc/AddSpell(obj/effect/proc_holder/spell/S) mob_spell_list += S diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index 9b1aca91f8d..fe2ea7a692e 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -905,8 +905,7 @@ /datum/reagent/vomit/reaction_turf(turf/T, volume) if(volume >= 5 && !isspaceturf(T)) - new /obj/effect/decal/cleanable/vomit(T) - playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) + T.add_vomit_floor() /datum/reagent/greenvomit name = "Green vomit" @@ -918,8 +917,7 @@ /datum/reagent/greenvomit/reaction_turf(turf/T, volume) if(volume >= 5 && !isspaceturf(T)) - new /obj/effect/decal/cleanable/vomit/green(T) - playsound(T, 'sound/effects/splat.ogg', 50, 1, -3) + T.add_vomit_floor(FALSE, /obj/effect/decal/cleanable/vomit/green) ////Lavaland Flora Reagents//// From e7bc1e8e7630ba8b7b893ddc40543490c4fb57ec Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Fri, 12 Apr 2019 22:58:44 +0200 Subject: [PATCH 2/8] gross spacing --- code/game/gamemodes/miniantags/borer/borer.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 3b97ecd5a62..1285b49c65a 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -762,6 +762,7 @@ B.chemicals -= 100 var/turf/T = get_turf(src) T.add_vomit_floor() + new /mob/living/simple_animal/borer(T, B.generation + 1) else to_chat(src, "You need 100 chemicals to reproduce!") From 824f26d0f45f1eeb86fc1d50c236ba715a89733b Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Fri, 12 Apr 2019 22:59:49 +0200 Subject: [PATCH 3/8] let me hear that puking though --- code/game/atoms.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 733d12dbf78..2f4ca842ba1 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -644,6 +644,7 @@ var/list/blood_splatter_icons = list() /atom/proc/add_vomit_floor(toxvomit = 0, type = /obj/effect/decal/cleanable/vomit) if(istype(src, /turf/simulated)) + playsound(src, 'sound/effects/splat.ogg', 50, 1) if(locate(type) in get_turf(src)) return //Performance improvement var/obj/effect/decal/cleanable/vomit/this = new type(src) @@ -651,7 +652,6 @@ var/list/blood_splatter_icons = list() // Make toxins vomit look different if(toxvomit) this.icon_state = "vomittox_[pick(1,4)]" - playsound(src, 'sound/effects/splat.ogg', 50, 1) /atom/proc/get_global_map_pos() if(!islist(global_map) || isemptylist(global_map)) return From 244bdf131e535c585be5edad526315bdf1446da3 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Fri, 12 Apr 2019 23:00:25 +0200 Subject: [PATCH 4/8] also in space... --- code/game/atoms.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 2f4ca842ba1..bc580e34716 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -643,8 +643,8 @@ var/list/blood_splatter_icons = list() /atom/proc/add_vomit_floor(toxvomit = 0, type = /obj/effect/decal/cleanable/vomit) + playsound(src, 'sound/effects/splat.ogg', 50, 1) if(istype(src, /turf/simulated)) - playsound(src, 'sound/effects/splat.ogg', 50, 1) if(locate(type) in get_turf(src)) return //Performance improvement var/obj/effect/decal/cleanable/vomit/this = new type(src) From 9166de2a3d2582dff4e59cae0aa22be5497aa4ec Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sat, 13 Apr 2019 10:56:30 +0200 Subject: [PATCH 5/8] puke update --- code/game/atoms.dm | 14 +++++++++++--- code/modules/mob/mob.dm | 2 +- code/modules/reagents/chemistry/reagents/food.dm | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index bc580e34716..afbb7f8f9c8 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -642,11 +642,19 @@ var/list/blood_splatter_icons = list() update_icons() //apply the now updated overlays to the mob -/atom/proc/add_vomit_floor(toxvomit = 0, type = /obj/effect/decal/cleanable/vomit) +/atom/proc/add_vomit_floor(toxvomit = 0, green = FALSE) playsound(src, 'sound/effects/splat.ogg', 50, 1) + var/type = green ? /obj/effect/decal/cleanable/vomit/green : /obj/effect/decal/cleanable/vomit + var/vomit_reagent = green ? "green_vomit" : "vomit" if(istype(src, /turf/simulated)) - if(locate(type) in get_turf(src)) - return //Performance improvement + for(var/obj/effect/decal/cleanable/vomit/V in get_turf(src)) + if(V.type == type) + if(V.scoop_reagents[vomit_reagent]) + V.scoop_reagents[vomit_reagent] += 5 + else + V.scoop_reagents[vomit_reagent] = 5 + return + var/obj/effect/decal/cleanable/vomit/this = new type(src) // Make toxins vomit look different diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 15c88318d0a..0398687d24d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1176,7 +1176,7 @@ var/list/slot_equipment_priority = list( \ if(green) if(!no_text) visible_message("[src] vomits up some green goo!","You vomit up some green goo!") - location.add_vomit_floor(FALSE, /obj/effect/decal/cleanable/vomit/green) + location.add_vomit_floor(FALSE, TRUE) else if(!no_text) visible_message("[src] pukes all over [p_them()]self!","You puke all over yourself!") diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index fe2ea7a692e..bf2417a192e 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -917,7 +917,7 @@ /datum/reagent/greenvomit/reaction_turf(turf/T, volume) if(volume >= 5 && !isspaceturf(T)) - T.add_vomit_floor(FALSE, /obj/effect/decal/cleanable/vomit/green) + T.add_vomit_floor(FALSE, TRUE) ////Lavaland Flora Reagents//// From c077d8051459b91a9a79ddb8facaa938caf40921 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sat, 13 Apr 2019 10:58:25 +0200 Subject: [PATCH 6/8] no puke in space alone --- code/game/atoms.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index afbb7f8f9c8..33109095096 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -644,9 +644,9 @@ var/list/blood_splatter_icons = list() /atom/proc/add_vomit_floor(toxvomit = 0, green = FALSE) playsound(src, 'sound/effects/splat.ogg', 50, 1) - var/type = green ? /obj/effect/decal/cleanable/vomit/green : /obj/effect/decal/cleanable/vomit - var/vomit_reagent = green ? "green_vomit" : "vomit" - if(istype(src, /turf/simulated)) + if(!isspaceturf(src)) + var/type = green ? /obj/effect/decal/cleanable/vomit/green : /obj/effect/decal/cleanable/vomit + var/vomit_reagent = green ? "green_vomit" : "vomit" for(var/obj/effect/decal/cleanable/vomit/V in get_turf(src)) if(V.type == type) if(V.scoop_reagents[vomit_reagent]) From d102e7f80dc3565cb5f9600201fa5ca3a20c73c2 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 14 Apr 2019 09:57:48 +0200 Subject: [PATCH 7/8] dm is smurt(ish) --- code/game/atoms.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 33109095096..afb0bfd064a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -649,10 +649,7 @@ var/list/blood_splatter_icons = list() var/vomit_reagent = green ? "green_vomit" : "vomit" for(var/obj/effect/decal/cleanable/vomit/V in get_turf(src)) if(V.type == type) - if(V.scoop_reagents[vomit_reagent]) - V.scoop_reagents[vomit_reagent] += 5 - else - V.scoop_reagents[vomit_reagent] = 5 + V.scoop_reagents[vomit_reagent] += 5 return var/obj/effect/decal/cleanable/vomit/this = new type(src) From 3fba7c7aa7ddd97081bb022b5ad8d4b938fbb0ca Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 14 Apr 2019 18:02:13 +0200 Subject: [PATCH 8/8] add_reagent --- code/game/atoms.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index afb0bfd064a..0a1aa19bcf7 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -649,7 +649,7 @@ var/list/blood_splatter_icons = list() var/vomit_reagent = green ? "green_vomit" : "vomit" for(var/obj/effect/decal/cleanable/vomit/V in get_turf(src)) if(V.type == type) - V.scoop_reagents[vomit_reagent] += 5 + V.reagents.add_reagent(vomit_reagent, 5) return var/obj/effect/decal/cleanable/vomit/this = new type(src)