Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rework/add/перевод/refactor/balance: Anomalies update #6195

Open
wants to merge 103 commits into
base: master220
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
aa79984
xhdfhfh
Anorak2024 Nov 14, 2024
25e44d6
Merge branch 'ss220-space:master220' into anomalies
Anorak2024 Nov 14, 2024
5bdd9fe
sfdsdfd
Anorak2024 Nov 15, 2024
eb8f375
апывапавы
Anorak2024 Nov 19, 2024
baa0bb1
fgsfgd
Anorak2024 Nov 19, 2024
e820e8e
Merge branch 'master220' into anomalies
Anorak2024 Nov 19, 2024
8cd3a13
фикс + поменял пару путей
Anorak2024 Nov 19, 2024
645186a
Незначительные эффекты всем тир3 ядрам кроме вихревого.
Anorak2024 Nov 19, 2024
a20037c
вфаыва
Anorak2024 Nov 19, 2024
dd1008d
Скаляция эффектов гравбутсов + "умный" прыжок
Anorak2024 Nov 20, 2024
514804d
Экспериментальный шприцемет и фазон
Anorak2024 Nov 20, 2024
fadb1e9
Выбор маячка + баланс
Anorak2024 Nov 20, 2024
2784e77
Фиксы, чиселки, нормальная анимация размера.
Anorak2024 Nov 21, 2024
df01504
Merge branch 'master220' into anomalies
Anorak2024 Nov 21, 2024
e4d3888
Два суицида, пара фиксов
Anorak2024 Nov 22, 2024
df01c8b
фикс
Anorak2024 Nov 22, 2024
a51e591
фикс дубль два
Anorak2024 Nov 22, 2024
03fe342
фикс дубль три
Anorak2024 Nov 22, 2024
00694ab
фикс дубль какой там уже бля
Anorak2024 Nov 22, 2024
7cd4e59
Спрайты ядер, фиксы, мелочи.
Anorak2024 Nov 25, 2024
2fc99bc
Merge branch 'master220' into anomalies
Anorak2024 Nov 25, 2024
9c55815
фаунная бомба
Anorak2024 Nov 30, 2024
7c26099
апвы
Anorak2024 Nov 30, 2024
b6e5c06
ываываыв
Anorak2024 Nov 30, 2024
ad46032
Merge branch 'master220' into anomalies
Anorak2024 Nov 30, 2024
a589e84
Фиксы
Anorak2024 Dec 1, 2024
bf214ff
щитспавн тир4 аномалии
Anorak2024 Dec 2, 2024
60a75a9
тгуи бандл мерге конфликт
Anorak2024 Dec 2, 2024
80913e4
Merge branch 'master220' into anomalies
Anorak2024 Dec 2, 2024
d646a33
выавы
Anorak2024 Dec 2, 2024
51d2870
Merge branch 'master220' into anomalies
Anorak2024 Dec 6, 2024
a93dba9
Правки
Anorak2024 Dec 6, 2024
5d5a43a
мини правка
Anorak2024 Dec 6, 2024
9041a53
чуть другое питание энергосети от энерго аномалий
Anorak2024 Dec 6, 2024
3e55fe0
твики
Anorak2024 Dec 6, 2024
10b4fe2
Update code/_onclick/hud/alert.dm
Anorak2024 Dec 17, 2024
386d3db
adfsdaf
Anorak2024 Dec 17, 2024
eadff0b
Merge branch 'master220' into anomalies
Anorak2024 Dec 17, 2024
a6b881e
Update code/datums/action.dm
Anorak2024 Dec 17, 2024
788eb7e
Update code/_onclick/hud/alert.dm
Anorak2024 Dec 17, 2024
e40aad2
Update code/_onclick/hud/alert.dm
Anorak2024 Dec 17, 2024
e3fa150
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
c72c997
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
5e2bdfc
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
f30c238
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
e2f2275
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
375d541
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
208932c
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
157de58
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
f5e49eb
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
15e454b
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
a67ed22
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
07ff157
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
12b62a8
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 Dec 17, 2024
9883ab5
fdgdfgfdf
Anorak2024 Dec 17, 2024
2f4eaa5
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
bc0fd53
Update code/modules/anomalies/anomalies/energetic.dm
Anorak2024 Dec 17, 2024
b82eeb6
Update code/modules/anomalies/anomalies/atmospheric.dm
Anorak2024 Dec 17, 2024
112d04f
fsfg
Anorak2024 Dec 17, 2024
1b972a0
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
4b5dcbe
Update code/modules/anomalies/anomalies/gravitational.dm
Anorak2024 Dec 17, 2024
c41a122
Update code/modules/anomalies/anomalies/atmospheric.dm
Anorak2024 Dec 17, 2024
e501027
dsfsdf
Anorak2024 Dec 17, 2024
7c04f47
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
306438c
Update code/_onclick/hud/alert.dm
Anorak2024 Dec 17, 2024
693dcfd
Update code/modules/anomalies/anomalies/gravitational.dm
Anorak2024 Dec 17, 2024
1bda1ae
Update code/modules/anomalies/anomalies/vortex.dm
Anorak2024 Dec 17, 2024
bac41dd
Update code/modules/anomalies/anomalies/vortex.dm
Anorak2024 Dec 17, 2024
593288a
Update code/modules/anomalies/anomalies/vortex.dm
Anorak2024 Dec 17, 2024
36b919d
Update code/modules/anomalies/anomaly_generator.dm
Anorak2024 Dec 17, 2024
b3697c5
Update code/modules/anomalies/anomaly_generator.dm
Anorak2024 Dec 17, 2024
96f778a
Update code/modules/anomalies/anomaly_generator.dm
Anorak2024 Dec 17, 2024
4e403af
Update code/modules/anomalies/anomaly_generator.dm
Anorak2024 Dec 17, 2024
3235be4
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
ebcdbdf
ывавыа
Anorak2024 Dec 17, 2024
5f3796b
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
1d9afc5
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
0226b4a
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
8336d21
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
2581874
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
dd44471
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
f78d15f
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
3c48052
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
a68ba2a
sdfsd
Anorak2024 Dec 17, 2024
da73fcc
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
8521a82
sdfsd
Anorak2024 Dec 17, 2024
c08bc4e
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 Dec 17, 2024
f475393
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
348ead3
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
d6790fc
dsfsdf
Anorak2024 Dec 17, 2024
1dbd9a9
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
7b639e5
adsfasd
Anorak2024 Dec 17, 2024
8480c2e
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
79568ee
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
d9e3d16
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
84cc3c3
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
c7f93dc
sdfsd
Anorak2024 Dec 17, 2024
6c4ba10
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
60a8d22
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
006f862
Update code/modules/anomalies/cores.dm
Anorak2024 Dec 17, 2024
fb7dea3
ываыв
Anorak2024 Dec 17, 2024
862f499
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 Dec 17, 2024
017afe3
Merge branch 'master220' into anomalies
Anorak2024 Dec 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion _maps/__MAP_DEFINES.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
#define ZTRAIT_UP "Up"
#define ZTRAIT_DOWN "Down"

