diff --git a/.vscode/settings.json b/.vscode/settings.json index a4efd077..24ce3fcf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -92,5 +92,6 @@ "future": "cpp", "any": "cpp", "source_location": "cpp" - } + }, + "editor.suggest.insertMode": "replace" } \ No newline at end of file diff --git a/Adventures in Lestoria/TODO.txt b/Adventures in Lestoria/TODO.txt index f49a84dd..57a986d8 100644 --- a/Adventures in Lestoria/TODO.txt +++ b/Adventures in Lestoria/TODO.txt @@ -18,6 +18,8 @@ January 31st ============ Make new unlocked nodes more obvious, made neighboring nodes more obvious +When a boss dies, an exit ring should spawn at the death location. + Implement Ursule, Mother of Bears Boss Story proofreading/correcting/storyboarding - Fix Keyboard/Controller Menu Navigation (Need clearly defined rules) diff --git a/Adventures in Lestoria/assets/config/MonsterStrategies.txt b/Adventures in Lestoria/assets/config/MonsterStrategies.txt index cc431adb..64395efa 100644 --- a/Adventures in Lestoria/assets/config/MonsterStrategies.txt +++ b/Adventures in Lestoria/assets/config/MonsterStrategies.txt @@ -227,4 +227,167 @@ MonsterStrategy # How long the duration of the knockup is. Attack Knockup Duration = 0.7s } + # The Ursule, Mother of Bears Boss script + Ursule + { + # Which phase to start on. Should be 1 most of the time. + StartPhase = 1 + + Wisp Pattern 0 + { + Row[0] = .O...O.. + Row[1] = O...O... + Row[2] = ...O...O + Row[3] = ..O...O. + Row[4] = .O...O.. + Row[5] = O...O... + } + Wisp Pattern 1 + { + Row[0] = ........ + Row[1] = O.O.O.O. + Row[2] = ........ + Row[3] = .O.O.O.O + Row[4] = ........ + Row[5] = O.O.O.O. + } + Wisp Pattern 2 + { + Row[0] = O......O + Row[1] = ........ + Row[2] = ........ + Row[3] = ...OO... + Row[4] = ..O..O.. + Row[5] = .O....O. + } + Wisp Pattern 3 + { + Row[0] = .O....O. + Row[1] = O......O + Row[2] = ........ + Row[3] = ..O..O.. + Row[4] = ..O..O.. + Row[5] = ...OO... + } + Wisp Pattern 4 + { + Row[0] = ........ + Row[1] = ......O. + Row[2] = ..O..... + Row[3] = .....O.. + Row[4] = .O...... + Row[5] = ........ + } + Wisp Pattern 5 + { + Row[0] = O.O.O.O. + Row[1] = O.O.O.O. + Row[2] = ........ + Row[3] = ........ + Row[4] = .O.O.O.O + Row[5] = .O.O.O.O + } + Wisp Pattern 6 + { + Row[0] = ........ + Row[1] = ........ + Row[2] = ........ + Row[3] = OOO..OOO + Row[4] = ........ + Row[5] = ........ + } + Wisp Pattern 7 + { + Row[0] = .OO..OO. + Row[1] = O......O + Row[2] = ...O.... + Row[3] = ..O..... + Row[4] = .O...... + Row[5] = O...OOOO + } + Wisp Pattern 8 + { + Row[0] = ........ + Row[1] = ...OO... + Row[2] = ..OOOO.. + Row[3] = ..OOOO.. + Row[4] = ...OO... + Row[5] = ........ + } + + Phase 2 + { + # Percentage of health to transition to Phase 2 + Change = 80% + + # Percentage of damage reduced on the bear while the barrier is active. + Barrier Damage Reduction = 100% + + # Speed at which the wisp moves downwards. + Wisp Speed = 100% + + # RGBA value of the wisp. + Wisp Color = 247, 157, 0, 255 + + # There are 6 rows of wisps and we want them to spawn outside the arena + Wisp Pattern Spawn Y = -144 + + # How much time (in seconds) to wait between each pattern spawn. + # 100% speed means it takes 6 seconds for all the wisps to move entirely down. + Wisp Pattern Spawn Wait Time = 6.0s + + # This value is either Bag or Random. Bag means every pattern gets selected once before re-cycling. Random is truly random with potential repeats. + Wisp Pattern Random Selection = Bag + + # How many patterns to spawn before continuing to Phase 3. + Wisp Pattern Spawn Count = 9 + + # Wait for the wisp count to be at or below this value before proceeding to Phase 3. + Wisp Count Phase Change Wait = 0 + } + Phase 3 + { + # Minimum range the bear will decide to charge the player. + Charge Range = 700 + + # Amount of time the bear spends preparing to charge. + Charge Cast Time = 0.6s + + # Amount of speed to gain during the charge attack. + Charge Speed Boost = 60% + + # Cooldown time of the charge attack. + Charge Attack Cooldown = 15.0s + + # Amount of damage to deal on impact during a charge attack. + Charge Attack Damage = 30 + + # Amount of knockback to cause to the player when hit by the charging attack. + Charge Attack Knockback Strength = 2.5 + } + Phase 4 + { + # Percentage of health to transition to Phase 4 + Change = 50% + + # Percentage of damage reduced on the bear while the barrier is active. + Barrier Damage Reduction = 100% + + # Speed at which the wisp moves downwards. + Wisp Speed = 130% + + # RGBA value of the wisp. + Wisp Color = 247, 95, 0, 255 + + # There are 6 rows of wisps and we want them to spawn outside the arena + Wisp Pattern Spawn Y = -144 + + # How much time (in seconds) to wait between each pattern spawn. + # 130% speed means it takes 4.61 seconds for all the wisps to move entirely down. + Wisp Pattern Spawn Wait Time = 4.61s + + # This value is either Bag or Random. Bag means every pattern gets selected once before re-cycling. Random is truly random with potential repeats. + Wisp Pattern Random Selection = Random + } + } } \ No newline at end of file diff --git a/Adventures in Lestoria/assets/config/Monsters.txt b/Adventures in Lestoria/assets/config/Monsters.txt index c70d94e8..3a9dda35 100644 --- a/Adventures in Lestoria/assets/config/Monsters.txt +++ b/Adventures in Lestoria/assets/config/Monsters.txt @@ -328,4 +328,61 @@ Monsters # NOTE: ANIMATION[0] will always be row 5 of an animation sheet, all numbers that follow are each below each other. ANIMATION[0] = 4, 0.2, OneShot } + Ursule, Mother of Bears + { + Health = 5000 + Attack = 30 + + CollisionDmg = 10 + + MoveSpd = 95% + Size = 800% + + XP = 200 + + Strategy = Ursule + + # vvvvv Bear script overrides vvvvv + + # How close the bear has to get to begin its attack. + Attack Range = 500 + + # How large the range of the attack is. + Smash Attack Diameter = 640 + + # How long the bear charges up its attack. + Chargeup Time = 0.8s + + # How long to wait in animation time before the attack hits. + Attack Animation Wait Time = 0.3s + + # How long the duration of the knockup is. + Attack Knockup Duration = 0.4s + + # ^^^^^ End Bear script overrides ^^^^^ + + + + #Size of each animation frame + SheetFrameSize = 24,24 + + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + IdleAnimation = 4, 0.3, Repeat + JumpAnimation = 5, 0.2, Repeat + ShootAnimation = 3, 0.2, OneShot + DeathAnimation = 3, 0.15, OneShot + + # Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity + DROP[0] = Bear Blood,10%,1,2 + DROP[1] = Bear Claw,30%,1,1 + + Hurt Sound = Monster Hurt + Death Sound = Slime Dead + Walk Sound = Slime Walk + + #Additional custom animations go down below. Start with ANIMATION[0] Order is: + # File name, Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse) + # NOTE: ANIMATION[0] will always be row 5 of an animation sheet, all numbers that follow are each below each other. + ANIMATION[0] = 4, 0.1, OneShot + } } \ No newline at end of file diff --git a/Adventures in Lestoria/assets/monsters/Ursule, Mother of Bears.png b/Adventures in Lestoria/assets/monsters/Ursule, Mother of Bears.png new file mode 100644 index 00000000..e87dc52a Binary files /dev/null and b/Adventures in Lestoria/assets/monsters/Ursule, Mother of Bears.png differ diff --git a/Adventures in Lestoria/play.html b/Adventures in Lestoria/play.html index c794496f..8da87f6d 100644 --- a/Adventures in Lestoria/play.html +++ b/Adventures in Lestoria/play.html @@ -35,7 +35,7 @@ var Module = { })(), }; - +