Field of Vision component. (#12075)
* Hopeless WIP for vision cones. * Core component and hooks done * Removing clutter. * linter bashing me for using statements as args. * Ok. * continue * bring back the macro * Configs and openspace filter. * Chat plane, reset perspective signal, mechs/vehicles cases, machineries. * view, viewers and spoopy ghosts. * Renamed component, admin fun button and snowflakes robots. * Whoopsie. * Yikes * test merge tweak. * radial yaketi sax. * Fixed tgui UIs, some messages not displayed to the target. * Documentation and a little bugfix. * Pulling QoL, seventh plane made in this PR. * Fix. * Tweaks and improvements. * Update randomverbs.dm
This commit is contained in:
@@ -535,7 +535,7 @@
|
||||
add_reagent(P, cached_results[P]*multiplier, null, chem_temp)
|
||||
|
||||
|
||||
var/list/seen = viewers(4, get_turf(my_atom))//Sound and sight checkers
|
||||
var/list/seen = get_actual_viewers(4, get_turf(my_atom))//Sound and sight checkers
|
||||
var/iconhtml = icon2html(cached_my_atom, seen)
|
||||
if(cached_my_atom)
|
||||
if(!ismob(cached_my_atom)) // No bubbling mobs
|
||||
@@ -617,10 +617,7 @@
|
||||
handle_reactions()
|
||||
update_total()
|
||||
//Reaction sounds and words
|
||||
var/list/seen = viewers(5, get_turf(my_atom))
|
||||
var/iconhtml = icon2html(my_atom, seen)
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='notice'>[iconhtml] [C.mix_message]</span>")
|
||||
my_atom.visible_message("<span class='notice'>[icon2html(my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))] [C.mix_message]</span>")
|
||||
|
||||
/datum/reagents/proc/fermiReact(selected_reaction, cached_temp, cached_pH, reactedVol, targetVol, cached_required_reagents, cached_results, multiplier)
|
||||
var/datum/chemical_reaction/C = selected_reaction
|
||||
|
||||
@@ -765,7 +765,9 @@
|
||||
/datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M)
|
||||
if(M.hud_used)
|
||||
if(current_cycle >= 20 && current_cycle%20 == 0)
|
||||
var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"])
|
||||
var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"],
|
||||
M.hud_used.plane_masters["[LIGHTING_PLANE]"], M.hud_used.plane_masters["[WALL_PLANE]"],
|
||||
M.hud_used.plane_masters["[ABOVE_WALL_PLANE]"])
|
||||
var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway
|
||||
for(var/whole_screen in screens)
|
||||
animate(whole_screen, transform = matrix(rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING, loop = -1)
|
||||
@@ -793,15 +795,17 @@
|
||||
/*
|
||||
if(M.hud_used)
|
||||
if(current_cycle >= 5 && current_cycle % 3 == 0)
|
||||
var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"])
|
||||
var/matrix/skew = matrix()
|
||||
var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"],
|
||||
M.hud_used.plane_masters["[LIGHTING_PLANE]"], M.hud_used.plane_masters["[WALL_PLANE]"],
|
||||
M.hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) var/matrix/skew = matrix()
|
||||
var/intensity = 8
|
||||
skew.set_skew(rand(-intensity,intensity), rand(-intensity,intensity))
|
||||
var/matrix/newmatrix = skew
|
||||
|
||||
if(prob(33)) // 1/3rd of the time, let's make it stack with the previous matrix! Mwhahahaha!
|
||||
var/obj/screen/plane_master/PM = M.hud_used.plane_masters["[GAME_PLANE]"]
|
||||
newmatrix = skew * PM.transform
|
||||
for(var/whole_screen in screens)
|
||||
var/obj/screen/plane_master/PM = whole_screen
|
||||
newmatrix = skew * PM.transform
|
||||
|
||||
for(var/whole_screen in screens)
|
||||
animate(whole_screen, transform = newmatrix, time = 5, easing = QUAD_EASING, loop = -1)
|
||||
|
||||
@@ -440,9 +440,8 @@
|
||||
mob_react = FALSE
|
||||
|
||||
/datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, multiplier)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/mob/M in viewers(5, location))
|
||||
to_chat(M, "<span class='danger'>The solution spews out foam!</span>")
|
||||
var/turf/location = get_turf(holder.my_atom)
|
||||
location.visible_message("<span class='danger'>The solution spews out foam!</span>")
|
||||
var/datum/effect_system/foam_spread/s = new()
|
||||
s.set_up(multiplier*2, location, holder)
|
||||
s.start()
|
||||
@@ -457,11 +456,8 @@
|
||||
mob_react = FALSE
|
||||
|
||||
/datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, multiplier)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
for(var/mob/M in viewers(5, location))
|
||||
to_chat(M, "<span class='danger'>The solution spews out a metallic foam!</span>")
|
||||
|
||||
var/turf/location = get_turf(holder.my_atom)
|
||||
location.visible_message("<span class='danger'>The solution spews out a metallic foam!</span>")
|
||||
var/datum/effect_system/foam_spread/metal/s = new()
|
||||
s.set_up(multiplier*5, location, holder, 1)
|
||||
s.start()
|
||||
@@ -488,9 +484,8 @@
|
||||
mob_react = FALSE
|
||||
|
||||
/datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, multiplier)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/mob/M in viewers(5, location))
|
||||
to_chat(M, "<span class='danger'>The solution spews out a metallic foam!</span>")
|
||||
var/turf/location = get_turf(holder.my_atom)
|
||||
location.visible_message("<span class='danger'>The solution spews out metallic foam!</span>")
|
||||
var/datum/effect_system/foam_spread/metal/s = new()
|
||||
s.set_up(multiplier*5, location, holder, 2)
|
||||
s.start()
|
||||
|
||||
Reference in New Issue
Block a user