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

🎥 add red flashing intro + Flowey laugh cutscene on fight start #244

Merged
merged 67 commits into from
Oct 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
0fb51b8
🍱 add `intro_flashing_red` variant to `arena_box` model
TheAfroOfDoom Oct 21, 2024
465418d
📋 copy-paste `summit/soul` to `summit/cutscene`
TheAfroOfDoom Oct 21, 2024
2dbfd24
🍱 add pitch-black variants for each Flowey model
TheAfroOfDoom Oct 21, 2024
96eaabe
🔥 delete unused copy-pasted code
TheAfroOfDoom Oct 21, 2024
8be647c
🐛 fix build
TheAfroOfDoom Oct 21, 2024
6d83d5a
🎥 configure infrastructure for `cutscene` bossfight phase
TheAfroOfDoom Oct 21, 2024
2019d6d
💫 add intro `darken` animation functions
TheAfroOfDoom Oct 21, 2024
bd13e95
💫 add intro `brighten` animation functions
TheAfroOfDoom Oct 21, 2024
d86863d
💫 convert default Flowey model animation functions from `play` to `re…
TheAfroOfDoom Oct 21, 2024
74b7e01
🍱 add intro music file
TheAfroOfDoom Oct 21, 2024
7fb3d88
🎥 add victory sound when player finishes bossfight
TheAfroOfDoom Oct 21, 2024
6bced60
📍 adjust bossfight player spawn pitch by +10 degrees
TheAfroOfDoom Oct 21, 2024
6a083d8
💫 add slow variants of largesidevine rotate animations
TheAfroOfDoom Oct 11, 2024
b683d29
💫 add slow variant of nose idle animation
TheAfroOfDoom Oct 21, 2024
e391748
♻️ add animate flag to skip large_side_vine reanimation
TheAfroOfDoom Oct 21, 2024
f4a0bb3
🎥 add red flashing intro + laugh cutscene
TheAfroOfDoom Oct 21, 2024
ea65a0e
💫 add mouth laugh animation
TheAfroOfDoom Oct 11, 2024
5f38711
🔥 delete mouth/teeth animation keyframes
TheAfroOfDoom Oct 11, 2024
108bfb4
⚡️ remove extra teeth bones from mouth
TheAfroOfDoom Oct 11, 2024
2e400ae
💫 add randomized shake to mouth/nose/tvscreen during laugh animation
TheAfroOfDoom Oct 21, 2024
dbc1d2e
💫 add randomized shake to remaining Flowey models during intro laugh
TheAfroOfDoom Oct 11, 2024
a685d96
💫 decrease amount of shake tvscreen has during laugh animation
TheAfroOfDoom Oct 11, 2024
c68239b
temp, lots of glow + laughing animation/texture stuff
TheAfroOfDoom Oct 11, 2024
f0efb28
🎥 switch first phase in summit bossfight from attack phase to intro c…
TheAfroOfDoom Oct 21, 2024
3c06a4d
🍱 fix texture mapping issues
TheAfroOfDoom Oct 21, 2024
6587523
🍱 auto save some ajblueprints
TheAfroOfDoom Oct 21, 2024
d90fb14
🍱 fix wrong sound file definition name
TheAfroOfDoom Oct 21, 2024
0a2b9e1
🐛 fix wrong flowey namespace
TheAfroOfDoom Oct 21, 2024
1f935b7
💫 fix largesidevine `pause` -> `slow`
TheAfroOfDoom Oct 21, 2024
09cc9a9
💫 add and apply `black` variant to simplified petalpipes
TheAfroOfDoom Oct 21, 2024
486af56
💫 add and apply `intro_shake` animations to simplified petalpipes
TheAfroOfDoom Oct 21, 2024
7dbdca7
🍱 fix intro_laugh variant and tvscreen brightness
TheAfroOfDoom Oct 21, 2024
72cb7e1
💄 blind and unblind player right before Flowey intro reveal
TheAfroOfDoom Oct 21, 2024
10855be
💄 improve tvscreen smiling glow effect
TheAfroOfDoom Oct 21, 2024
65d1e38
💄 improve tvscreen warning glow effect
TheAfroOfDoom Oct 21, 2024
8621583
🍱 pixel perfect `screen_glow` element dimensions
TheAfroOfDoom Oct 21, 2024
3968644
🍱 fix tvscreen intro lighting
TheAfroOfDoom Oct 21, 2024
c94c790
🍱 delete tvscreen `screen_glow_laughing` element
TheAfroOfDoom Oct 21, 2024
fe8bdbd
💄 make blind player effect in intro tighter to reveal
TheAfroOfDoom Oct 21, 2024
a45ab75
🐛 flip arena box 180 degrees
TheAfroOfDoom Oct 21, 2024
3ebfe97
🎥 fix wrong smiling variant at laughing stop during intro
TheAfroOfDoom Oct 21, 2024
12f8793
🎥 fix nose still shaking after laughing stops
TheAfroOfDoom Oct 21, 2024
83878aa
🍱 fix nose zfighting during shake animation
TheAfroOfDoom Oct 21, 2024
d78d4ef
🍱 convert all shake animation keyframes to step interpolation
TheAfroOfDoom Oct 21, 2024
c318568
💫 tween to shake animations
TheAfroOfDoom Oct 21, 2024
5034fcc
🎥 fix nose not moving fast once fight starts
TheAfroOfDoom Oct 21, 2024
cb31fc5
💄 improve tvscreen static glow effect
TheAfroOfDoom Oct 21, 2024
524288e
💄 add static-noglow variant and use it appropriately during outside t…
TheAfroOfDoom Oct 21, 2024
0942a86
💄 make smiling box glow noshade
TheAfroOfDoom Oct 21, 2024
7ce5fe1
🚸 replace `@a`'s in cutscene code
TheAfroOfDoom Oct 21, 2024
2aa8caa
🍱 move `intro_laughing` element back so its not as far away from tvsc…
TheAfroOfDoom Oct 21, 2024
e0f2edd
🎥 set to smiling variant post-laugh later than the shake stop
TheAfroOfDoom Oct 21, 2024
345a4b3
🔥 remove invalid `schedule clear` command
TheAfroOfDoom Oct 21, 2024
438ffa4
🚨 delete unused `blank_3` texture
TheAfroOfDoom Oct 21, 2024
9b92452
💄 adjust brightness of static/warning glow
TheAfroOfDoom Oct 21, 2024
1230d1b
✏️ make all instances of `ARENA_VOLUME` consistent
TheAfroOfDoom Oct 21, 2024
2ab161a
🐛 ⚡️ fix x-bullets not despawning and causing massive lag over time
TheAfroOfDoom Oct 21, 2024
1273280
🐛 fix warning animation changing tvscreen bone.box brightness uninten…
TheAfroOfDoom Oct 21, 2024
eebd34d
💄 adjust tvscreen box brightness upon brighten
TheAfroOfDoom Oct 21, 2024
ab2e8a9
🎥 add face reveal animation during intro cutscene
TheAfroOfDoom Oct 22, 2024
6464fa5
🎥 add sound when screen turns on
TheAfroOfDoom Oct 22, 2024
5450c3e
🎥 add 1s to turn_on screen animation
TheAfroOfDoom Oct 22, 2024
15bbbce
🎥 use smiling_wide after laugh
TheAfroOfDoom Oct 22, 2024
160d6e1
🎥 add DEMO title above Flowey during laugh
TheAfroOfDoom Oct 22, 2024
57ac65e
🔊 decrease volume of some intro sounds
TheAfroOfDoom Oct 22, 2024
af4c6c6
🐛 fix DEMO not being deleted if player leaves while it exists
TheAfroOfDoom Oct 22, 2024
af08f0c
🚨 delete unused texture
TheAfroOfDoom Oct 24, 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
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ function omegaflowey.entity:remove_animated_java_models/summit with storage omeg

# Remove other preexisting decorative entities
# NOTE: TAG_SUMMIT_HARDCODED_GLOBAL_VOLUME
kill @e[x=-186, dx=91, y=12, dy=93, z=12, dz=95, tag=decorative, tag=omega-flowey-remastered]
kill @e[x=-186, dx=91, y=10, dy=95, z=12, dz=95, tag=decorative, tag=omega-flowey-remastered]
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
execute if entity @s[tag=boss_fight] run kill @s
execute if entity @s[tag=attack] run kill @s
execute if entity @s[tag=soul] run kill @s
execute if entity @s[tag=boss_fight.decorative] run kill @s
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,13 @@
function omegaflowey.entity:directorial/boss_fight/shared/initialize

# Summon and initialize `arena_box` entity
function animated_java:omegaflowey_arena_box/summon/default
function omegaflowey.entity:directorial/boss_fight/summit/origin/at { command: "\
execute positioned ~ ~ ~-20.5 rotated 0 0 run function animated_java:omegaflowey_arena_box/summon/default\
"}

# Add tags
tag @s add boss_fight.summit

# Summon Omega Flowey entity
function omegaflowey.entity:directorial/boss_fight/summit/origin/at { \
command: "function omegaflowey.entity:hostile/omega-flowey/summon/relative" \
}

# Set all attack parameters to default
function omegaflowey.entity:hostile/omega-flowey/attack/reset_scores

Expand All @@ -22,13 +19,12 @@ function omegaflowey.entity:directorial/boss_fight/shared/reset_scores
scoreboard players set @s omegaflowey.boss-fight.attack.delay -1
scoreboard players set @s omegaflowey.boss-fight.attack.phase.i 0
scoreboard players set @s omegaflowey.boss-fight.attack.phase.total 2
scoreboard players set @s omegaflowey.boss-fight.cutscene.phase.i 0
scoreboard players set @s omegaflowey.boss-fight.cutscene.phase.total 2
scoreboard players set @s omegaflowey.boss-fight.progress.phase.i 0
scoreboard players set @s omegaflowey.boss-fight.progress.phase.total 2

scoreboard players set #omegaflowey.bossfight.attack_phase_total_count omegaflowey.global.flag 0

# Begin animating Omega Flowey entity
function omegaflowey.entity:hostile/omega-flowey/animate

# Initialize attack phase
function omegaflowey.entity:directorial/boss_fight/summit/phase/attack/initialize
# Initialize first cutscene
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/initialize
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ execute unless score #omegaflowey.bossfight.stop_reason omegaflowey.global.flag

# Run loop logic based on what phase the boss_fight is in
execute if entity @s[tag=boss_fight.phase.attack] run function omegaflowey.entity:directorial/boss_fight/summit/phase/attack/loop
execute if entity @s[tag=boss_fight.phase.cutscene] run function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop
execute if entity @s[tag=boss_fight.phase.soul] run function omegaflowey.entity:directorial/boss_fight/summit/phase/soul/loop
execute if entity @s[tag=boss_fight.phase.warn] run function omegaflowey.entity:directorial/boss_fight/summit/phase/warn/loop

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Set scores
scoreboard players set @s omegaflowey.boss-fight.cutscene.clock.i -1

# Add tags
tag @s add boss_fight.phase.cutscene

# Split on phase score
execute if score @s omegaflowey.boss-fight.cutscene.phase.i matches 0 run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/initialize/0 with storage omegaflowey:bossfight
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Summon and animate Omega Flowey entity
function omegaflowey.entity:directorial/boss_fight/summit/origin/at { \
command: "execute positioned ~ ~ ~29.4 run function omegaflowey.entity:hostile/omega-flowey/summon/relative" \
}
execute as @e[ \
x=-186, dx=61, y=12, dy=44, z=47, dz=91, \
type=minecraft:item_display, \
tag=aj.rig_root, \
tag=omega-flowey-remastered \
] run function omegaflowey.entity:hostile/omega-flowey/animate/intro/darken/as_root

function omegaflowey.entity:shared/run_as_active_player_or_spectator { command: "\
execute at @s run playsound omega-flowey:cutscene.intro.music record @s ~ ~ ~ 1 1\
"}

# Set arena box to flashing red variant
$execute as $(arena_box_uuid) run function animated_java:omegaflowey_arena_box/variants/intro_flashing_red/apply

schedule function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/terminate/scheduled 575t
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
scoreboard players add @s omegaflowey.boss-fight.cutscene.clock.i 1

# Run cutscene specific logic
execute if score @s omegaflowey.boss-fight.cutscene.phase.i matches 0 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 0..293 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/approach
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 332 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/turn_on_screen with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 362 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_2 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 363 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_3 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 365 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_4 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 366 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_5 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 367 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_6 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 380 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_7 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 381 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_8 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 383 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_9 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 384 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_10 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 385 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/reveal_11 with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 422 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/undarken with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 442 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/laugh_start with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 562 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/laugh_stop with storage omegaflowey:bossfight
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 564 run return run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/laugh_stop/screen with storage omegaflowey:bossfight
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# move Flowey models -29.4 Z blocks over 294 seconds
### TAG_SUMMIT_HARDCODED_ARENA_VOLUME (and +31 blocks in Z direction)
execute as @e[ \
x=-186, dx=61, y=10, dy=46, z=47, dz=91, \
type=minecraft:item_display, \
tag=aj.rig_root, \
tag=!aj.omegaflowey_arena_box.root, \
tag=omega-flowey-remastered \
] at @s run teleport @s ~ ~ ~-0.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
function omegaflowey.entity:shared/run_as_active_player_or_spectator { command: "\
execute at @s run playsound omega-flowey:cutscene.intro.laugh ambient @s ~ ~ ~ 1 1\
"}

$execute as $(attack_lower_eye_left_uuid) run \
function animated_java:omegaflowey_lower_eye/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(attack_lower_eye_right_uuid) run \
function animated_java:omegaflowey_lower_eye/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }

$execute as $(model_mouth_uuid) run \
function animated_java:omegaflowey_mouth/animations/omegaflowey_laugh/tween { duration: 1, to_frame: 0 }

data modify storage omegaflowey:bossfight temp set value { duration: 1 }
execute store result storage omegaflowey:bossfight temp.to_frame int 1 run scoreboard players get @s aj.omegaflowey_nose_move_slow.frame
$execute as $(model_nose_uuid) run \
function animated_java:omegaflowey_nose/animations/omegaflowey_nose_move_slow_shake/tween with storage omegaflowey:bossfight temp

$execute as $(petal_pipe_lower_left_uuid) run \
function animated_java:omegaflowey_petal_pipe_circle_simplified/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(petal_pipe_upper_left_uuid) run \
function animated_java:omegaflowey_petal_pipe_circle_simplified/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(petal_pipe_lower_right_uuid) run \
function animated_java:omegaflowey_petal_pipe_circle_simplified/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(petal_pipe_upper_right_uuid) run \
function animated_java:omegaflowey_petal_pipe_circle_simplified/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }

$execute as $(petal_pipe_middle_right_uuid) run \
function animated_java:omegaflowey_petal_pipe_middle_simplified/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(petal_pipe_middle_left_uuid) run \
function animated_java:omegaflowey_petal_pipe_middle_simplified/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }

$execute as $(bossfight_tvscreen_uuid) run \
function animated_java:omegaflowey_tv_screen/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(bossfight_tvscreen_uuid) run \
function animated_java:omegaflowey_tv_screen/variants/intro_laughing/apply

$execute as $(attack_upper_eye_left_uuid) run \
function animated_java:omegaflowey_upper_eye/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
$execute as $(attack_upper_eye_right_uuid) run \
function animated_java:omegaflowey_upper_eye/animations/omegaflowey_intro_shake/tween { duration: 1, to_frame: 0 }
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
data modify storage omegaflowey:bossfight temp set value { duration: 1 }
execute store result storage omegaflowey:bossfight temp.to_frame int 1 run scoreboard players get @s aj.omegaflowey_nose_move_slow_shake.frame
$execute as $(model_nose_uuid) run function animated_java:omegaflowey_nose/animations/omegaflowey_nose_move_slow/tween with storage omegaflowey:bossfight temp
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/smiling_wide/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_10/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_11/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_2/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_3/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_4/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_5/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_6/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_7/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_8/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_9/apply
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
$execute as $(bossfight_tvscreen_uuid) run function animated_java:omegaflowey_tv_screen/variants/reveal_1/apply
$execute as $(bossfight_tvscreen_uuid) on passengers if entity @s[tag=aj.omegaflowey_tv_screen.bone] run \
data merge entity @s { brightness: { block: 11, sky: 0 } }

$execute at $(bossfight_tvscreen_uuid) run function omegaflowey.entity:shared/run_as_active_player_or_spectator { command: "\
playsound omega-flowey:cutscene.intro.turn_on ambient @s ~ ~ ~ 5 1\
"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Blind player for transition to bright model
$effect give $(active_player_uuid) minecraft:blindness 1 0 true

### TAG_SUMMIT_HARDCODED_ARENA_VOLUME (and +31 blocks in Z direction)
execute as @e[ \
x=-186, dx=61, y=10, dy=46, z=47, dz=91, \
type=minecraft:item_display, \
tag=aj.rig_root, \
tag=!aj.omegaflowey_arena_box.root, \
tag=omega-flowey-remastered \
] run function omegaflowey.entity:hostile/omega-flowey/animate/intro/brighten/as_root

$execute as $(arena_box_uuid) run function animated_java:omegaflowey_arena_box/variants/default/apply

summon minecraft:text_display -156.5 43.0625 76.0 { \
Tags: [ \
"omega-flowey-remastered", \
"directorial", \
"boss_fight.decorative", \
"demo-intro-title", \
], \
alignment: "center", \
background: 0, \
brightness: { block: 15, sky: 0 }, \
default_background: 0b, \
line_width: 200, \
see_through: 0b, \
shadow: 0b, \
text: '{ "text": "DEMO", "color": "yellow", "bold": true }', \
text_opacity: 255, \
transformation: { \
left_rotation: [0.0f, 0.92387956f, -0.38268352f, 0.0f], \
right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], \
scale: [10.0f, 10.0f, 10.0f], \
translation: [0.0f, 0.0f, 0.0f] \
} \
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$execute as $(boss_fight_uuid) at @s run function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/terminate/as_bossfight with storage omegaflowey:bossfight
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# If cutscene doesn't have a specific terminate function, just proceed to attack phase

# Remove tags
tag @s remove boss_fight.phase.cutscene

# Kill DEMO title
kill @e[ \
x=-156.5, y=43.0625, z=76.0, distance=..0.01, \
type=minecraft:text_display, \
tag=demo-intro-title, \
limit=1 \
]

# Begin animating largesidevines/nose at full speed
$execute as $(large_side_vine_left_uuid) run function omegaflowey.entity:hostile/omega-flowey/animate/large_side_vine/resume_normal_from_slow/left
$execute as $(large_side_vine_right_uuid) run function omegaflowey.entity:hostile/omega-flowey/animate/large_side_vine/resume_normal_from_slow/right
$execute as $(model_nose_uuid) run function animated_java:omegaflowey_nose/animations/move/tween { duration: 1, to_frame: 1 }

# Re-animate main Omega Flowey models
scoreboard players set #omegaflowey.bossfight.skip_reanimate_largesidevine omegaflowey.global.flag 1
scoreboard players set #omegaflowey.bossfight.skip_reanimate_nose omegaflowey.global.flag 1
function omegaflowey.entity:hostile/omega-flowey/animate
scoreboard players set #omegaflowey.bossfight.skip_reanimate_nose omegaflowey.global.flag 0
scoreboard players set #omegaflowey.bossfight.skip_reanimate_largesidevine omegaflowey.global.flag 0

# Next phase
function omegaflowey.entity:directorial/boss_fight/summit/phase/attack/initialize
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/terminate with storage omegaflowey:bossfight
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ function omegaflowey.entity:directorial/boss_fight/shared/phase/soul/loop/next_e

# Split on phase score
execute if score @s omegaflowey.boss-fight.progress.phase.i matches 0 run function omegaflowey.entity:directorial/boss_fight/summit/phase/soul/loop/next_event/0
execute if score @s omegaflowey.boss-fight.progress.phase.i matches 1 run function omegaflowey.entity:directorial/boss_fight/summit/phase/soul/loop/next_event/1
execute if score @s omegaflowey.boss-fight.progress.phase.i matches 1 run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/soul/loop/next_event/1 with storage omegaflowey:bossfight
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
say DONE
$execute at $(bossfight_tvscreen_uuid) run function omegaflowey.entity:shared/run_as_active_player_or_spectator { command: '\
playsound omega-flowey:cutscene.summit.victory ambient @s ~ ~ ~ 5 1\
'}

scoreboard players add @s omegaflowey.boss-fight.progress.phase.i 1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tag @s add summit.no_regen
function gu:generate
data modify storage omegaflowey:bossfight active_player_uuid set from storage gu:main out

teleport @s ~ ~-4.0 ~-27.0 ~180.0 -40.0
teleport @s ~ ~-4.0 ~-27.0 ~180.0 -30.0
spawnpoint @s -142 43 25 -45

effect clear @s
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Set scores
# Length of the WARNING sound
scoreboard players set @s omegaflowey.boss-fight.warn.clock.total 101
scoreboard players set @s omegaflowey.boss-fight.warn.clock.total 6000
# Delay before WARNING sound starts playing/animating
# (2s of grace period where we stop starting attacks, but dont display WARNING yet)
scoreboard players set @s omegaflowey.boss-fight.warn.clock.i -41
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
execute if entity @s[tag=aj.omegaflowey_mouth.root] run function animated_java:omegaflowey_mouth/animations/omegaflowey_move/play
execute if entity @s[tag=aj.omegaflowey_nose.root] run function animated_java:omegaflowey_nose/animations/omegaflowey_move/play
execute if entity @s[tag=aj.omegaflowey_large_side_vine.root] run function omegaflowey.entity:hostile/omega-flowey/animate/large_side_vine
execute if entity @s[tag=aj.omegaflowey_lower_eye.root] run function animated_java:omegaflowey_lower_eye/animations/omegaflowey_look_around/play
execute if entity @s[tag=aj.omegaflowey_mouth.root] run function animated_java:omegaflowey_mouth/animations/omegaflowey_move/resume
execute \
unless score #omegaflowey.bossfight.skip_reanimate_nose omegaflowey.global.flag matches 1 \
if entity @s[tag=aj.omegaflowey_nose.root] \
run function animated_java:omegaflowey_nose/animations/omegaflowey_move/resume
execute \
unless score #omegaflowey.bossfight.skip_reanimate_largesidevine omegaflowey.global.flag matches 1 \
if entity @s[tag=aj.omegaflowey_large_side_vine.root] \
run function omegaflowey.entity:hostile/omega-flowey/animate/large_side_vine
execute if entity @s[tag=aj.omegaflowey_lower_eye.root] run function animated_java:omegaflowey_lower_eye/animations/omegaflowey_look_around/resume
execute if entity @s[tag=aj.omegaflowey_petal_pipe_circle_simplified.root] run function omegaflowey.entity:hostile/omega-flowey/animate/petal_pipe_circle
execute if entity @s[tag=aj.omegaflowey_petal_pipe_middle_simplified.root] run function omegaflowey.entity:hostile/omega-flowey/animate/petal_pipe_middle
execute unless score #omegaflowey.bossfight.skip_resummon_tvscreen omegaflowey.global.flag matches 1 \
if entity @s[tag=aj.omegaflowey_tv_screen.root,tag=tv_screen.boss_fight] run function omegaflowey.entity:hostile/omega-flowey/animate/tv-screen/default
execute if entity @s[tag=aj.omegaflowey_upper_eye.root] run function animated_java:omegaflowey_upper_eye/animations/omegaflowey_look_around/play
execute if entity @s[tag=aj.omegaflowey_upper_eye.root] run function animated_java:omegaflowey_upper_eye/animations/omegaflowey_look_around/resume
Loading