Skip to content

Commit

Permalink
MAIN
Browse files Browse the repository at this point in the history
dam
  • Loading branch information
AmShegars committed Oct 22, 2024
1 parent f068e8a commit ff699a4
Show file tree
Hide file tree
Showing 70 changed files with 1,903 additions and 404 deletions.
2 changes: 2 additions & 0 deletions code/controllers/subsystems/supply.dm
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,11 @@ SUBSYSTEM_DEF(supply)
if(istype(A, /obj/item/artefact))
var/obj/item/artefact/D = A
add_points_from_source(D.cargo_price, "artefacts")
SSanom.earned_cargo_points += D.cargo_price
if(istype(A, /obj/item/collector))
var/obj/item/collector/D = A
add_points_from_source(D.stored_artefact.cargo_price, "artefacts")
SSanom.earned_cargo_points += D.stored_artefact.cargo_price
//[SIERRA-ADD]

// Sell artefacts (in anomaly cages)
Expand Down
4 changes: 4 additions & 0 deletions code/game/gamemodes/game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,10 @@ var/global/list/additional_antag_types = list()
send2mainirc("A round of [src.name] has ended - [data["surviving_total"]] survivor\s, [data["ghosts"]] ghost\s.")
SSwebhooks.send(WEBHOOK_ROUNDEND, data)

//[SIERRA-ADD] - ANOMALY
//Данный отрезок кода выведет информацию об АНОМАЛИЯХ в раунде
to_world(SSanom.give_gameover_text())
//[SIERRA-ADD]
return 0

/datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere.
Expand Down
2 changes: 2 additions & 0 deletions code/modules/overmap/exoplanets/_exoplanet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ GLOBAL_VAR(planet_repopulation_disabled)
//[SIERRA-ADD] - ANOMALIES
if(can_spawn_anomalies)
generate_anomalies()
if(monitor_effect_type)
generate_monitor_effects()
//[SIERRA-ADD]
generate_landing(2)
update_biome()
Expand Down
1 change: 1 addition & 0 deletions mods/RnD/code/experiment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,7 @@ var/global/list/rnd_server_list = list()
reward = artefacts.rnd_points
points += reward
saved_small_artefacts += artefacts
SSanom.earned_rnd_points += reward
for(var/obj/item/small_artefact_scan_disk/input_disk in I.scanned_urm_interactions)
if(input_disk.interaction_id in saved_urm_interactions)
continue
Expand Down
114 changes: 70 additions & 44 deletions mods/anomaly/_anomaly.dme
Original file line number Diff line number Diff line change
Expand Up @@ -5,58 +5,74 @@
// Далее просто включай свой код
// #include "code/something.dm"
#include "code\anomaly_admin.dm" //Админские кнопочки
#include "code\anomaly_core.dm" //Ядро и основа аномалий
#include "code\anomaly_graphic.dm" //Графика и внешний вид
#include "code\anomaly_light.dm" //Освещение, вспышки и тому подобное
#include "code\anomaly_parts.dm" //Код, отвечающий за многотайтловость аномалий
#include "code\interact_with_items.dm" //Взаимодействие аномалий с предметами и обьектами
#include "code\anomaly_loop.dm" //Код, отвечающий за длительную обработку аномалии
#include "code\anomaly_deleting.dm" //Удаление аномалий, артефактов и вспомогательных частей
#include "code\anomaly_preload.dm" //Предзарядка аномалии
#include "code\anomaly_sound.dm" //Звуки у аномалий
#include "code\anomaly_randomize.dm" //Рандомизация параметров аномалии
#include "code\anomaly_controller.dm" //Контроллер аномалий
#include "code\anomaly_walking.dm" //Бродячие аномалии
#include "code\anomaly_electrostatic.dm" //Электростатический расчёт
#include "code\anomaly_defines.dm"


//Аномалии
//Типы аномалий
#include "code\anomalies\single\cooler.dm"
#include "code\anomalies\single\electra.dm"
#include "code\anomalies\single\heater.dm"
#include "code\anomalies\single\rvach.dm"
#include "code\anomalies\single\tramplin.dm"
#include "code\anomalies\single\ventilyator.dm"
#include "code\anomalies\single\vspishka.dm"
#include "code\anomalies\single\zjarka.dm"
//аномалии 3 на 3
#include "code\anomalies\threeandthree\cooler_3x3.dm"
#include "code\anomalies\threeandthree\electra_3x3.dm"
#include "code\anomalies\threeandthree\heater_3x3.dm"
#include "code\anomalies\threeandthree\rvach_3x3.dm"
//аномалии 2 на 2
#include "code\anomalies\twoandtwo\cooler2x2.dm"
#include "code\anomalies\twoandtwo\heater2x2.dm"
//Сам код аномалий
#include "code\anomalies\anomalies_premades.dm" //Премейды аномалий
#include "code\anomalies\anomaly_core.dm"//Ядро аномок
#include "code\anomalies\anomaly_deleting.dm" //Код отвечающий за удаление аномалий
#include "code\anomalies\anomaly_electrostatic.dm" //Код отвечающий за просчёт подверженности турфа аномалией.
#include "code\anomalies\anomaly_graphic.dm" //Графика, спрайты - всё тут
#include "code\anomalies\anomaly_loop.dm" //Аномалии с длительной работой/воздействием
#include "code\anomalies\anomaly_parts.dm" //Мультитайтловость аномалий
#include "code\anomalies\anomaly_preload.dm" //Код, отвечающий за предзарядку аномалий перед ударом
#include "code\anomalies\anomaly_randomize.dm" //Рандомизация параметров и типа аномалий
#include "code\anomalies\anomaly_sound.dm" // Звуки, опять звуки - всё тут
#include "code\anomalies\anomaly_walking.dm" // [Work In Progress] - Блуждающие аномалии
#include "code\anomalies\interact_with_items.dm" // Влияние артефактов на предметы. TODO - варка артефактов и прочее



