Skip to content

Commit

Permalink
tweak: new cinematics for gods (#6067)
Browse files Browse the repository at this point in the history
* new cinematics for gods
  • Loading branch information
FlitchTime authored Nov 3, 2024
1 parent fb2f2ab commit 51c5d14
Show file tree
Hide file tree
Showing 17 changed files with 176 additions and 70 deletions.
2 changes: 1 addition & 1 deletion _maps/map_files/RandomZLevels/stationCollision.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -1007,7 +1007,7 @@
},
/area/awaymission/research)
"dm" = (
/obj/singularity/narsie/sc_Narsie,
/obj/singularity/god/narsie/sc_Narsie,
/turf/space,
/area/awaymission/research)
"dn" = (
Expand Down
23 changes: 23 additions & 0 deletions code/datums/cinematics/kharin_summon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/datum/cinematic/cult_arm_kharin/play_cinematic()
screen.icon_state = null
flick("intro_cult", screen)
stoplag(2.5 SECONDS)
play_cinematic_sound(sound('sound/misc/enter_blood.ogg'))
stoplag(2.8 SECONDS)
play_cinematic_sound(sound('sound/machines/terminal_off.ogg'))
stoplag(2 SECONDS)
flick("station_corrupted_Kharin", screen)
play_cinematic_sound(sound('sound/effects/ghost.ogg'))
stoplag(7 SECONDS)
special_callback?.Invoke()

/datum/cinematic/cult_fail_kharin/play_cinematic()
screen.icon_state = "station_intact"
stoplag(2 SECONDS)
play_cinematic_sound(sound('sound/effects/narsie_summon.ogg'))
stoplag(6 SECONDS)
play_cinematic_sound(sound('sound/effects/explosion_distant.ogg'))
stoplag(1 SECONDS)
play_cinematic_sound(sound('sound/misc/demon_dies.ogg'))
stoplag(3 SECONDS)
special_callback?.Invoke()
22 changes: 22 additions & 0 deletions code/datums/cinematics/ratvar_summon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/datum/cinematic/cult_arm_ratvar/play_cinematic()
screen.icon_state = null
flick("intro_clockwork", screen)
stoplag(2.5 SECONDS)
play_cinematic_sound(sound('sound/magic/clockwork/reconstruct.ogg'))
stoplag(6 SECONDS)
play_cinematic_sound(sound('sound/machines/terminal_off.ogg'))
stoplag(2 SECONDS)
flick("station_corrupted_Ratvar", screen)
stoplag(7 SECONDS)
special_callback?.Invoke()

/datum/cinematic/cult_fail_ratvar/play_cinematic()
screen.icon_state = "station_intact"
stoplag(2 SECONDS)
play_cinematic_sound(sound('sound/effects/narsie_summon.ogg'))
stoplag(6 SECONDS)
play_cinematic_sound(sound('sound/effects/explosion_distant.ogg'))
stoplag(1 SECONDS)
play_cinematic_sound(sound('sound/misc/demon_dies.ogg'))
stoplag(3 SECONDS)
special_callback?.Invoke()
24 changes: 24 additions & 0 deletions code/datums/cinematics/reaper_summon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/datum/cinematic/cult_arm_reaper/play_cinematic()
screen.icon_state = null
flick("intro_cult", screen)
stoplag(2.5 SECONDS)
play_cinematic_sound(sound('sound/misc/enter_blood.ogg'))
stoplag(2.8 SECONDS)
play_cinematic_sound(sound('sound/machines/terminal_off.ogg'))
stoplag(2 SECONDS)
flick("station_corrupted_Reaper", screen)
play_cinematic_sound(sound('sound/effects/ghost.ogg'))
stoplag(7 SECONDS)
special_callback?.Invoke()


/datum/cinematic/cult_fail_reaper/play_cinematic()
screen.icon_state = "station_intact"
stoplag(2 SECONDS)
play_cinematic_sound(sound('sound/effects/narsie_summon.ogg'))
stoplag(6 SECONDS)
play_cinematic_sound(sound('sound/effects/explosion_distant.ogg'))
stoplag(1 SECONDS)
play_cinematic_sound(sound('sound/misc/demon_dies.ogg'))
stoplag(3 SECONDS)
special_callback?.Invoke()
2 changes: 1 addition & 1 deletion code/game/gamemodes/clockwork/clockwork_gateway.dm
Original file line number Diff line number Diff line change
Expand Up @@ -144,4 +144,4 @@
animate(src, transform = matrix() * 3, alpha = 0, time = 0.5 SECONDS)
QDEL_IN(src, 0.3 SECONDS)
sleep(0.3 SECONDS)
new /obj/singularity/ratvar(get_turf(src))
new /obj/singularity/god/ratvar(get_turf(src))
3 changes: 3 additions & 0 deletions code/game/gamemodes/cult/cult_datums.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
var/dagger_icon = "blood_dagger"
var/sword_icon = "blood_blade"
var/construct_glow = LIGHT_COLOR_BLOOD_MAGIC
var/apocalypse_cinema = /datum/cinematic/cult_arm

//God Entity
var/entity_name = "Nar'Sie"
Expand Down Expand Up @@ -81,6 +82,7 @@
dagger_icon = "hell_dagger"
sword_icon = "hell_blade"
construct_glow = LIGHT_COLOR_FIRE
apocalypse_cinema = /datum/cinematic/cult_arm_kharin

entity_name = "Kha'Rin"
entity_title1 = "The Burning One"
Expand Down Expand Up @@ -140,6 +142,7 @@
dagger_icon = "death_dagger"
sword_icon = "death_blade"
construct_glow = LIGHT_COLOR_DARKRED
apocalypse_cinema = /datum/cinematic/cult_arm_reaper

entity_name = "The Reaper"
entity_title1 = "The Silent One"
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/cult/cult_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@
if(curselimit > 1)
to_chat(user, "<span class='notice'>We have exhausted our ability to curse the shuttle.</span>")
return
if(locate(/obj/singularity/narsie) in GLOB.poi_list || locate(/mob/living/simple_animal/demon/slaughter/cult) in GLOB.mob_list)
if(locate(/obj/singularity/god/narsie) in GLOB.poi_list || locate(/mob/living/simple_animal/demon/slaughter/cult) in GLOB.mob_list)
to_chat(user, "<span class='danger'>Nar'Sie or her avatars are already on this plane, there is no delaying the end of all things.</span>")
return

Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/cult/runes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1004,7 +1004,7 @@ structure_check() searches for nearby cultist structures required for the invoca
update_icon(UPDATE_ICON_STATE)
var/turf/T = get_turf(src)
sleep(40)
new /obj/singularity/narsie/large(T) //Causes Nar'Sie to spawn even if the rune has been removed
new /obj/singularity/god/narsie/large(T) //Causes Nar'Sie to spawn even if the rune has been removed


/obj/effect/rune/narsie/attackby(obj/item/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal.
Expand Down
55 changes: 39 additions & 16 deletions code/game/gamemodes/game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -718,31 +718,54 @@
antaghud.leave_hud(mob_mind.current)
set_antag_hud(mob_mind.current, null)

/datum/game_mode/proc/apocalypse_cinema(obj/singularity/god/god, inevitable = FALSE)
if(god.soul_devoured <= 17 && !inevitable)
return FALSE

if(istype(god, /obj/singularity/god/narsie))
return SSticker.cultdat.apocalypse_cinema

if(istype(god, /obj/singularity/god/ratvar))
return /datum/cinematic/cult_arm_ratvar

return FALSE

/datum/game_mode/proc/apocalypse()
set_security_level(SEC_LEVEL_DELTA)
GLOB.priority_announcement.Announce("Обнаружена угроза класса 'Разрушитель миров'. Самостоятельное решение задачи маловероятно. Моделирование пути решения начато, ожидайте.", "Отдел Центрального Командования по делам высших измерений", 'sound/AI/commandreport.ogg')
GLOB.priority_announcement.Announce("Обнаружена угроза класса 'Разрушитель миров'. Моделирование пути противостояния угрозе начато, ожидайте.", "Отдел Центрального Командования по делам высших измерений", 'sound/AI/commandreport.ogg')
sleep(50 SECONDS)
GLOB.priority_announcement.Announce("Моделирование завершено. Меры будут приняты в ближайшем времени. Всему живому персоналу: не допустите усиления угрозы любой ценой.", "Отдел Центрального Командования по делам высших измерений", 'sound/AI/commandreport.ogg')
GLOB.priority_announcement.Announce("Моделирование завершено. Всему живому персоналу: не допустите усиления угрозы любой ценой. Меры будут приняты в ближайшее время.", "Отдел Центрального Командования по делам высших измерений", 'sound/AI/commandreport.ogg')
sleep(30 SECONDS)
var/obj/singularity/narsie/N = locate(/obj/singularity/narsie) in GLOB.poi_list
var/obj/singularity/ratvar/R = locate(/obj/singularity/ratvar) in GLOB.poi_list
if(!N && !R)
GLOB.priority_announcement.Announce("Угроза пропала с наших сенсоров. Нам требуется срочный отчет о вашей ситуации. Но, мгм, пока что мы санкционировали вам экстренную эвакуацию.", 'sound/AI/commandreport.ogg')

var/obj/singularity/god/god = locate(/obj/singularity/god) in GLOB.poi_list

if(!god)
GLOB.priority_announcement.Announce("Угроза пропала с наших сенсоров. Санкционирована экстренная эвакуация.", "Отдел Центрального Командования по делам высших измерений", 'sound/AI/commandreport.ogg')
SSshuttle.emergency.request(null, 0.3)
SSshuttle.emergency.canRecall = FALSE
return
if(SSticker.cultdat.name == "Cult of Nar'Sie")
if(N.soul_devoured > 20)
play_cinematic(/datum/cinematic/cult_arm, world)
sleep(15 SECONDS)
SSticker.force_ending = TRUE

var/datum/cinematic/cinema = apocalypse_cinema(god, FALSE)

if(!cinema)
var/obj/machinery/nuclearbomb/bomb
for(var/obj/machinery/nuclearbomb/bomb_to_find in GLOB.poi_list)
if(is_station_level(bomb_to_find.z) && bomb_to_find.core)
bomb = bomb_to_find
break

if(bomb)
bomb.safety = FALSE
bomb.explode()
qdel(god)
return
play_cinematic(/datum/cinematic/nuke/self_destruct, world)
sleep(8 SECONDS)
SSticker.force_ending = TRUE
qdel(R)
qdel(N)

cinema = apocalypse_cinema(god, TRUE)

play_cinematic(cinema, world)
sleep(15 SECONDS)
SSticker.force_ending = TRUE
return

#undef NUKE_INTACT
#undef NUKE_CORE_MISSING
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/wizard/artefact.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
w_class = WEIGHT_CLASS_NORMAL
hitsound = 'sound/weapons/bladeslice.ogg'
var/charged = 1
var/spawn_type = /obj/singularity/narsie/wizard
var/spawn_type = /obj/singularity/god/narsie/wizard
var/spawn_amt = 1
var/activate_descriptor = "reality"
var/rend_desc = "You should run now."
Expand Down
10 changes: 5 additions & 5 deletions code/modules/awaymissions/mission_code/stationCollision.dm
Original file line number Diff line number Diff line change
Expand Up @@ -163,22 +163,22 @@ GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]")
/*
* Modified Nar-Sie
*/
/obj/singularity/narsie/sc_Narsie
/obj/singularity/god/narsie/sc_Narsie
desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible."
move_self = 0 //Contianed narsie does not move!
grav_pull = 0 //Contained narsie does not pull stuff in!
var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/hostile/construct)

