mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 15:17:01 +01:00
Skewium: It'll fuck you up. (#23742)
* Skewium: It'll fuck you up. Adds some matrix helpers for dealing with skews Adds Skewium, it's like rotatium, but for skews instead of rotation, it's horrible * switches back to boxstation from runtimestation
This commit is contained in:
committed by
KorPhaeron
parent
6537fe3f5d
commit
9dc819f151
@@ -61,7 +61,25 @@
|
||||
/matrix/proc/get_y_shift()
|
||||
. = f
|
||||
|
||||
// Color matrices:
|
||||
/matrix/proc/get_x_skew()
|
||||
. = b
|
||||
|
||||
/matrix/proc/get_y_skew()
|
||||
. = d
|
||||
|
||||
//Skews a matrix in a particular direction
|
||||
//Missing arguments are treated as no skew in that direction
|
||||
|
||||
//As Rotation is defined as a scale+skew, these procs will break any existing rotation
|
||||
//Unless the result is multiplied against the current matrix
|
||||
/matrix/proc/set_skew(x = 0, y = 0)
|
||||
b = x
|
||||
d = y
|
||||
|
||||
|
||||
/////////////////////
|
||||
// COLOUR MATRICES //
|
||||
/////////////////////
|
||||
|
||||
/* Documenting a couple of potentially useful color matrices here to inspire ideas
|
||||
// Greyscale - indentical to saturation @ 0
|
||||
|
||||
@@ -684,6 +684,41 @@
|
||||
animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING)
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/skewium
|
||||
name = "Skewium"
|
||||
id = "skewium"
|
||||
description = "A strange, dull coloured liquid that appears to warp back and forth inside its container. Causes any consumer to experience a visual phenomena similar to said warping."
|
||||
reagent_state = LIQUID
|
||||
color = "#ADBDCD"
|
||||
metabolization_rate = 0.8 * REAGENTS_METABOLISM
|
||||
toxpwr = 0.25
|
||||
|
||||
/datum/reagent/toxin/skewium/on_mob_life(mob/living/M)
|
||||
if(M.hud_used)
|
||||
if(current_cycle >= 5 && current_cycle % 3 == 0)
|
||||
var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_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)
|
||||
animate(whole_screen, transform = newmatrix, time = 5, easing = QUAD_EASING, loop = -1)
|
||||
animate(transform = -newmatrix, time = 5, easing = QUAD_EASING)
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/skewium/on_mob_delete(mob/living/M)
|
||||
if(M && M.hud_used)
|
||||
var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"])
|
||||
for(var/whole_screen in screens)
|
||||
animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING)
|
||||
..()
|
||||
|
||||
|
||||
/datum/reagent/toxin/anacea
|
||||
name = "Anacea"
|
||||
id = "anacea"
|
||||
|
||||
@@ -94,7 +94,14 @@
|
||||
results = list("rotatium" = 3)
|
||||
required_reagents = list("mindbreaker" = 1, "teslium" = 1, "neurotoxin2" = 1)
|
||||
mix_message = "<span class='danger'>After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight.</span>"
|
||||
|
||||
|
||||
/datum/chemical_reaction/skewium
|
||||
name = "Skewium"
|
||||
id = "Skewium"
|
||||
results = list("skewium" = 5)
|
||||
required_reagents = list("rotatium" = 2, "plasma" = 2, "sacid" = 1)
|
||||
mix_message = "<span class='danger'>Wow! it turns out if you mix rotatium with some plasma and sulphuric acid, it gets even worse!</span>"
|
||||
|
||||
/datum/chemical_reaction/anacea
|
||||
name = "Anacea"
|
||||
id = "anacea"
|
||||
|
||||
Reference in New Issue
Block a user