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

Anomaly fix #2872

Merged
merged 27 commits into from
Nov 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
d972c06
skybox
AmShegars Nov 10, 2024
38ab761
text
AmShegars Nov 10, 2024
07c76ae
zjarka->zharka
AmShegars Nov 12, 2024
c182e6a
Gurza detector
AmShegars Nov 12, 2024
91df3b1
Улучшение летающих островов
AmShegars Nov 12, 2024
bbf14ae
Улучшение льда
AmShegars Nov 12, 2024
4721db1
Саргасик ренейм
AmShegars Nov 12, 2024
955871b
Merge branch 'dev-sierra' into AnomalyFix
AmShegars Nov 14, 2024
d73e4b1
фикс ошибки спавна, немного упорядочил спрайты.
AmShegars Nov 14, 2024
d8148b2
Merge branch 'AnomalyFix' of https://github.com/SierraBay/SierraBay12…
AmShegars Nov 14, 2024
2654a9f
организация кода, исправление бага.
AmShegars Nov 14, 2024
bf19dfd
новый артефакт
AmShegars Nov 16, 2024
3ead6fc
Организационные моменты
AmShegars Nov 16, 2024
a43afa4
новый артефакт(дополнение)
AmShegars Nov 16, 2024
083ec8c
новое свойство артефактов
AmShegars Nov 16, 2024
b337189
Перепись гравианомалий, использование нового свойства
AmShegars Nov 16, 2024
66250f9
улучшение кода мониторов
AmShegars Nov 16, 2024
571c422
Выдача гюрзы и болтиков для ГКК
AmShegars Nov 16, 2024
0d13a00
аномки не дают облакам раскрываться
AmShegars Nov 16, 2024
2437f24
Немножечка орфографии
AmShegars Nov 16, 2024
9cf0adc
Merge branch 'dev-sierra' into AnomalyFix
AmShegars Nov 16, 2024
68e56ae
tss
AmShegars Nov 16, 2024
d8de393
Merge branch 'AnomalyFix' of https://github.com/SierraBay/SierraBay12…
AmShegars Nov 16, 2024
165aedd
Merge branch 'dev-sierra' into AnomalyFix
AmShegars Nov 17, 2024
069e4a0
bam
AmShegars Nov 17, 2024
58aa2d9
Merge branch 'AnomalyFix' of https://github.com/SierraBay/SierraBay12…
AmShegars Nov 17, 2024
4e716aa
Merge branch 'dev-sierra' into AnomalyFix
AmShegars Nov 18, 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
6 changes: 0 additions & 6 deletions code/modules/overmap/exoplanets/_exoplanet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,6 @@ GLOBAL_VAR(planet_repopulation_disabled)
generate_features()
for (var/datum/exoplanet_theme/T in themes)
T.after_map_generation(src)
//[SIERRA-ADD] - ANOMALIES
if(can_spawn_anomalies)
generate_anomalies()
if(monitor_effect_type)
generate_monitor_effects()
//[SIERRA-ADD]
generate_landing(2)
update_biome()
generate_daycycle()
Expand Down
10 changes: 8 additions & 2 deletions mods/_maps/farfleet/maps/farfleet-2.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -2589,6 +2589,9 @@
pixel_y = 2
},
/obj/item/device/scanner/health,
/obj/item/reagent_containers/glass/bucket,
/obj/item/reagent_containers/glass/bucket,
/obj/item/reagent_containers/glass/bucket,
/turf/simulated/floor/tiled/techmaint,
/area/ship/farfleet/maintenance/anomaly)
"yK" = (
Expand Down Expand Up @@ -3760,8 +3763,11 @@
pixel_x = -22;
req_access = list("ACCESS_ICCGN")
},
/obj/structure/table/steel_reinforced,
/obj/item/reagent_containers/glass/bucket,
/obj/structure/table/rack,
/obj/item/clothing/gloves/anomaly_detector/gurza,
/obj/item/storage/bolt_bag/full_of_bolts,
/obj/item/storage/bolt_bag/full_of_bolts,
/obj/item/storage/bolt_bag/full_of_bolts,
/turf/simulated/floor/tiled/techmaint,
/area/ship/farfleet/maintenance/anomaly)
"KF" = (
Expand Down
31 changes: 20 additions & 11 deletions mods/anomaly/_anomaly.dme
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#include "code\anomalies\single\tramplin.dm"
#include "code\anomalies\single\ventilyator.dm"
#include "code\anomalies\single\vspishka.dm"
#include "code\anomalies\single\zjarka.dm"
#include "code\anomalies\single\zharka.dm"
//аномалии 3 на 3
#include "code\anomalies\threeandthree\cooler_3x3.dm"
#include "code\anomalies\threeandthree\electra_3x3.dm"
Expand All @@ -44,22 +44,24 @@


//Код артефактов и всё с ними связанное
#include "code\artefacts\anomaly_artefacts.dm" //Ядро артефактов
#include "code\artefacts\artefact_external_interact.dm" //реакции на внешние события на артефакт/носителя
#include "code\artefacts\_anomaly_artefacts.dm" //Ядро артефактов
#include "code\artefacts\_artefact_external_interact.dm" //реакции на внешние события на артефакт/носителя
#include "code\artefacts\_artefact_processing.dm" //Процессинг/постоянная обработка артефакта
#include "code\artefacts\_interact_with_artefacts.dm" //Интеракции с артефактом (Персонаж/URM)
#include "code\artefacts\_artefact_spawn.dm"
#include "code\artefacts\artefact_gravi.dm"
#include "code\artefacts\artefact_processing.dm" //Процессинг/постоянная обработка артефакта
#include "code\artefacts\artefact_pruzhina.dm"
#include "code\artefacts\artefact_spawn.dm"
#include "code\artefacts\artefact_svetlyak.dm"
#include "code\artefacts\artefact_zjar.dm"
#include "code\artefacts\artefact_flyer.dm"
//#include "code\artefacts\artefact_zjemchug.dm"
#include "code\artefacts\interact_with_artefacts.dm" //Интеракции с артефактом (Персонаж/URM)



//Детекторы и прочее оборудование
#include "code\detectors_and_etc\bolt.dm"
#include "code\detectors_and_etc\detector.dm"
#include "code\detectors_and_etc\gurza_detector.dm"
#include "code\detectors_and_etc\collector.dm"
#include "code\detectors_and_etc\deployer.dm"
#include "code\detectors_and_etc\beacon.dm"
Expand All @@ -80,17 +82,24 @@
#include "code\spawn_anomalies_protocol\spawn_anomaly_with_big_artefact.dm" //Код, отвечающий за спавн аномалий вокруг больших артефактов
#include "code\spawn_anomalies_protocol\spawn_with_ruins.dm"
#include "code\spawn_anomalies_protocol\bsd_event_protocol.dm"
#include "code\spawn_anomalies_protocol\planet_spawn_types\vulcanic.dm" //Вулканическая планета
#include "code\spawn_anomalies_protocol\planet_spawn_types\ice.dm" //[WIP] Ледяная планета
#include "code\spawn_anomalies_protocol\planet_spawn_types\flying.dm" //[WIP] Летающие острова
// #include "code\spawn_anomalies_protocol\planet_spawn_types\sargas.dm" // [WIP] Саргасово болото
//Планетарный спавн
#include "code\spawn_anomalies_protocol\planet_spawn_protocol\_planet_spawn_core.dm"
//Летающие острова[WIP]
#include "code\spawn_anomalies_protocol\planet_spawn_protocol\flying_planet\clouds.dm"
#include "code\spawn_anomalies_protocol\planet_spawn_protocol\flying_planet\flying.dm"
//Ледяная планета[WIP]
#include "code\spawn_anomalies_protocol\planet_spawn_protocol\ice.dm"
//Вулкан
#include "code\spawn_anomalies_protocol\planet_spawn_protocol\vulcanic.dm"
//Саргасово болото [WIP-WIP]
// #include "code\spawn_anomalies_protocol\planet_spawn_protocol\sargas.dm"
#include "code\spawn_anomalies_protocol\spawn_on_planet.dm" //Спавн на планетах



//Карты, диреликты и прочее
#include "maps\electra_ruins\electra_ruins.dm"
#include "maps\zjarka_ruins\zjarka_ruins.dm"
#include "maps\zharka_ruins\zharka_ruins.dm"
//Код островов
#include "maps\flying_islands\flying_island.dm"
#include "maps\flying_islands\flying_island_ball.dm"
Expand Down
6 changes: 3 additions & 3 deletions mods/anomaly/code/anomalies/anomalies_premades.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@
walk_time = 2 SECONDS
chance_spawn_walking = 100

/obj/anomaly/zjarka/walking
/obj/anomaly/zharka/walking
chance_spawn_walking = 100

/obj/anomaly/zjarka/short_effect
/obj/anomaly/zharka/short_effect
effect_range = 0

/obj/anomaly/zjarka/long_effect
/obj/anomaly/zharka/long_effect
effect_range = 2

/obj/anomaly/electra/three_and_three/preload
Expand Down
2 changes: 2 additions & 0 deletions mods/anomaly/code/anomalies/anomaly_core.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
/obj/anomaly
name = "Аномалия. Вы не должны это видеть."
anchored = TRUE //Чтоб аномалию не двигало в случае чего.
//Позволяет быстро определять для кода какая именно аномалия (electra, Zharka, и прочее)
var/anomaly_tag
//COULDOWN AND SMTH
///Аномалия уходит на КД после срабатывания?
var/can_be_discharged = FALSE
Expand Down
1 change: 1 addition & 0 deletions mods/anomaly/code/anomalies/single/cooler.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/obj/anomaly/cooler
name = "Refractions of light"
anomaly_tag = "Cooler"
with_sound = FALSE
can_born_artefacts = TRUE
//Длинна эффекта подогрева
Expand Down
1 change: 1 addition & 0 deletions mods/anomaly/code/anomalies/single/electra.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/obj/anomaly/electra
name = "Lightning strikes"
anomaly_tag = "Electra"
with_sound = TRUE
sound_type = 'mods/anomaly/sounds/electra_blast.ogg'
activation_effect_type = "electra_activation"
Expand Down
1 change: 1 addition & 0 deletions mods/anomaly/code/anomalies/single/heater.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/obj/anomaly/heater
name = "Refractions of light"
anomaly_tag = "Heater"
with_sound = FALSE
can_born_artefacts = TRUE
//Длинна эффекта подогрева
Expand Down
47 changes: 30 additions & 17 deletions mods/anomaly/code/anomalies/single/rvach.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

/obj/anomaly/rvach
name = "Refractions of light"
anomaly_tag = "Rvach"
with_sound = TRUE
sound_type = 'mods/anomaly/sounds/rvach_activation.ogg'
idle_effect_type = "rvach_idle"
Expand All @@ -22,7 +23,8 @@
/obj/item
)
artefacts = list(
/obj/item/artefact/gravi = 1
/obj/item/artefact/gravi = 1,
/obj/item/artefact/flyer = 2
)
artefact_spawn_chance = 20
detection_skill_req = SKILL_EXPERIENCED
Expand Down Expand Up @@ -56,7 +58,6 @@
if(victim.skill_check(SKILL_HAULING, SKILL_MASTER))
if(prob(7 * victim.get_skill_value(SKILL_HAULING)))
victim.Weaken(10)
to_chat(victim, SPAN_WARNING("То-ли от страха, то-ли от огромной физической подготовки, вы выныриваете из аномалии."))
return