#define ZTRAIT_GRAVITY "Gravity" // overrides Z-level gravity making it always on. Unless it's space turf or openspace in a space area. See atom/proc/has_gravity()
#define ZTRAIT_GRAVITY "Gravity" // overrides Z-level gravity making it always on. Unless it's space turf or openspace in a space area. See atom/proc/get_gravity()
#define ZTRAIT_BASETURF "Baseturf" // overrides Z-level baseturf. set type path by ZTRAIT_BASETURF = "/turf/..."

// 3 Is already big one hella station.
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/templates/piratbase.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -6397,7 +6397,7 @@
/area/ruin/space/pirate_base/mining)
"sq" = (
/obj/structure/table/glass,
/obj/item/assembly/signaler/anomaly/bluespace,
/obj/item/assembly/signaler/core/bluespace/tier2,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "dark"
Expand Down
59 changes: 59 additions & 0 deletions code/__DEFINES/anomalies.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#define ANOMALY_TYPE_RANDOM "random"
#define ANOMALY_TYPE_ATMOS "atmospheric"
#define ANOMALY_TYPE_BLUESPACE "bluespace"
#define ANOMALY_TYPE_GRAV "gravitational"
#define ANOMALY_TYPE_VORTEX "vortex"
#define ANOMALY_TYPE_FLUX "energetic"
#define TIER1 "1"
#define TIER2 "2"
#define TIER3 "3"

#define isanomaly(A) (istype((A), /obj/effect/anomaly))

#define iscore(A) (istype((A), /obj/item/assembly/signaler/core))

#define iscoreempty(A) ((A.type == /obj/item/assembly/signaler/core/tier1) || \
(A.type == /obj/item/assembly/signaler/core/tier2) || \
(A.type == /obj/item/assembly/signaler/core/tier3))