//Код артефактов и всё с ними связанное
#include "code\artefacts\anomaly_artefacts.dm" //Ядро артефактов
#include "code\artefacts\artefact_external_interact.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_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\collector.dm"
#include "code\detectors_and_etc\deployer.dm"
#include "code\detectors_and_etc\beacon.dm"
#include "code\detectors_and_etc\research_machine.dm"


//Код артефактов и всё с ними связанное
#include "code\artifacts\anomaly_artifact_spawn.dm"
#include "code\artifacts\anomaly_artifacts.dm"
#include "code\artifacts\interact_with_artefacts.dm"
#include "code\artifacts\artefact_pruzhina.dm"
#include "code\artifacts\artefact_zjar.dm"
#include "code\artifacts\artefact_svetlyak.dm"
#include "code\artifacts\artefact_gravi.dm"


//Все типы аномалий
#include "code\anomalies\electra.dm"
#include "code\anomalies\rvach.dm"
#include "code\anomalies\vspishka.dm"
#include "code\anomalies\single\tramplin.dm"
#include "code\anomalies\single\zjarka.dm"
#include "code\anomalies\heater.dm"
#include "code\anomalies\cooler.dm"
// #include "code\anomalies\ventilyator.dm"

//Аномалия 2 на 2
#include "code\anomalies\twoandtwo\heater2x2.dm"
#include "code\anomalies\twoandtwo\cooler2x2.dm"


//Аномалия 3 на 3
#include "code\anomalies\threeandthree\electra_3x3.dm"
#include "code\anomalies\threeandthree\rvach_3x3.dm"
#include "code\anomalies\threeandthree\heater_3x3.dm"
#include "code\anomalies\threeandthree\cooler_3x3.dm"
//Погода и эффекты на мониторе
#include "code\monitor_effects\monitor_core.dm"
#include "code\monitor_effects\monitor_vars.dm"
#include "code\monitor_effects\snow_monitor_effect.dm"
#include "code\monitor_effects\swamp_monitor_effect.dm"
#include "code\monitor_effects\vulcan_monitor_effect.dm"


//Размещение аномалий в игре
Expand All @@ -65,14 +81,24 @@
#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" //Ледяная планета
// #include "code\spawn_anomalies_protocol\planet_spawn_types\flying.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\spawn_on_planet.dm" //Спавн на планетах
#include "code\anomalies\threeandthree\anomalies_premades.dm" //"Заготовки" аномалий



//Карты, диреликты и прочее
#include "maps\electra_ruins\electra_ruins.dm"
#include "maps\zjarka_ruins\zjarka_ruins.dm"

#endif
// BEGIN_INTERNALS
// END_INTERNALS
// BEGIN_FILE_DIR
#define FILE_DIR .
// END_FILE_DIR
// BEGIN_PREFERENCES
// END_PREFERENCES
// BEGIN_INCLUDE
// END_INCLUDE
10 changes: 0 additions & 10 deletions mods/anomaly/code/README.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
.=..()


/obj/anomaly/thamplin/random
/obj/anomaly/tramplin/random
random_throw_dir = TRUE

/obj/anomaly/thamplin/random/always_powerfull_walking
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@
-Обработка перезарядки, КД аномалии
-Инициализация аномалии в мире
*/
#define LONG_ANOMALY_EFFECT 1
#define MOMENTUM_ANOMALY_EFFECT 2
#define DEFAULT_ANOMALY_EFFECT 0
#define isanomaly(A) istype(A, /obj/anomaly)

/obj/anomaly
name = "Аномалия. Вы не должны это видеть."
Expand All @@ -34,6 +30,8 @@
var/list/special_iniciators = list()
///Список этих самых специальных условий для аномалии
var/list/special_iniciators_flags = list()
///Вес на который реагирует аномалия. Если FALSE - не смотрит на вес. Если вес обьекта выше переменной - на него реагируют. Ниже - нет.
var/weight_sensity = FALSE
/// Радиус, в котором бьёт аномалия. Ваша аномалия может "Чуять" на одном расстоянии, а бить на более большом!
var/effect_range = 0

Expand All @@ -50,6 +48,10 @@