//Создаём список органов, которые мы МОЖЕМ оторвать
Expand Down Expand Up @@ -95,29 +96,41 @@
for(var/atom/movable/target in src.loc)
get_end_effect_by_anomaly(target)
//Рвач раскидает всех из себя
throw_everyone_from_rvach()
throw_everyone_from_rvach(throw_range)
//Выполняем стандартные действия функции stop_processing_long_effect()
stop_long_visual_effect()
currently_active = FALSE
start_recharge()

//Рвач раскидывает всё что попадает в зону рвача из себя
/obj/anomaly/rvach/proc/throw_everyone_from_rvach()
//Если рвач мультитайтловый
for(var/atom/movable/victim in src.loc)
if(!ismob(victim) && !isitem(victim) )
var/list/victims = list()
var/list/objs = list()
var/turf/T = get_turf(src)
//Собираем все обьекты радиусом на 1 больше, чем расположены вспомогательные части рвачика
get_mobs_and_objs_in_view_fast(T, multititle_parts_range, victims, objs)
LAZYMERGELIST(victims, objs)
for(var/atom/movable/detected_atom in victims)
if((!ismob(detected_atom) && !isitem(detected_atom)) || detected_atom.anchored)
continue
if(!victim.anchored)
victim.throw_at_random(get_turf(src), effect_range+1, 5)
if(multitile)
for(var/obj/anomaly/part/parts in list_of_parts)
var/throw_dir = get_dir(src, parts)
var/target_turf = get_edge_target_turf(parts, throw_dir)
for(var/atom/movable/victim in parts.loc)
if(!ismob(victim) && !isitem(victim) )
continue
if(!victim.anchored)
victim.throw_at(target_turf, effect_range, 5)
var/local_range_of_throw = 1
if(ismob(detected_atom))
var/mob/detected_mob = detected_atom
var/list/result_effects = calculate_artefact_reaction(detected_mob, "Гиб Рвача")
if(result_effects)
//Цель не сможет вышвырнуть из рвача, артефакт не даёт
if(result_effects.Find("Защищает от гиба рвачом"))
return
if(result_effects.Find("Усиливает дальность полёта"))
local_range_of_throw = 5

