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

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

Merged
merged 66 commits into from
Oct 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d157b7d
🍱 add `intro_flashing_red` variant to `arena_box` model
TheAfroOfDoom Oct 21, 2024
35a1099
📋 copy-paste `summit/soul` to `summit/cutscene`
TheAfroOfDoom Oct 21, 2024
e303b20
🍱 add pitch-black variants for each Flowey model
TheAfroOfDoom Oct 21, 2024
a2b7bde
🔥 delete unused copy-pasted code
TheAfroOfDoom Oct 21, 2024
8eda2ca
🎥 configure infrastructure for `cutscene` bossfight phase
TheAfroOfDoom Oct 21, 2024
d6f412d
💫 add intro `darken` animation functions
TheAfroOfDoom Oct 21, 2024
b6d7eea
💫 add intro `brighten` animation functions
TheAfroOfDoom Oct 21, 2024
2942105
💫 convert default Flowey model animation functions from `play` to `re…
TheAfroOfDoom Oct 21, 2024
b772951
🍱 add intro music file
TheAfroOfDoom Oct 21, 2024
4aa107e
🎥 add victory sound when player finishes bossfight
TheAfroOfDoom Oct 21, 2024
6672c38
💫 add slow variants of largesidevine rotate animations
TheAfroOfDoom Oct 11, 2024
f9e1206
💫 add slow variant of nose idle animation
TheAfroOfDoom Oct 21, 2024
aebedb7
♻️ add animate flag to skip large_side_vine reanimation
TheAfroOfDoom Oct 21, 2024
5d09666
🎥 add red flashing intro + laugh cutscene
TheAfroOfDoom Oct 21, 2024
b826940
💫 add mouth laugh animation
TheAfroOfDoom Oct 11, 2024
f1e599d
🔥 delete mouth/teeth animation keyframes
TheAfroOfDoom Oct 11, 2024
4a525c4
⚡️ remove extra teeth bones from mouth
TheAfroOfDoom Oct 11, 2024
d7e2ae5
💫 add randomized shake to mouth/nose/tvscreen during laugh animation
TheAfroOfDoom Oct 21, 2024
bc7404f
💫 add randomized shake to remaining Flowey models during intro laugh
TheAfroOfDoom Oct 11, 2024
a637b12
💫 decrease amount of shake tvscreen has during laugh animation
TheAfroOfDoom Oct 11, 2024
05c7b0b
temp, lots of glow + laughing animation/texture stuff
TheAfroOfDoom Oct 11, 2024
eecf3b6
🎥 switch first phase in summit bossfight from attack phase to intro c…
TheAfroOfDoom Oct 21, 2024
db2571c
🍱 fix texture mapping issues
TheAfroOfDoom Oct 21, 2024
2343032
🍱 auto save some ajblueprints
TheAfroOfDoom Oct 21, 2024
1830ccd
🍱 fix wrong sound file definition name
TheAfroOfDoom Oct 21, 2024
df57de7
🐛 fix wrong flowey namespace
TheAfroOfDoom Oct 21, 2024
992b694
💫 fix largesidevine `pause` -> `slow`
TheAfroOfDoom Oct 21, 2024
34bbd94
💫 add and apply `black` variant to simplified petalpipes
TheAfroOfDoom Oct 21, 2024
4b007ea
💫 add and apply `intro_shake` animations to simplified petalpipes
TheAfroOfDoom Oct 21, 2024
24d8610
🍱 fix intro_laugh variant and tvscreen brightness
TheAfroOfDoom Oct 21, 2024
e02d2cd
💄 blind and unblind player right before Flowey intro reveal
TheAfroOfDoom Oct 21, 2024
94210ac
💄 improve tvscreen smiling glow effect
TheAfroOfDoom Oct 21, 2024
de5ddef
💄 improve tvscreen warning glow effect
TheAfroOfDoom Oct 21, 2024
aed1b9f
🍱 pixel perfect `screen_glow` element dimensions
TheAfroOfDoom Oct 21, 2024
a32903f
🍱 fix tvscreen intro lighting
TheAfroOfDoom Oct 21, 2024
21397c2
🍱 delete tvscreen `screen_glow_laughing` element
TheAfroOfDoom Oct 21, 2024
4a85685
💄 make blind player effect in intro tighter to reveal
TheAfroOfDoom Oct 21, 2024
fe1b3d9
🐛 flip arena box 180 degrees
TheAfroOfDoom Oct 21, 2024
4f5a218
🎥 fix wrong smiling variant at laughing stop during intro
TheAfroOfDoom Oct 21, 2024
a5568a0
🎥 fix nose still shaking after laughing stops
TheAfroOfDoom Oct 21, 2024
7ab40af
🍱 fix nose zfighting during shake animation
TheAfroOfDoom Oct 21, 2024
3aaa844
🍱 convert all shake animation keyframes to step interpolation
TheAfroOfDoom Oct 21, 2024
f620e57
💫 tween to shake animations
TheAfroOfDoom Oct 21, 2024
9b5dee7
🎥 fix nose not moving fast once fight starts
TheAfroOfDoom Oct 21, 2024
14c388a
💄 improve tvscreen static glow effect
TheAfroOfDoom Oct 21, 2024
a7d971d
💄 add static-noglow variant and use it appropriately during outside t…
TheAfroOfDoom Oct 21, 2024
1c5ae8e
💄 make smiling box glow noshade
TheAfroOfDoom Oct 21, 2024
f9e6f76
🚸 replace `@a`'s in cutscene code
TheAfroOfDoom Oct 21, 2024
3e800a8
🍱 move `intro_laughing` element back so its not as far away from tvsc…
TheAfroOfDoom Oct 21, 2024
ba88177
🎥 set to smiling variant post-laugh later than the shake stop
TheAfroOfDoom Oct 21, 2024
7d82037
🔥 remove invalid `schedule clear` command
TheAfroOfDoom Oct 21, 2024
fc9000f
🚨 delete unused `blank_3` texture
TheAfroOfDoom Oct 21, 2024
b28ef24
💄 adjust brightness of static/warning glow
TheAfroOfDoom Oct 21, 2024
8bc0293
✏️ make all instances of `ARENA_VOLUME` consistent
TheAfroOfDoom Oct 21, 2024
3614143
🐛 ⚡️ fix x-bullets not despawning and causing massive lag over time
TheAfroOfDoom Oct 21, 2024
6685218
🐛 fix warning animation changing tvscreen bone.box brightness uninten…
TheAfroOfDoom Oct 21, 2024
e169702
💄 adjust tvscreen box brightness upon brighten
TheAfroOfDoom Oct 21, 2024
f3b4b38
🎥 add face reveal animation during intro cutscene
TheAfroOfDoom Oct 22, 2024
9a1e472
🎥 add sound when screen turns on
TheAfroOfDoom Oct 22, 2024
1a7f4e7
🎥 add 1s to turn_on screen animation
TheAfroOfDoom Oct 22, 2024
a4ce49e
🎥 use smiling_wide after laugh
TheAfroOfDoom Oct 22, 2024
2f40899
🎥 add DEMO title above Flowey during laugh
TheAfroOfDoom Oct 22, 2024
d3b7479
🔊 decrease volume of some intro sounds
TheAfroOfDoom Oct 22, 2024
abeeeab
🐛 fix DEMO not being deleted if player leaves while it exists
TheAfroOfDoom Oct 22, 2024
34e532a
🎥 add sounds + animation when being teleported to bossfight
TheAfroOfDoom Oct 22, 2024
b50d7ca
🚨 delete unused texture
TheAfroOfDoom Oct 23, 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,5 +1,4 @@
# Assume the active player does not exist
scoreboard players set #omegaflowey.bossfight.stop_reason omegaflowey.global.flag 1

# TAG_SUMMIT_HARDCODED_ARENA_VOLUME
$execute as $(active_player_uuid) run function omegaflowey.entity:directorial/boss_fight/shared/loop/check_active_player_still_exists/as_active_player
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ execute unless entity @s[tag=omegaflowey.player.fighting_flowey] run return run
# - active player is within the arena bounds
# (if player is not within arena bounds, set stop_reason to 3)
# TAG_SUMMIT_HARDCODED_ARENA_VOLUME
execute unless entity @s[x=-186, dx=61, y=12, dy=44, z=47, dz=60] run return run \
execute unless entity @s[x=-186, dx=61, y=10, dy=46, z=47, dz=60] run return run \
scoreboard players set #omegaflowey.bossfight.stop_reason omegaflowey.global.flag 3
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ function omegaflowey.main:telemetry/bossfight/tag/root/end
function omegaflowey.entity:remove_animated_java_models/boss_fight
# TAG_SUMMIT_HARDCODED_ARENA_VOLUME
execute as @e[ \
x=-186, dx=61, y=12, dy=44, z=47, dz=60, \
x=-186, dx=61, y=10, dy=46, z=47, dz=60, \
tag=omega-flowey-remastered \
] run function omegaflowey.entity:directorial/boss_fight/shared/stop/as_root

Expand Down
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,11 +19,10 @@ 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

# 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,2 @@
# Delay before music/red flashing starts
scoreboard players set @s omegaflowey.boss-fight.cutscene.clock.i -14
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
scoreboard players add @s omegaflowey.boss-fight.cutscene.clock.i 1
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches ..-1 run return 0

# 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,38 @@
execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 0 run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/start_cutscene with storage omegaflowey:bossfight

execute if score @s omegaflowey.boss-fight.cutscene.clock.i matches 1 run \
function omegaflowey.entity:directorial/boss_fight/summit/phase/cutscene/loop/0/clear_player_blindness with storage omegaflowey:bossfight

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 @@
$effect clear $(active_player_uuid) minecraft:blindness
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,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,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 @@ -11,7 +11,10 @@ data modify storage omegaflowey:bossfight active_player_uuid set from storage gu
teleport @s ~ ~-4.0 ~-27.0 ~180.0 -40.0
spawnpoint @s -142 43 25 -45

execute at @s run playsound omega-flowey:cutscene.intro.battle_start_end ambient @s ~ ~ ~ 5

effect clear @s
effect give @s minecraft:blindness 5 0 true
effect give @s instant_health 1 4 true
function omegaflowey.main:summit/room/cave/active_player_display/update_value with storage omegaflowey:bossfight

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
scoreboard players set #omegaflowey.bossfight.has_player_been_prompted omegaflowey.global.flag 0
data remove storage omegaflowey:bossfight player_queue_timeout_uuid
schedule clear omegaflowey.entity:directorial/boss_fight/summit/player/queue/prompt_next_player/show_prompt/confirm/after_delay
schedule clear omegaflowey.entity:directorial/boss_fight/summit/player/queue/prompt_next_player/show_prompt/confirm/teleport_animation
schedule clear omegaflowey.entity:directorial/boss_fight/summit/player/queue/prompt_next_player/show_prompt/timeout
Loading