Skip to content

add: Контент аномалиям #6833

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

Open
wants to merge 199 commits into
base: master220
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 134 commits
Commits
Show all changes
199 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
519952e
Вроде фиксит часть мерж конфликтов
Anorak2024 May 11, 2025
d315043
Вроде фиксит часть мерж конфликтов
Anorak2024 May 11, 2025
aef1d46
ываыва
Anorak2024 May 11, 2025
e973b80
выаыва
Anorak2024 May 11, 2025
2c5b1f6
ываыв
Anorak2024 May 11, 2025
6256da5
ываыв
Anorak2024 May 11, 2025
50760f3
ывавыа
Anorak2024 May 11, 2025
c6b0e25
ыва
Anorak2024 May 11, 2025
302bf2f
dsfsdf
Anorak2024 May 11, 2025
3727d5c
sdfsdf
Anorak2024 May 11, 2025
c4672bf
sdfsdf
Anorak2024 May 11, 2025
21ce0d2
sdfsd
Anorak2024 May 11, 2025
e6fea3c
sdfsd
Anorak2024 May 11, 2025
dcf9ad0
ываыв
Anorak2024 May 11, 2025
845c5c4
ываы
Anorak2024 May 11, 2025
f07902d
ывавы
Anorak2024 May 11, 2025
6fb1c74
ываыв
Anorak2024 May 11, 2025
4170b69
sdfds
Anorak2024 May 11, 2025
3bde78e
ывавы
Anorak2024 May 11, 2025
89c9352
ываыв
Anorak2024 May 11, 2025
83fdcf2
ыва
Anorak2024 May 11, 2025
3fa61e4
ываыв
Anorak2024 May 11, 2025
cf792a6
ываыв
Anorak2024 May 11, 2025
83da6e7
ыва
Anorak2024 May 11, 2025
b64fa7c
ываыв
Anorak2024 May 11, 2025
75fea36
Merge branch 'master220' into anomalies
Anorak2024 May 11, 2025
2840257
sdfsd
Anorak2024 May 11, 2025
56eb18e
Возвращение содержимого вырезанного во время исправления мерж конфликтов
Anorak2024 May 12, 2025
bfc8f51
тгуи бат
Anorak2024 May 12, 2025
80ceefc
всякие фиксы
Anorak2024 May 12, 2025
45e0092
Перемещение инхэнд
Anorak2024 May 12, 2025
7715fa8
ываыавы
Anorak2024 May 12, 2025
dc51b55
Вортексы больше не двигают гостов
Anorak2024 May 12, 2025
7721aa0
Merge branch 'master220' into anomalies
Anorak2024 May 13, 2025
a43af0c
Мерж конфликты 1
Anorak2024 May 14, 2025
683d458
Merge branch 'master220' into anomalies
Anorak2024 May 14, 2025
caf3f76
Исправление мерж конфликтов 2
Anorak2024 May 14, 2025
f3f3fdc
ваыав
Anorak2024 May 14, 2025
cb65b1e
че-то поменял.
Anorak2024 May 14, 2025
85e182f
Merge branch 'master220' into anomalies
Anorak2024 May 15, 2025
7ef47c3
Некоторые правки
Anorak2024 May 15, 2025
8176fea
Merge branch 'master220' into anomalies
Anorak2024 May 15, 2025
5c8d7f9
Правки 2
Anorak2024 May 15, 2025
327c79b
Еще фиксы
Anorak2024 May 15, 2025
99fc81c
Правки кодстайла
Anorak2024 May 15, 2025
d73d172
Узел а не провод
Anorak2024 May 15, 2025
b6a9d7a
Защита от огня стабилизатору для баланса
Anorak2024 May 15, 2025
29e9776
Merge branch 'master220' into anomalies
Anorak2024 May 15, 2025
d16b0b1
Merge branch 'master220' into anomalies
Anorak2024 May 15, 2025
15c6357
sdfds
Anorak2024 May 15, 2025
a0c75d7
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 May 15, 2025
1c61d5e
ываыв
Anorak2024 May 15, 2025
3907398
энергетические генератором не спавнились
Anorak2024 May 15, 2025
d3f3176
Merge branch 'master220' into anomalies
Anorak2024 May 15, 2025
0259f1f
При случайной генерации говорилось название аномалии заранее
Anorak2024 May 15, 2025
7d154a5
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 May 15, 2025
4d1178e
sdfsd
Anorak2024 May 15, 2025
669cf3c
Дешевый фикс на коленке
Anorak2024 May 15, 2025
3456dc6
Возможно фиксит бессмертные энергошары
Anorak2024 May 15, 2025
8ec8a56
скан аномалий гостами
Anorak2024 May 15, 2025
e0d72d0
Фикс случайного уменьшения аном в 10 раз
Anorak2024 May 16, 2025
7c023d0
обрубаю дым на всякий
Anorak2024 May 16, 2025
34f3955
Merge branch 'master220' into anomalies
Anorak2024 May 16, 2025
ef25528
Легкое усиление эффектов коллапса граф и энерго. Не сильно важно.
Anorak2024 May 16, 2025
00e061a
Баг с нетратой ядра фазона
Anorak2024 May 16, 2025
6c5953f
Update code/_onclick/hud/alert.dm
Anorak2024 May 17, 2025
4ca0b8c
Update code/_onclick/hud/alert.dm
Anorak2024 May 17, 2025
4819978
Update code/datums/action.dm
Anorak2024 May 17, 2025
1e8fdf4
Update code/modules/anomalies/items/tuned_anomalous_teleporter.dm
Anorak2024 May 17, 2025
d7d5223
Update code/modules/anomalies/anomalies/anomaly.dm
Anorak2024 May 17, 2025
dad1c9c
Merge branch 'master220' into anomalies
Anorak2024 May 17, 2025
82de92e
Update code/modules/anomalies/anomalies/vortex.dm
Anorak2024 May 17, 2025
bc4bcfc
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 May 17, 2025
696daa2
Update code/modules/anomalies/anomaly_stabilizer.dm
Anorak2024 May 17, 2025
860941c
Update code/modules/anomalies/cores.dm
Anorak2024 May 17, 2025
da98dbd
Update code/modules/anomalies/cores.dm
Anorak2024 May 17, 2025
2085cda
Update code/modules/anomalies/cores.dm
Anorak2024 May 17, 2025
6398e41
Update code/modules/anomalies/items/bsg.dm
Anorak2024 May 17, 2025
272d969
Update code/modules/anomalies/items/bsg.dm
Anorak2024 May 17, 2025
06abe6c
Update code/modules/anomalies/items/experimental_syringe_gun.dm
Anorak2024 May 17, 2025
80da65b
фиксы переводов + просто фиксы
Anorak2024 May 17, 2025
c00ce1e
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 May 17, 2025
af443ee
Update code/modules/anomalies/items/gravitational_boots.dm
Anorak2024 May 17, 2025
581235d
еще перевод
Anorak2024 May 17, 2025
b876da5
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 May 17, 2025
932e716
Update code/modules/anomalies/items/pyro_claws.dm
Anorak2024 May 17, 2025
09630a8
Update code/modules/anomalies/items/pyro_claws.dm
Anorak2024 May 17, 2025
15066e0
Update code/modules/anomalies/items/tuned_anomalous_teleporter.dm
Anorak2024 May 17, 2025
69f5a0b
Еще правки перевода
Anorak2024 May 17, 2025
f39c062
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 May 17, 2025
3178242
еще правки перевода
Anorak2024 May 17, 2025
9e65bb3
Update code/game/machinery/constructable_frame.dm
Anorak2024 May 17, 2025
ca69911
ываыва
Anorak2024 May 17, 2025
41217bc
Merge branch 'anomalies' of https://github.com/Anorak2024/Paradise in…
Anorak2024 May 17, 2025
7437a6e
мини фиксы
Anorak2024 May 17, 2025
aa022e8
Тир три ядро за робоквесты
Anorak2024 May 17, 2025
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 @@ -64,7 +64,7 @@ last: Transit
#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 @@ -6398,7 +6398,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 @@ -183,7 +183,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 @@ -307,7 +307,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 @@ -396,6 +396,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 @@ -170,3 +170,5 @@
#define BLOB_ZOMBIE_TRAIT "blob_zombie_trait"

#define ADMIN_OFFER_TRAIT "admin_offer"

#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
3 changes: 1 addition & 2 deletions code/__HELPERS/paths/path.dm
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,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
Expand Down Expand Up @@ -437,4 +437,3 @@ GLOBAL_LIST_INIT(can_pass_info_vars, GLOBAL_PROC_REF(can_pass_check_vars))
dummy.loc = turf
qdel(dummy)
return TRUE

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 @@ -605,7 +605,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
4 changes: 2 additions & 2 deletions code/datums/beam.dm
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@
visuals.layer = beam_layer
visuals.update_appearance()
Draw()
RegisterSignal(origin, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing))
RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing))
RegisterSignal(origin, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing), TRUE)
RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(redrawing), TRUE)

/**
* Triggered by signals set up when the beam is set up. If it's still sane to create a beam, it removes the old beam, creates a new one. Otherwise it kills the beam.
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
Loading