var/dis = get_dist(src, detected_atom)
if(dis < 1)
detected_atom.throw_at_random(get_turf(src), local_range_of_throw, 5)
else
var/throw_dir = get_dir(src, detected_atom)
var/target_turf = get_ranged_target_turf(detected_atom, throw_dir, local_range_of_throw)
detected_atom.throw_at(target_turf, local_range_of_throw, 5)


/proc/rvach_pull_around(atom/target, pull_range = 255, pull_power = STAGE_FIVE)
Expand Down
14 changes: 10 additions & 4 deletions mods/anomaly/code/anomalies/single/tramplin.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/obj/anomaly/tramplin
name = "Refractions of light"
anomaly_tag = "Tramp"
with_sound = TRUE
sound_type = 'mods/anomaly/sounds/tramplin.ogg'
idle_effect_type = "trampline_idle"
Expand All @@ -13,6 +14,9 @@
/mob/living,
/obj/item
)
artefacts = list(
/obj/item/artefact/flyer = 1
)
//Рандомизация
ranzomize_with_initialize = TRUE
can_born_artefacts = FALSE
Expand All @@ -36,13 +40,15 @@
/obj/anomaly/tramplin/get_effect_by_anomaly(target)
if(ismech(target))
return

var/local_range_of_throw = range_of_throw
if(istype(target, /mob/living))
SSanom.add_last_attack(target, "Трамплин")
var/list/result_effects = calculate_artefact_reaction(target, "Трамплин")
if(result_effects)
if(result_effects.Find("Не даёт кинуть"))
return
if(result_effects.Find("Усиливает дальность полёта"))
local_range_of_throw = local_range_of_throw * 3

