From 5b15a244413a342e3ec84e670f3122dbcbad71ca Mon Sep 17 00:00:00 2001 From: Afro Date: Fri, 22 Dec 2023 02:14:28 -0500 Subject: [PATCH] ticketize current TODOs in codebase (#50) --- .github/workflows/validate.yml | 4 ++-- README.md | 1 + .../attack/dentata-snakes/bullet/loop.mcfunction | 4 ++-- .../attack/dentata-snakes/bullet/loop/bounce.mcfunction | 3 ++- .../dentata-snakes/executor/terminate/boss_fight.mcfunction | 4 ++-- .../attack/dentata-snakes/reset_scores.mcfunction | 1 + .../executor/loop/summon_indicator.mcfunction | 4 ++-- .../executor/terminate/boss_fight.mcfunction | 4 ++-- .../attack/friendliness-pellets/indicator/loop.mcfunction | 4 +++- .../attack/friendliness-pellets/reset_scores.mcfunction | 1 + .../omega-flowey/attack/homing-vines/bullet/loop.mcfunction | 4 ++-- .../homing-vines/executor/terminate/boss_fight.mcfunction | 4 ++-- .../attack/homing-vines/indicator/initialize.mcfunction | 2 +- .../attack/homing-vines/reset_scores.mcfunction | 1 + .../x-bullets-lower/executor/initialize/effects.mcfunction | 4 ++-- .../executor/terminate/boss_fight.mcfunction | 4 ++-- .../x-bullets-lower/indicator/loop/summon_bullet.mcfunction | 2 +- .../attack/x-bullets-lower/indicator/terminate.mcfunction | 2 +- .../attack/x-bullets-lower/reset_scores.mcfunction | 3 ++- .../omega-flowey/attack/x-bullets-lower/start.mcfunction | 1 + .../x-bullets-upper/executor/initialize/effects.mcfunction | 4 ++-- .../executor/terminate/boss_fight.mcfunction | 4 ++-- .../x-bullets-upper/indicator/loop/summon_bullet.mcfunction | 2 +- .../attack/x-bullets-upper/indicator/terminate.mcfunction | 2 +- .../attack/x-bullets-upper/reset_scores.mcfunction | 3 ++- .../omega-flowey/attack/x-bullets-upper/start.mcfunction | 1 + .../data/entity/functions/utils/damage.mcfunction | 2 +- .../data/entity/functions/utils/shake_screen.mcfunction | 4 ++-- .../data/utils/functions/math/vector/dot.mcfunction | 2 +- scratch.txt | 6 ------ 30 files changed, 46 insertions(+), 41 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index e188ee362..2e39225f3 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -2,7 +2,7 @@ name: validate on: [push, workflow_dispatch] -# TODO: add linting +# TODO(37): add linting jobs: test: runs-on: ubuntu-latest @@ -11,4 +11,4 @@ jobs: - uses: CarbonSmasher/packtest_runner@86d606f25d2bd2faa08b017326fe99964ac3aa5c with: packs: 'datapacks/omega-flowey' - packtest-url: 'https://github.com/misode/packtest/releases/download/v1.0.0-beta5/packtest-1.0.0-beta5.jar' + packtest-url: 'https://github.com/misode/packtest/releases/download/v1.0/packtest-1.0-mc1.20.4.jar' diff --git a/README.md b/README.md index c0b0f79ea..df3ed8e4a 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Since then I've gained a lot of skills both in Minecraft map development and in 1. Download the [Fabric mod loader](https://fabricmc.net/) and install a new profile to your Minecraft launcher 2. Download the [Fabric API](https://www.curseforge.com/minecraft/mc-mods/fabric-api/files) jar 3. Download the latest release jar of [`packtest`](https://github.com/misode/packtest/releases) + 1. You should probably download the same version that we're currently specifying in `./.github/workflows/validate.yml` 4. Move the `Fabric API` and `packtest` jars into your `mods` folder in the Minecraft directory (typically `%appdata%/.minecraft/mods`) 5. Run the new profile in your Minecraft launcher to launch a (lightly) modded instance that's able to run `packtest`'s new commands designed for testing 1. Try: `test runall` diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop.mcfunction index 431f021f8..3d42a73f9 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop.mcfunction @@ -11,10 +11,10 @@ execute unless entity @s[x=-21,dx=42,z=-3,dz=21] run function entity:hostile/ome execute store result storage utils:move z float 0.01 run scoreboard players get @s attack.speed.z function entity:utils/move_forward with storage utils:move -# TODO: validate/determine a value for how long the dentata-snakes can bounce +# TODO(42): validate/determine a value for how long the dentata-snakes can bounce # Allow bullet to escape arena after X seconds execute if score @s attack.clock.i matches 100 run tag @s add can-escape-arena -# TODO: validate/determine a value for how long until the dentata-snakes terminate +# TODO(42): validate/determine a value for how long until the dentata-snakes terminate # Terminate after X seconds execute if score @s attack.clock.i matches 200.. run function entity:hostile/omega-flowey/attack/dentata-snakes/bullet/terminate diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop/bounce.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop/bounce.mcfunction index 269b076e8..a07574cd2 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop/bounce.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/bullet/loop/bounce.mcfunction @@ -1,6 +1,7 @@ ## Bounces the dentata-snake against the walls of the arena (flips x-direction/y-direction as necessary) -# TODO: adjust arena bounds based on new animated java model (visually, it clips into the wall right now) +# TODO(42): adjust arena bounds based on new animated java model (visually, it clips into the wall right now) + # Don't bounce if we've already escaped the arena (past top wall) execute if entity @s[x=-1000,dx=2000,y=30,dy=10,z=-4,dz=-1000,tag=can-escape-arena] run return 0 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/executor/terminate/boss_fight.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/executor/terminate/boss_fight.mcfunction index 3f83afafc..d7cc46f70 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/executor/terminate/boss_fight.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/executor/terminate/boss_fight.mcfunction @@ -1,6 +1,6 @@ # Set scores -# TODO determine how to control how long we wait until ceding control back to the boss fight director -# after an attack-executor stops looping +# TODO(49): determine how to control how long we wait after this attack finishes before +# letting boss fight start a new attack scoreboard players set @s boss-fight.attack.delay 20 # Remove tags diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/reset_scores.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/reset_scores.mcfunction index 52f77e898..4a7d5a5da 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/reset_scores.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/dentata-snakes/reset_scores.mcfunction @@ -1,4 +1,5 @@ ## Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +# TODO(42): validate these attack parameters # (16 / 8) + 1 = 2 + 1 = 3 indicators scoreboard players set #attack-dentata-snakes attack.bullets.clock.delay 4 scoreboard players set #attack-dentata-snakes attack.bullets.scale 100 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/loop/summon_indicator.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/loop/summon_indicator.mcfunction index 7bb6942ef..8453b24fb 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/loop/summon_indicator.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/loop/summon_indicator.mcfunction @@ -3,12 +3,12 @@ # Summon indicator execute at @r[team=player] run summon minecraft:marker ~ 33.0 ~ {CustomName: '"Friendliness-Pellets Indicator"', Tags:["omega-flowey-remastered","groupable","hostile","omega-flowey","attack","attack-indicator","attack-indicator-new","friendliness-pellets"], Passengers: [{id:"minecraft:item_display",Tags:["omega-flowey-remastered","hostile","omega-flowey","attack","friendliness-pellets"],transformation:[-1f,0f,1.2246467991473532e-16f,0f,0f,1f,0f,-0.125f,-1.2246467991473532e-16f,0f,-1f,0f,0f,0f,0f,1f],interpolation_duration:1,item_display:"head",item:{id:"minecraft:golden_sword",Count:1b,tag:{CustomModelData:4}}}]} -# TODO: this is so unbelievably hacky +# TODO(43): this is so unbelievably hacky # first indicator is 6 ticks slower before it starts summoning bullets execute if score @s attack.clock.i matches 0 run scoreboard players add #attack-friendliness-pellets attack.indicator.clock.delay 6 # Initialize indicator execute as @e[tag=attack-indicator-new] at @s run function entity:hostile/omega-flowey/attack/friendliness-pellets/indicator/initialize -# TODO: this is so unbelievably hacky +# TODO(43): this is so unbelievably hacky execute if score @s attack.clock.i matches 0 run scoreboard players remove #attack-friendliness-pellets attack.indicator.clock.delay 6 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/terminate/boss_fight.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/terminate/boss_fight.mcfunction index 3f83afafc..d7cc46f70 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/terminate/boss_fight.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/executor/terminate/boss_fight.mcfunction @@ -1,6 +1,6 @@ # Set scores -# TODO determine how to control how long we wait until ceding control back to the boss fight director -# after an attack-executor stops looping +# TODO(49): determine how to control how long we wait after this attack finishes before +# letting boss fight start a new attack scoreboard players set @s boss-fight.attack.delay 20 # Remove tags diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/indicator/loop.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/indicator/loop.mcfunction index 8b41b256e..978742b68 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/indicator/loop.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/indicator/loop.mcfunction @@ -2,6 +2,7 @@ scoreboard players add @s attack.clock.i 1 +# TODO(45): refactor repeated `attack.clock.i` conditionals into separate functions # Change ring variant at tick index execute if score @s attack.clock.i = @s attack.indicator.animation.index run function entity:group/start execute if score @s attack.clock.i = @s attack.indicator.animation.index as @e[tag=friendliness-pellet-ring,scores={group.id=0}] run function animated_java:friendliness_pellet_ring/apply_variant/finished_blinking @@ -13,6 +14,7 @@ execute if score @s attack.clock.i matches ..-1 run playsound omega-flowey:attac # Ignore bullet summoning logic while `attack.clock.i` is negative execute if score @s attack.clock.i matches ..-1 run return 0 +# TODO(45): refactor repeated `attack.clock.i` conditionals into separate functions # Delete ring when we start summoning bullets execute if score @s attack.clock.i matches 0 run function entity:group/start execute if score @s attack.clock.i matches 0 as @e[tag=friendliness-pellet-ring,scores={group.id=0}] run function animated_java:friendliness_pellet_ring/remove/this @@ -25,5 +27,5 @@ execute if score @s attack.bullets.count < @s attack.bullets.total run function execute if score @s attack.bullets.count = @s attack.bullets.total run scoreboard players add @s attack.bullets.clock.i 1 # After `attack.bullets.clock.delay` ticks, terminate (and activate all bullets) -# TODO: this could be off by one tick (might need to be `attack.bullets.clock.delay - 1`?) +# TODO(44): this could be off by one tick (might need to be `attack.bullets.clock.delay - 1`?) execute if score @s attack.bullets.clock.i = @s attack.bullets.clock.delay run function entity:hostile/omega-flowey/attack/friendliness-pellets/indicator/terminate diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/reset_scores.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/reset_scores.mcfunction index 30b85c867..9ae09cb7a 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/reset_scores.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/friendliness-pellets/reset_scores.mcfunction @@ -1,4 +1,5 @@ ## Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +# TODO(44): validate these attack parameters scoreboard players set #attack-friendliness-pellets attack.bullets.clock.delay 4 scoreboard players set #attack-friendliness-pellets attack.bullets.total 10 # (42 / 14) + 1 = 3 + 1 = 4 indicators diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/bullet/loop.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/bullet/loop.mcfunction index b28dcf700..ba5cdd876 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/bullet/loop.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/bullet/loop.mcfunction @@ -1,6 +1,6 @@ scoreboard players add @s attack.clock.i 1 -# TODO: this hitbox is inaccurate -- needs to be a bounding box that is NOT axis aligned +# TODO(40): this hitbox is inaccurate -- needs to be a bounding box that is NOT axis aligned # > make some functions to represent the shape and check if the player's coordinates pass the function checks # inputs: { rectangle_width, current_position, initial_position (bullet summon position) } data merge storage utils:damage { damage: 2, radius: 1 } @@ -9,6 +9,6 @@ function entity:utils/damage with storage utils:damage # Move while inside arena execute if entity @s[x=-25,dx=50,y=32,dy=10,z=-5,dz=23] run function entity:hostile/omega-flowey/attack/homing-vines/bullet/loop/move -# TODO: validate/determine a value for how long until the homing-vines bullets terminate +# TODO(41): validate/determine a value for how long until the homing-vines bullets terminate # Terminate after X seconds execute if score @s attack.clock.i matches 20.. run function entity:hostile/omega-flowey/attack/homing-vines/bullet/terminate diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/executor/terminate/boss_fight.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/executor/terminate/boss_fight.mcfunction index 3f83afafc..d7cc46f70 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/executor/terminate/boss_fight.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/executor/terminate/boss_fight.mcfunction @@ -1,6 +1,6 @@ # Set scores -# TODO determine how to control how long we wait until ceding control back to the boss fight director -# after an attack-executor stops looping +# TODO(49): determine how to control how long we wait after this attack finishes before +# letting boss fight start a new attack scoreboard players set @s boss-fight.attack.delay 20 # Remove tags diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/indicator/initialize.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/indicator/initialize.mcfunction index 44d13044a..59ad06f24 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/indicator/initialize.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/indicator/initialize.mcfunction @@ -9,7 +9,7 @@ scoreboard players operation @s attack.bullets.total = #attack-homing-vines atta playsound omega-flowey:attack.homing-vines.blinking hostile @a ~ ~ ~ 3 1 1 # Randomize delta-x position to summon bullet at (x: player.Position.x, dx: [-15.00..15.00]) -# TODO: validate this dx range +# TODO(41): validate this dx range execute store result score @s attack.position.x run data get entity @s Pos[0] 100 execute store result score @s math.0 run random value -1500..1500 scoreboard players operation @s attack.position.x += @s math.0 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/reset_scores.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/reset_scores.mcfunction index 8144b7f58..527cb6251 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/reset_scores.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/homing-vines/reset_scores.mcfunction @@ -1,4 +1,5 @@ ## Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +# TODO(41): validate these attack parameters scoreboard players set #attack-homing-vines attack.bullets.total 1 # (13 / 1) + 1 = 13 + 1 = 14 indicators scoreboard players set #attack-homing-vines attack.executor.clock.length 13 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/initialize/effects.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/initialize/effects.mcfunction index 06823fbdc..a2c7966c4 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/initialize/effects.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/initialize/effects.mcfunction @@ -1,6 +1,6 @@ # Play eye sheen particles -# TODO: this should be summoned at a specific position relative to the eye model (TBD where exactly) -# TODO: make better expanding-sheen model with transparency (see todo in `scratch.txt`) +# TODO(36): this should be summoned at a specific position relative to the eye model (TBD where exactly) +# TODO(36): make better expanding-sheen model with transparency particle minecraft:explosion ~ ~ ~ 0 0 0 10 1 force playsound omega-flowey:attack.x-bullets.start hostile @a ~ ~ ~ 3 1 1 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/terminate/boss_fight.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/terminate/boss_fight.mcfunction index 3f83afafc..d7cc46f70 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/terminate/boss_fight.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/executor/terminate/boss_fight.mcfunction @@ -1,6 +1,6 @@ # Set scores -# TODO determine how to control how long we wait until ceding control back to the boss fight director -# after an attack-executor stops looping +# TODO(49): determine how to control how long we wait after this attack finishes before +# letting boss fight start a new attack scoreboard players set @s boss-fight.attack.delay 20 # Remove tags diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/loop/summon_bullet.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/loop/summon_bullet.mcfunction index dfa3001c5..b9d42b6fe 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/loop/summon_bullet.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/loop/summon_bullet.mcfunction @@ -8,7 +8,7 @@ # Toggle between dark-eye and bright-eye variants scoreboard players operation @s math.0 = @s attack.bullets.remaining scoreboard players operation @s math.0 %= #2 mathf.const -# TODO this needs to NOT be a distance check +# TODO(47): this needs to NOT be a distance check execute if score @s math.0 matches 0 as @e[tag=aj.lower_eye.root,sort=nearest,limit=1] run function animated_java:lower_eye/apply_variant/dark execute if score @s math.0 matches 1 as @e[tag=aj.lower_eye.root,sort=nearest,limit=1] run function animated_java:lower_eye/apply_variant/bright diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/terminate.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/terminate.mcfunction index e33af9bf1..959536ba9 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/terminate.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/indicator/terminate.mcfunction @@ -1,4 +1,4 @@ -# TODO this needs to NOT be a distance check +# TODO(47): this needs to NOT be a distance check execute as @e[tag=aj.lower_eye.root,sort=nearest,limit=1] run function animated_java:lower_eye/apply_variant/colorful # Kill the indicator diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/reset_scores.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/reset_scores.mcfunction index badea517b..69dc8a290 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/reset_scores.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/reset_scores.mcfunction @@ -1,4 +1,5 @@ -# Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +## Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +# TODO(46): validate these attack parameters scoreboard players set #attack-x-bullets-lower attack.bullets.clock.delay 1 scoreboard players set #attack-x-bullets-lower attack.bullets.total 7 scoreboard players set #attack-x-bullets-lower attack.clock.length 56 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/start.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/start.mcfunction index bd66ff586..4540a6635 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/start.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-lower/start.mcfunction @@ -1,4 +1,5 @@ ## Summon x-bullets-lower executor +# TODO(48): add error when try to start `x-bullets` attack when the corresponding eye entity model doesn't exist summon minecraft:marker ~ ~ ~ {CustomName: '"X-Bullets-Lower Executor"', Tags:["omega-flowey-remastered","hostile","omega-flowey","attack","attack-executor","attack-executor-new","x-bullets-lower"]} # Initialize attack-executor diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/initialize/effects.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/initialize/effects.mcfunction index 06823fbdc..a2c7966c4 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/initialize/effects.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/initialize/effects.mcfunction @@ -1,6 +1,6 @@ # Play eye sheen particles -# TODO: this should be summoned at a specific position relative to the eye model (TBD where exactly) -# TODO: make better expanding-sheen model with transparency (see todo in `scratch.txt`) +# TODO(36): this should be summoned at a specific position relative to the eye model (TBD where exactly) +# TODO(36): make better expanding-sheen model with transparency particle minecraft:explosion ~ ~ ~ 0 0 0 10 1 force playsound omega-flowey:attack.x-bullets.start hostile @a ~ ~ ~ 3 1 1 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/terminate/boss_fight.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/terminate/boss_fight.mcfunction index 3f83afafc..d7cc46f70 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/terminate/boss_fight.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/executor/terminate/boss_fight.mcfunction @@ -1,6 +1,6 @@ # Set scores -# TODO determine how to control how long we wait until ceding control back to the boss fight director -# after an attack-executor stops looping +# TODO(49): determine how to control how long we wait after this attack finishes before +# letting boss fight start a new attack scoreboard players set @s boss-fight.attack.delay 20 # Remove tags diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/loop/summon_bullet.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/loop/summon_bullet.mcfunction index 76c357448..b0d2b9250 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/loop/summon_bullet.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/loop/summon_bullet.mcfunction @@ -8,7 +8,7 @@ # Toggle between dark-eye and bright-eye variants scoreboard players operation @s math.0 = @s attack.bullets.remaining scoreboard players operation @s math.0 %= #2 mathf.const -# TODO this needs to NOT be a distance check +# TODO(47): this needs to NOT be a distance check execute if score @s math.0 matches 0 as @e[tag=aj.upper_eye.root,sort=nearest,limit=1] run function animated_java:upper_eye/apply_variant/dark execute if score @s math.0 matches 1 as @e[tag=aj.upper_eye.root,sort=nearest,limit=1] run function animated_java:upper_eye/apply_variant/bright diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/terminate.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/terminate.mcfunction index 06f632a90..9bc69f1c8 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/terminate.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/indicator/terminate.mcfunction @@ -1,4 +1,4 @@ -# TODO this needs to NOT be a distance check +# TODO(47): this needs to NOT be a distance check execute as @e[tag=aj.upper_eye.root,sort=nearest,limit=1] run function animated_java:upper_eye/apply_variant/colorful # Kill the indicator diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/reset_scores.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/reset_scores.mcfunction index ccda9bb6b..045374373 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/reset_scores.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/reset_scores.mcfunction @@ -1,4 +1,5 @@ -# Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +## Set fake player scores back to defaults (if they were changed by a pre-initialize attack function) +# TODO(46): validate these attack parameters scoreboard players set #attack-x-bullets-upper attack.bullets.clock.delay 1 scoreboard players set #attack-x-bullets-upper attack.bullets.total 3 scoreboard players set #attack-x-bullets-upper attack.clock.length 56 diff --git a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/start.mcfunction b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/start.mcfunction index 5bf3ec1bd..cda340de2 100644 --- a/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/start.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/hostile/omega-flowey/attack/x-bullets-upper/start.mcfunction @@ -1,4 +1,5 @@ ## Summon x-bullets-upper executor +# TODO(48): add error when try to start `x-bullets` attack when the corresponding eye entity model doesn't exist summon minecraft:marker ~ ~ ~ {CustomName: '"X-Bullets-Upper Executor"', Tags:["omega-flowey-remastered","hostile","omega-flowey","attack","attack-executor","attack-executor-new","x-bullets-upper"]} # Initialize attack-executor diff --git a/datapacks/omega-flowey/data/entity/functions/utils/damage.mcfunction b/datapacks/omega-flowey/data/entity/functions/utils/damage.mcfunction index bd4f064cf..0c9ed279f 100644 --- a/datapacks/omega-flowey/data/entity/functions/utils/damage.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/utils/damage.mcfunction @@ -1,4 +1,4 @@ -# TODO remove these `unless entity @e[tag=boss_fight]`/`if entity @e[tag=boss_fight]` checks when boss fight is fully setup +# TODO(39): remove these `unless entity @e[tag=boss_fight]`/`if entity @e[tag=boss_fight]` checks when boss fight is fully setup # we have it here for development so that the boss entity (omega-flowey) # does not need to exist for attacks to damage. # `by @e[tag=boss_fight,limit=1]` is needed to have proper damage knockback + death messages ("killed by Omega Flowey") diff --git a/datapacks/omega-flowey/data/entity/functions/utils/shake_screen.mcfunction b/datapacks/omega-flowey/data/entity/functions/utils/shake_screen.mcfunction index ad82cf902..cc947b543 100644 --- a/datapacks/omega-flowey/data/entity/functions/utils/shake_screen.mcfunction +++ b/datapacks/omega-flowey/data/entity/functions/utils/shake_screen.mcfunction @@ -1,5 +1,5 @@ -# TODO parameterize this function's yaw/pitch ranges -# TODO evaluate if these ranges (0.5..5 deg yaw, 0.5..2 deg pitch) are too little/too much screen shake +# TODO(38): parameterize this function's yaw/pitch ranges +# TODO(42): evaluate if these ranges (0.5..5 deg yaw, 0.5..2 deg pitch) are too little/too much screen shake # Shake player yaw anywhere from 0.5..5.0 degrees (can also be negative) execute store result score @s math.0 run random value 5..50 execute store result score @s math.1 run random value 0..1 diff --git a/datapacks/omega-flowey/data/utils/functions/math/vector/dot.mcfunction b/datapacks/omega-flowey/data/utils/functions/math/vector/dot.mcfunction index 4f27e1a5e..f36a2d6b9 100644 --- a/datapacks/omega-flowey/data/utils/functions/math/vector/dot.mcfunction +++ b/datapacks/omega-flowey/data/utils/functions/math/vector/dot.mcfunction @@ -1,4 +1,4 @@ -# TODO: remove the `vector.dot` function if we don't end up using it for the homing-vines hitbox +# TODO(40): remove the `vector.dot` function if we don't end up using it for the homing-vines hitbox # inputs: # u: vector: {x, y, z}: {x: float, y: float, z: float} # v: vector: {x, y, z}: {x: float, y: float, z: float} diff --git a/scratch.txt b/scratch.txt index 689f9b9e9..b21f4dd54 100644 --- a/scratch.txt +++ b/scratch.txt @@ -21,11 +21,5 @@ float = 26 ticks pulsate = 44 ticks LCM = 572 ticks = 28.6s -TODO use UUID macros for entity selection instead of target selectors -https://discord.com/channels/154777837382008833/1137512428112977981/1138254289135997058 - datapack performance benchmarking? https://github.com/SnaveSutit/mcworld-performance-dp/tree/test-tag-branch-selection-vs-macro-uuid-list-selection - -TODO animated transparency for AJ models?? -https://discord.com/channels/154777837382008833/1180732170529153165/1180762422953398404