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 = {
})(),
};
-
+