if(ishuman(target))
var/mob/living/carbon/human/victim = target
Expand All @@ -56,15 +62,15 @@
var/turf/own_turf = get_turf(src)
var/turf/target_turf = own_turf
if(!random_throw_dir)
target_turf = get_ranged_target_turf(target, throw_dir, range_of_throw)
target_turf = get_ranged_target_turf(target, throw_dir, local_range_of_throw)
var/atom/movable/victim = target
if(isliving(victim))
var/mob/victim_mob = victim
victim_mob.Weaken(1)
if(random_throw_dir)
victim.throw_at_random(own_turf, range_of_throw, speed_of_throw )
victim.throw_at_random(own_turf, local_range_of_throw, speed_of_throw )
else
victim.throw_at(target_turf, range_of_throw, speed_of_throw)
victim.throw_at(target_turf, local_range_of_throw, speed_of_throw)

/obj/anomaly/tramplin/get_detection_icon()
return "trampline_detection"
1 change: 1 addition & 0 deletions mods/anomaly/code/anomalies/single/ventilyator.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

/obj/anomaly/ventilyator
name = "air flows"
anomaly_tag = "Vent"
with_sound = TRUE
sound_type = 'mods/anomaly/sounds/tramplin.ogg'
idle_effect_type = "trampline_idle"
Expand Down
1 change: 1 addition & 0 deletions mods/anomaly/code/anomalies/single/vspishka.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/obj/anomaly/vspishka
name = "Brightest flash"
anomaly_tag = "Vspishka"
with_sound = TRUE
sound_type = 'mods/anomaly/sounds/vspishka_activated.ogg'
idle_effect_type = "vspishka_idle"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/obj/anomaly/zjarka
/obj/anomaly/zharka
name = "Jet of flame"
anomaly_tag = "Zharka"
with_sound = TRUE
sound_type = 'mods/anomaly/sounds/zjarka.ogg'
idle_effect_type = "zjarka_idle"
sound_type = 'mods/anomaly/sounds/zharka.ogg'
idle_effect_type = "zharka_idle"
detection_icon_state = "hot_anomaly"
layer = ABOVE_HUMAN_LAYER
light_after_activation = TRUE
Expand All @@ -14,7 +15,7 @@
can_born_artefacts = TRUE
//Урон который наносит открытое пламя телу в
var/burn_damage = 10
activation_effect_type = "zjarka_active"
activation_effect_type = "zharka_active"