#define iscoreatmos(A) (istype((A), /obj/item/assembly/signaler/core/atmospheric))
#define iscorebluespace(A) (istype((A), /obj/item/assembly/signaler/core/bluespace))
#define iscoregrav(A) (istype((A), /obj/item/assembly/signaler/core/gravitational))
#define iscorevortex(A) (istype((A), /obj/item/assembly/signaler/core/vortex))
#define iscoreflux(A) (istype((A), /obj/item/assembly/signaler/core/energetic))

GLOBAL_LIST_INIT(anomaly_types, list(
TIER1 = list(
ANOMALY_TYPE_ATMOS = /datum/anomaly_gen_datum/tier1/pyroclastic,
ANOMALY_TYPE_BLUESPACE = /datum/anomaly_gen_datum/tier1/bluespace,
ANOMALY_TYPE_GRAV = /datum/anomaly_gen_datum/tier1/gravitational,
ANOMALY_TYPE_VORTEX = /datum/anomaly_gen_datum/tier1/vortex,
ANOMALY_TYPE_FLUX = /datum/anomaly_gen_datum/tier1/energetic,
),
TIER2 = list(
ANOMALY_TYPE_ATMOS = /datum/anomaly_gen_datum/tier2/pyroclastic,
ANOMALY_TYPE_BLUESPACE = /datum/anomaly_gen_datum/tier2/bluespace,
ANOMALY_TYPE_GRAV = /datum/anomaly_gen_datum/tier2/gravitational,
ANOMALY_TYPE_VORTEX = /datum/anomaly_gen_datum/tier2/vortex,
ANOMALY_TYPE_FLUX = /datum/anomaly_gen_datum/tier2/energetic,
),
TIER3 = list(
ANOMALY_TYPE_ATMOS = /datum/anomaly_gen_datum/tier3/pyroclastic,
ANOMALY_TYPE_BLUESPACE = /datum/anomaly_gen_datum/tier3/bluespace,
ANOMALY_TYPE_GRAV = /datum/anomaly_gen_datum/tier3/gravitational,
ANOMALY_TYPE_VORTEX = /datum/anomaly_gen_datum/tier3/vortex,
ANOMALY_TYPE_FLUX = /datum/anomaly_gen_datum/tier3/energetic,
),
))

GLOBAL_LIST_INIT(created_anomalies, list(
ANOMALY_TYPE_ATMOS = 0,
ANOMALY_TYPE_BLUESPACE = 0,
ANOMALY_TYPE_GRAV = 0,
ANOMALY_TYPE_VORTEX = 0,
ANOMALY_TYPE_FLUX = 0,
))

#define ANOMALY_GROW_STABILITY 30
#define ANOMALY_DECREASE_STABILITY 70
#define ANOMALY_MOVE_MAX_STABILITY 59
4 changes: 2 additions & 2 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@

///from base of atom/handle_atom_del(): (atom/deleted)
#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del"
///from base of atom/has_gravity(): (turf/location, list/forced_gravities)
///from base of atom/get_gravity(): (turf/location, list/forced_gravities)
#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity"
///from proc/get_rad_contents(): ()
#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe"
Expand Down Expand Up @@ -287,7 +287,7 @@

///from base of turf/ChangeTurf(): (path, list/new_baseturf, flags, list/transferring_comps)
#define COMSIG_TURF_CHANGE "turf_change"
///from base of atom/has_gravity(): (atom/asker, list/forced_gravities)
///from base of atom/get_gravity(): (atom/asker, list/forced_gravities)
#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity"
///from base of turf/multiz_turf_del(): (turf/source, direction)
#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del"
Expand Down
9 changes: 9 additions & 0 deletions code/__DEFINES/gravity.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,20 @@
*/
#define NEGATIVE_GRAVITY -1

#define NO_GRAVITY 0.3

#define STANDARD_GRAVITY 1 //Anything above this is high gravity, anything below no grav until negative gravity
/// The gravity strength threshold for slownown.
#define HIGH_GRAVITY_SLOWDOWN 1.5
/// The gravity strength threshold for disability of staying.
#define GRAVITY_CANT_STAY 2
/// The gravity strength threshold for high gravity damage.
#define GRAVITY_DAMAGE_THRESHOLD 3
/// The scaling factor for high gravity damage.
#define GRAVITY_DAMAGE_SCALING 0.5
/// The maximum [BRUTE] damage a mob can take from high gravity per second.
#define GRAVITY_DAMAGE_MAXIMUM 1.5