///Аномалия по причине пересечения или ещё какой причине проверяет, может ли она "Взвестить от этого инициатора"
/obj/anomaly/proc/can_be_activated(atom/movable/target)
if(weight_sensity && isitem(target))
var/obj/item/detected_item = target
if(weight_sensity != detected_item.w_class || weight_sensity > detected_item.w_class) //Вес предмета ниже чем чувствительность аномалии.
return "too small weight"
for(var/i in iniciators)
if(istype(target, i))
return TRUE
Expand All @@ -67,12 +69,13 @@
return FALSE

///Сама активация аномалии
/obj/anomaly/proc/activate_anomaly()
/obj/anomaly/proc/activate_anomaly(activate_friends = FALSE)
return

//Обязательно вызываем обработку результатов активации
/obj/anomaly/activate_anomaly()
.=..()
SSanom.anomalies_activated_times++
handle_after_activation()


Expand Down Expand Up @@ -165,7 +168,10 @@
//Спавн аномалии, её размещение и т.д
/obj/anomaly/Initialize()
. = ..()
SSanom.add_anomaly_in_list(src)
if(is_helper)
SSanom.add_anomaly_in_helpers(src)
else
SSanom.add_anomaly_in_cores(src)
preload_time = cooldown_time
if(ranzomize_with_initialize)
ranzomize_parameters()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
delete_anomaly()

/obj/anomaly/proc/delete_anomaly()
SSanom.remove_anomaly_from_list(src)
SSanom.remove_anomaly_from_cores(src)
calculate_effected_turfs_from_deleting_anomaly(src)
if(multitile)
for(var/obj/anomaly/part in list_of_parts)
part.delete_anomaly()
qdel(src)

/obj/anomaly/part/delete_anomaly()
SSanom.remove_anomaly_from_helpers(src)
qdel(src)


Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,23 @@
var/activation_effect_type
///Эффект в идле
var/idle_effect_type = "none"
///Как видят аномалию при обнаружении
var/detection_icon_state = "any_anomaly"
plane = OBSERVER_PLANE
///Здесь вам потребуется вручную указать длинну анимации, для того чтоб игра вновь сделала её невидимой и некликабельной для игрока
//Костыль, но лучше решения ещё не придумал
var/momentum_animation_long = 0.6 SECONDS


///Сделать вспышку после активации?
var/light_after_activation = FALSE
///Время, которое будет держаться свет от активации
var/time_of_light = 1 SECOND
///Цвет вспышки
var/color_of_light = COLOR_WHITE
var/range_of_light = 3
var/power_of_light = 2

/obj/anomaly/proc/do_momentum_animation()
if(activation_effect_type)
invisibility = 0
Expand All @@ -37,3 +49,15 @@
plane = WARP_EFFECT_PLANE
appearance_flags = DEFAULT_APPEARANCE_FLAGS | TILE_BOUND
z_flags = ZMM_IGNORE




///Запускаем свет/вспышку
/obj/anomaly/proc/start_light()
set_light(3, 2, color_of_light)
addtimer(new Callback(src, PROC_REF(stop_light)), time_of_light)

///Убираем свет/вспышку
/obj/anomaly/proc/stop_light()
set_light(0)
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
/obj/anomaly
///Аномалия состоит из множества частей?
var/multitile = FALSE
///Означает, что обьект является вспомогательной частью. Применяется для контроллера.
var/is_helper = FALSE
///Радиус в котором спавнятся остальные части от ядра
var/multititle_parts_range = 1
var/list/list_of_parts
Expand Down Expand Up @@ -39,10 +41,15 @@
part.core = src

///Этот обьект в случае детектирования подходящих условий, передаст информацию ядру.
/obj/anomaly/part/Initialize()
. = ..()
SSanom.add_anomaly_in_helpers(src)

/obj/anomaly/part
///ЯДРО, которму и передатся информация
var/obj/anomaly/core
name = "Вспомогательная часть аномалии."
is_helper = TRUE


///Если какой-либо атом пересекает вспомогательную часть - передаём сигнал ядру
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
///Путь до звука
var/sound_type
///Мощность аномалии
var/effect_power = DEFAULT_ANOMALY_EFFECT
var/effect_power = MOMENTUM_ANOMALY_EFFECT
//У аномалии есть статичный звук
var/have_static_sound = FALSE
//Путь до звука статики
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
//Здесь расположен код отвечающие за взаимодействие с предметами.
//Здесь расположен код отвечающие за взаимодействие аномалий с предметами.
/proc/anything_in_ashes(atom/input_item)
var/turf/to_place = get_turf(input_item)
input_item.visible_message(SPAN_BAD("[input_item] плавится!"))
new /obj/decal/cleanable/ash (to_place)
qdel(input_item)

/proc/anything_in_remains(atom/input_item)
var/turf/to_place = get_turf(input_item)
input_item.visible_message(SPAN_BAD("Тело [input_item] испепелило до костей!"))
new /obj/item/remains (to_place)
qdel(input_item)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/obj/anomaly/cooler
name = "Refractions of light"
with_sound = FALSE
can_born_artifacts = TRUE
can_born_artefacts = TRUE
//Длинна эффекта подогрева
effect_time = 30 SECONDS
effect_type = LONG_ANOMALY_EFFECT
Expand Down
Loading

0 comments on commit ff699a4

Please sign in to comment.