special_iniciators = list(
/obj/item
Expand All @@ -37,7 +38,7 @@
detection_skill_req = SKILL_BASIC


/obj/anomaly/zjarka/activate_anomaly()
/obj/anomaly/zharka/activate_anomaly()
last_activation_time = world.time
var/list/victims = list()
var/list/objs = list()
Expand All @@ -51,7 +52,7 @@
anything_in_ashes(I)
.=..()

/obj/anomaly/zjarka/get_effect_by_anomaly(atom/movable/target)
/obj/anomaly/zharka/get_effect_by_anomaly(atom/movable/target)
if(!isturf(target.loc))
return
if(isanomaly(target))
Expand All @@ -75,7 +76,7 @@
anything_in_ashes(target)

///Жарим всех вокруг в течении действия аномалии
/obj/anomaly/zjarka/process_long_effect()
/obj/anomaly/zharka/process_long_effect()
var/list/victims = list()
var/list/objs = list()
var/turf/T = get_turf(src)
Expand All @@ -88,7 +89,7 @@
get_effect_by_anomaly(atoms)
start_processing_long_effect()

/obj/anomaly/zjarka/Crossed(atom/movable/O)
/obj/anomaly/zharka/Crossed(atom/movable/O)
if(currently_active)
get_effect_by_anomaly(O)
if(currently_charging_after_activation)
Expand All @@ -98,10 +99,10 @@
return


/obj/anomaly/zjarka/get_detection_icon()
/obj/anomaly/zharka/get_detection_icon()
if(effect_range == 1 || effect_range == 0)
return "zjarka_detection"
return "zharka_detection"
else if(effect_range == 2)
return "zjarka_first_detection"
return "zharka_first_detection"
else if(effect_range > 2)
return "zjarka_second_detection"
return "zharka_second_detection"
6 changes: 3 additions & 3 deletions mods/anomaly/code/anomaly_admin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@


var/list/possible_anomalies = list(
/obj/anomaly/zjarka = "Жарка - аномалия накладывающая BURN урон и поджигающая всех в зоне поражения. Взводится от болта и мобов.",
/obj/anomaly/zjarka/short_effect = "Жарка - аномалия накладывающая BURN урон и поджигающая всех в зоне поражения. Взводится от болта и мобов.",
/obj/anomaly/zjarka/long_effect = "Жарка - аномалия накладывающая BURN урон и поджигающая всех в зоне поражения. Взводится от болта и мобов.",
/obj/anomaly/zharka = "Жарка - аномалия накладывающая BURN урон и поджигающая всех в зоне поражения. Взводится от болта и мобов.",
/obj/anomaly/zharka/short_effect = "Жарка - аномалия накладывающая BURN урон и поджигающая всех в зоне поражения. Взводится от болта и мобов.",
/obj/anomaly/zharka/long_effect = "Жарка - аномалия накладывающая BURN урон и поджигающая всех в зоне поражения. Взводится от болта и мобов.",
/obj/anomaly/electra/three_and_three = "Электра - аномалия наносящая электроудар (50 урона + стан) всех в зоне поражения. Реагирует на мобов, металлические предметы. Подтип ТЕСЛА бьёт дальше чем чувствует, параметр предзарядка заставит её сперва зарядить, и лишь потом ударить. НЕ СОВЕТУЮ СОВМЕЩАТЬ ТЕСЛУ И ПРЕДЗАРЯДКУ.",
/obj/anomaly/electra/three_and_three/tesla = "Электра - аномалия наносящая электроудар (50 урона + стан) всех в зоне поражения. Реагирует на мобов, металлические предметы. Подтип ТЕСЛА бьёт дальше чем чувствует, параметр предзарядка заставит её сперва зарядить, и лишь потом ударить. НЕ СОВЕТУЮ СОВМЕЩАТЬ ТЕСЛУ И ПРЕДЗАРЯДКУ.",
/obj/anomaly/electra/three_and_three/tesla_second = "Электра - аномалия наносящая электроудар (50 урона + стан) всех в зоне поражения. Реагирует на мобов, металлические предметы. Подтип ТЕСЛА бьёт дальше чем чувствует, параметр предзарядка заставит её сперва зарядить, и лишь потом ударить. НЕ СОВЕТУЮ СОВМЕЩАТЬ ТЕСЛУ И ПРЕДЗАРЯДКУ.",
Expand Down
Loading