#define GRAVITY_SOURCE_GRAVGEN "gravgen"
#define GRAVITY_SOURCE_ANOMALY "anomaly"
2 changes: 2 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,8 @@

///How much a mob's sprite should be moved when they're lying down
#define PIXEL_Y_OFFSET_LYING -6
///How much a mob's sprite should be moved when they're lying up (on the ceiling)
#define PIXEL_Y_OFFSET_LYING_REVERSED 6

// Slip flags, also known as lube flags
/// The mob will not slip if they're walking intent
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/traits/sources.dm
Original file line number Diff line number Diff line change
Expand Up @@ -157,3 +157,5 @@
#define BLOB_INFECTED_TRAIT "blob_infected"

#define VENDOR_FLATTENING_TRAIT "vendor_flattening"

#define GRAVITATION_TRAIT "gravitation"
51 changes: 26 additions & 25 deletions code/__HELPERS/AnimationLibrary.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
if(random_side)
side = pick(-1, 1)

spawn(rand(1,10))
spawn(rand(1, 10))
animate(A, pixel_y = 32, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING)
animate(pixel_y = 0, transform = matrix(floatdegrees * (side == 1 ? -1:1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING)

Expand All @@ -43,7 +43,7 @@
if(random_side)
side = pick(-1, 1)

spawn(rand(1,10))
spawn(rand(1, 10))
animate(A, pixel_y = 8, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING)
animate(pixel_y = 0, transform = null, time = floatspeed, loop = loopnum, easing = SINE_EASING)

Expand All @@ -55,7 +55,7 @@
if(random_side)
side = pick(-1, 1)

spawn(rand(1,10))
spawn(rand(1, 10))
animate(A, pixel_y = 8, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING)
animate(pixel_y = 0, transform = matrix(floatdegrees * (side == 1 ? -1:1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING)

Expand All @@ -67,7 +67,7 @@
while(do_loops > 0)
do_loops--
animate(A, transform = M, pixel_z = A.pixel_z + 12, alpha = A.alpha - 17, time = 1, loop = 1, easing = LINEAR_EASING)
M.Scale(1.2,1.2)
M.Scale(1.2, 1.2)
sleep(1)
A.alpha = 0

Expand All @@ -76,37 +76,37 @@
return
var/matrix/M = matrix()
var/do_loops = 15
M.Scale(18,18)
M.Scale(18, 18)
while(do_loops > 0)
do_loops--
animate(A, transform = M, pixel_z = A.pixel_z - 12, alpha = A.alpha + 17, time = 1, loop = 1, easing = LINEAR_EASING)
M.Scale(0.8,0.8)
M.Scale(0.8, 0.8)
sleep(1)
animate(A, transform = M, pixel_z = 0, alpha = 255, time = 1, loop = 1, easing = LINEAR_EASING)

/proc/animate_shake(var/atom/A, var/amount = 5, var/x_severity = 2, var/y_severity = 2)
/proc/animate_shake(atom/A, amount = 5, x_severity = 2, y_severity = 2)
// Wiggles the sprite around on its tile then returns it to normal
if(!istype(A))
return
if(!isnum(amount) || !isnum(x_severity) || !isnum(y_severity))
return
amount = max(1,min(amount,50))
x_severity = max(-32,min(x_severity,32))
y_severity = max(-32,min(y_severity,32))
amount = max(1, min(amount, 50))
x_severity = max(-32, min(x_severity, 32))
y_severity = max(-32, min(y_severity, 32))

var/x_severity_inverse = 0 - x_severity
var/y_severity_inverse = 0 - y_severity

animate(A, transform = null, pixel_y = rand(y_severity_inverse,y_severity), pixel_x = rand(x_severity_inverse,x_severity),time = 1,loop = amount, easing = ELASTIC_EASING)
animate(A, transform = null, pixel_y = rand(y_severity_inverse, y_severity), pixel_x = rand(x_severity_inverse, x_severity), time = 1, loop = amount, easing = ELASTIC_EASING, flags = ANIMATION_PARALLEL)
spawn(amount)
animate(A, transform = null, pixel_y = 0, pixel_x = 0,time = 1,loop = 1, easing = LINEAR_EASING)
animate(A, transform = null, pixel_y = 0, pixel_x = 0, time = 1, loop = 1, easing = LINEAR_EASING, flags = ANIMATION_PARALLEL)

/proc/animate_teleport(var/atom/A)
if(!istype(A))
return
var/matrix/M = matrix(1, 3, MATRIX_SCALE)
animate(A, transform = M, pixel_y = 32, time = 10, alpha = 50, easing = CIRCULAR_EASING)
M.Scale(0,4)
M.Scale(0, 4)
animate(transform = M, time = 5, color = "#1111ff", alpha = 0, easing = CIRCULAR_EASING)
animate(transform = null, time = 5, color = "#ffffff", alpha = 255, pixel_y = 0, easing = ELASTIC_EASING)

Expand All @@ -122,19 +122,19 @@
/proc/animate_rainbow_glow_old(var/atom/A)
if(!istype(A))
return
animate(A, color = "#FF0000", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#00FF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#0000FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(A, color = "#FF0000", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#00FF00", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#0000FF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)

/proc/animate_rainbow_glow(var/atom/A)
if(!istype(A))
return
animate(A, color = "#FF0000", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#FFFF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#00FF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#00FFFF", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#0000FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(color = "#FF00FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING)
animate(A, color = "#FF0000", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#FFFF00", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#00FF00", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#00FFFF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#0000FF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)
animate(color = "#FF00FF", time = rand(5, 10), loop = -1, easing = LINEAR_EASING)

/proc/animate_fade_to_color_fill(var/atom/A, var/the_color, var/time)
if(!istype(A) || !the_color || !time)
Expand Down Expand Up @@ -163,8 +163,8 @@
/proc/animate_wiggle_then_reset(var/atom/A, var/loops = 5, var/speed = 5, var/x_var = 3, var/y_var = 3)
if(!istype(A) || !loops || !speed)
return
animate(A, pixel_x = rand(-x_var, x_var), pixel_y = rand(-y_var, y_var), time = speed * 2,loop = loops, easing = rand(2,7))
animate(pixel_x = 0, pixel_y = 0, time = speed, easing = rand(2,7))
animate(A, pixel_x = rand(-x_var, x_var), pixel_y = rand(-y_var, y_var), time = speed * 2, loop = loops, easing = rand(2, 7))
animate(pixel_x = 0, pixel_y = 0, time = speed, easing = rand(2, 7))

/proc/animate_spin(var/atom/A, var/dir = "L", var/T = 1, var/looping = -1)
if(!istype(A))
Expand All @@ -180,9 +180,10 @@
animate(transform = matrix(M, turn, MATRIX_ROTATE | MATRIX_MODIFY), time = T, loop = looping)
animate(transform = matrix(M, turn, MATRIX_ROTATE | MATRIX_MODIFY), time = T, loop = looping)

/proc/animate_shockwave(var/atom/A)
/proc/animate_shockwave(atom/A)
if(!istype(A))
return

var/punchstr = rand(10, 20)
var/original_y = A.pixel_y
animate(A, transform = matrix(punchstr, MATRIX_ROTATE), pixel_y = 16, time = 2, color = "#eeeeee", easing = BOUNCE_EASING)
Expand Down
2 changes: 1 addition & 1 deletion code/__HELPERS/paths/path.dm
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@
src.movement_type = construct_from.movement_type
src.thrown = !!construct_from.throwing
src.anchored = construct_from.anchored
src.has_gravity = construct_from.has_gravity()
src.has_gravity = construct_from.get_gravity()
if(ismob(construct_from))
var/mob/mob_construct = construct_from
src.faction = mob_construct.faction?.Copy()
Expand Down
20 changes: 9 additions & 11 deletions code/_onclick/hud/alert.dm
Original file line number Diff line number Diff line change
Expand Up @@ -340,29 +340,27 @@ or something covering your eyes."


/atom/movable/screen/alert/negative
name = "Negative Gravity"
desc = "You're getting pulled upwards. While you won't have to worry about falling down anymore, you may accidentally fall upwards!"
name = "Обратная гравитация"
desc = "Вас тянет вверх. Хоть падение вниз вам больше не грозит, вы всё ещё можете упасть вверх!"
icon_state = "negative"


/atom/movable/screen/alert/weightless
name = "Weightless"
desc = "Gravity has ceased affecting you, and you're floating around aimlessly. You'll need something large and heavy, like a \
wall or lattice, to push yourself off if you want to move. A jetpack would enable free range of motion. A pair of \
magboots would let you walk around normally on the floor. Barring those, you can throw things, use a fire extinguisher, \
or shoot a gun to move around via Newton's 3rd Law of Motion."
name = "Невесомость"
desc = "Гравитация перестала на вас влиять, и вы парите в пространстве. Чтобы двигаться, вы можете оттолкнуться от ближайших объектов, \
кинуть что-то от себя или выстрелить в противоположную сторону. Для более комфортного перемещения используйте специальное оборудование."
icon_state = "weightless"


/atom/movable/screen/alert/highgravity
name = "High Gravity"
desc = "You're getting crushed by high gravity, picking up items and movement will be slowed."
name = "Повышенная гравитация"
desc = "На вас давит высокая гравитация. Двигаться в таком состоянии непросто."
icon_state = "paralysis"


/atom/movable/screen/alert/veryhighgravity
name = "Crushing Gravity"
desc = "You're getting crushed by high gravity, picking up items and movement will be slowed. You'll also accumulate brute damage!"
name = "Сокрушительная гравитация"
desc = "На вас давит невероятно высокая гравитация. Вы чувствуете, будто вас буквально разрывает на части!"
icon_state = "paralysis"


Expand Down
12 changes: 10 additions & 2 deletions code/controllers/subsystem/throwing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ SUBSYSTEM_DEF(throwing)
//calculate how many tiles to move, making up for any missed ticks.
var/tilestomove = CEILING(min(((((world.time + world.tick_lag) - start_time + delayed_time) * speed) - (dist_travelled ? dist_travelled : -1)), speed * MAX_TICKS_TO_MAKE_UP) * (world.tick_lag * SSthrowing.wait), 1)
while(tilestomove-- > 0)
if((dist_travelled >= maxrange || AM.loc == target_turf) && AM.has_gravity(AM.loc))
if((dist_travelled >= maxrange || AM.loc == target_turf) && !AM.no_gravity(AM.loc))
if(!hitcheck())
finalize()
return
Expand All @@ -181,7 +181,15 @@ SUBSYSTEM_DEF(throwing)
finalize()
return

dist_travelled++
/*
A - Acceleration of gravity.
H - The height of the object's fall.
T - Past tense of falling.
H(T) = A * T * T / 2
If A will become X times bigger, T will become sqrt(X) times lower.
*/
if(!AM.no_gravity()) // If no gravity, it causes some problems. I think, it will work normally this way.
dist_travelled += 1 * sqrt(abs(AM.get_gravity()))

if(dist_travelled > MAX_THROWING_DIST)
finalize()
Expand Down
2 changes: 1 addition & 1 deletion code/datums/action.dm
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@

/datum/action/item_action/gravity_jump
name = "Gravity jump"
desc = "Directs a pulse of gravity in front of the user, pulling them forward rapidly."
desc = "Направляет импульс гравитации перед пользователем, придавая ему ускорение."
attack_self = FALSE

/datum/action/item_action/gravity_jump/Trigger(left_click = TRUE)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/conveyor_movement.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
if((moving_mob.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) && !moving_mob.stat)
return MOVELOOP_SKIP_STEP
var/atom/movable/moving_parent = parent
if(moving_parent.anchored || !moving_parent.has_gravity())
if(moving_parent.anchored || moving_parent.get_gravity() > NO_GRAVITY) // No moving on convey with negative gravity.
return MOVELOOP_SKIP_STEP


Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/riding/riding.dm
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@

/datum/component/riding/proc/Process_Spacemove(direction, continuous_move)
var/atom/movable/AM = parent
return override_allow_spacemove || AM.has_gravity()
return override_allow_spacemove || !AM.no_gravity()

/// currently replicated from ridable because we need this behavior here too, see if we can deal with that
/datum/component/riding/proc/unequip_buckle_inhands(mob/living/carbon/user)
Expand Down
2 changes: 1 addition & 1 deletion code/datums/components/squeak.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
if(I.item_flags & ABSTRACT)
return

if((arrived.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || !arrived.has_gravity())
if((arrived.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || arrived.no_gravity())
return

if(ismob(arrived) && !arrived.density) // Prevents 10 overlapping mice from making an unholy sound while moving
Expand Down
2 changes: 1 addition & 1 deletion code/datums/elements/footstep.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
if(steps % 2)
return

if(steps != 0 && !source.has_gravity()) // don't need to step as often when you hop around
if(steps != 0 && source.no_gravity()) // don't need to step as often when you hop around
return

. = list(FOOTSTEP_MOB_SHOE = turf.footstep, FOOTSTEP_MOB_BAREFOOT = turf.barefootstep, FOOTSTEP_MOB_HEAVY = turf.heavyfootstep, FOOTSTEP_MOB_CLAW = turf.clawfootstep)
Expand Down
Loading
Loading