//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment
/obj/singularity/narsie/sc_Narsie/admin_investigate_setup()
/obj/singularity/god/narsie/sc_Narsie/admin_investigate_setup()
return

/obj/singularity/narsie/sc_Narsie/process()
/obj/singularity/god/narsie/sc_Narsie/process()
eat()
if(prob(25))
mezzer()

/obj/singularity/narsie/sc_Narsie/consume(atom/A)
/obj/singularity/god/narsie/sc_Narsie/consume(atom/A)
if(!A.simulated)
return FALSE
if(is_type_in_list(A, uneatable))
Expand All @@ -201,5 +201,5 @@ GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]")
T.ChangeTurf(T.baseturf)
return

/obj/singularity/narsie/sc_Narsie/ex_act()
/obj/singularity/god/narsie/sc_Narsie/ex_act()
return
10 changes: 8 additions & 2 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1454,12 +1454,18 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
to_chat(src, "<span class='warning'>\The [S] pulls \the [hand] from your grip!</span>")
apply_effect(current_size * 3, IRRADIATE)

/mob/living/carbon/human/narsie_act(obj/singularity/narsie/narsie)
/mob/living/carbon/human/narsie_act(obj/singularity/god/narsie/narsie)
if(iswizard(src) && iscultist(src)) //Wizard cultists are immune to narsie because it would prematurely end the wiz round that's about to end by the automated shuttle call anyway
return
narsie.soul_devoured += 1
if(narsie)
narsie.soul_devoured++
..()

/mob/living/carbon/human/ratvar_act(weak, obj/singularity/god/ratvar/ratvar)
if(ratvar)
ratvar.soul_devoured++
. = ..()

/mob/living/carbon/human/proc/do_cpr(mob/living/carbon/human/H)
if(H == src)
to_chat(src, "<span class='warning'>You cannot perform CPR on yourself!</span>")
Expand Down
Loading

0 comments on commit 51c5d14

Please sign in to comment.