From 9c8906308c18dfcff08462d39cacfbe1d9a809e7 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Thu, 19 Dec 2024 23:28:30 -0600 Subject: [PATCH] Fix unit testing paths to refer to correct directories. Added error handling and control return path for Entity functions. Release Build 11891. --- .../Adventures in Lestoria Tests.vcxproj | 11 +++-- .../Adventures in Lestoria.vcxproj | 5 +- .../Adventures in Lestoria.vcxproj.filters | 3 ++ Adventures in Lestoria/AdventuresInLestoria.h | 2 +- .../Chapter_3_FinalBoss.txt | 49 +++++++++++++++++++ Adventures in Lestoria/Entity.cpp | 3 ++ Adventures in Lestoria/TODO.txt | 3 -- Adventures in Lestoria/Version.h | 2 +- 8 files changed, 67 insertions(+), 11 deletions(-) create mode 100644 Adventures in Lestoria/Chapter_3_FinalBoss.txt diff --git a/Adventures in Lestoria Tests/Adventures in Lestoria Tests.vcxproj b/Adventures in Lestoria Tests/Adventures in Lestoria Tests.vcxproj index cdc91f11..5c14c834 100644 --- a/Adventures in Lestoria Tests/Adventures in Lestoria Tests.vcxproj +++ b/Adventures in Lestoria Tests/Adventures in Lestoria Tests.vcxproj @@ -47,7 +47,7 @@ true - C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria;$(IncludePath) + J:\AdventuresInLestoria\Adventures in Lestoria;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria;$(IncludePath) ..\x64\Unit Testing @@ -58,12 +58,12 @@ NotUsing Level3 true - C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\sigon\OneDrive\Documents\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + J:\AdventuresInLestoria\Adventures in Lestoria\steam;J:\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\sigon\OneDrive\Documents\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) _DEBUG;%(PreprocessorDefinitions) true - stdcpp20 + stdcpplatest Windows @@ -103,7 +103,9 @@ - + + $(ProjectDir)..\Adventures in Lestoria\discord-files;$(ProjectDir)..\Adventures in Lestoria\steam;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\sigon\OneDrive\Documents\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + @@ -111,6 +113,7 @@ + $(ProjectDir)..\Adventures in Lestoria\discord-files;$(ProjectDir)..\Adventures in Lestoria\steam;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\sigon\OneDrive\Documents\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj b/Adventures in Lestoria/Adventures in Lestoria.vcxproj index fbc3dcfc..5d62ca38 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj @@ -251,8 +251,8 @@ true _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true - stdcpp20 - C:\Users\LabUser\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\LabUser\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\LabUser\Documents\include;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\OneDrive\Documents\include;%(AdditionalIncludeDirectories) + stdcpplatest + $(ProjectDir)steam;$(ProjectDir)discord-files;C:\Users\LabUser\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\LabUser\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\LabUser\Documents\include;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\niconiconii\OneDrive\Documents\include;C:\Users\niconiconii\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\steam;C:\Users\sigon\source\repos\AdventuresInLestoria\Adventures in Lestoria\discord-files;C:\Users\sigon\OneDrive\Documents\include;%(AdditionalIncludeDirectories) 4099;5030;4715;4172;4834 true @@ -1318,6 +1318,7 @@ + diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters index a477eff6..5c4d9ccf 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters @@ -1541,6 +1541,9 @@ Documentation\Mechanics + + Documentation\Mechanics + diff --git a/Adventures in Lestoria/AdventuresInLestoria.h b/Adventures in Lestoria/AdventuresInLestoria.h index 31f06bee..bb77b070 100644 --- a/Adventures in Lestoria/AdventuresInLestoria.h +++ b/Adventures in Lestoria/AdventuresInLestoria.h @@ -364,7 +364,7 @@ public: int GetLoadoutSize()const; void RestockLoadoutItems(); //Returns true if the item can be used (we have >0 of it) - bool UseLoadoutItem(int slot,const std::optionaltargetingPos); + bool UseLoadoutItem(int slot,const std::optionaltargetingPos={}); //Blanks out this loadout item. void ClearLoadoutItem(int slot); void RenderFadeout(); diff --git a/Adventures in Lestoria/Chapter_3_FinalBoss.txt b/Adventures in Lestoria/Chapter_3_FinalBoss.txt new file mode 100644 index 00000000..1da5e473 --- /dev/null +++ b/Adventures in Lestoria/Chapter_3_FinalBoss.txt @@ -0,0 +1,49 @@ +Ghost of Pirate Captain + +60 000 HP +Size 600% +Movespeed 50% + +Damage: +Canonshot 80 dmg +Shrapnel 35 dmg +Sabres 75 dmg +Collision 50 dmg +Curse nothing for first 15 seconds, after that 5 dmg per second. + +---------------------- + +Skills: +- Command Canons (2 Kinds of Attack, Big Canon Balls and spreaded shrapnel shot) +- Spreading the curse (The Ghost Throws a Coin towards the Player, and the Player gets marked. starts getting dot damage after time if the coin doesnt get returned to the Pirate Treasure, which has a fixed position on the map) +- Hide and Seek (The Ghost hides Behind a Rock, and Canons Bombard the area until player hits the Captain once) +- Ghost Sabers (Spinning Ghost Swords) + +- 70%, 40% & 10% Curse + Hide - permanent Bombardment + Shrapnel Shot every 5 seconds. + +Once found on the 10% Hide and Seek Spawns a Cage around the Pirate Treasure, and Spreads the curse on the player again. (If player didnt cleanse the curse before finding the captain it just stays up.) +Both kind of Canon attacks happen at all time now, 10 Ghost Sabers spawn that circle around the boss in different directions +Boss stands still in the middle (maybe raising an arm animation wise or something to show that he is controlling the Sabers) + +---------------------- +Normal Fight + +Canon Shots happen with a 0,4 second delay. between shooting an impact is a 2.5 second delay. +Canon have a 350 impact size + +Shrapnel shoots similar to small bolders from chapter 2 boss. 25 hits, 50 radius. Delay between shooting and impact also 2.5 seconds. + +its 8 canon shots, 2 second silence, 1 shrapnel shot, 2 second silence, repeat. + +the Canon shots can happen in one of the following patterns: +- Bombardment: every shot is at a random location within 900 Range of the player. (This is also the move during hide and seek.) +- precise Bombardment: same as before but within 700 range of the player. +- Shooting in a line: the 4th or 5th hit would hit the player if the player doesnt move at all. +- Sharpshooter: aiming directly at the player, skipping every 2nd shot. (only 4 instead of 8 shots) +- prediction: shoots in the direction of the current or last players movement and predicts where the player would be in 2.8 seconds. (slightly further then where the player would be at impact. thats why 2.8 instead of 2.5 seconds) + +Boss spawns after the first Canon rotation ends. + +Boss constantly Slowly floats towards player, within 400 range it uses Ghost Sabers once every 4 seconds. (Throws them, Similar movement like Hammers of a Hammerdin in Diablo 2 - https://www.youtube.com/watch?v=jZfH4SY4Lsc - both the spinning animation and the flightpath are a good example. Sabre always spawn of oposite side towards player to give meeles time to dodge.) +On Collision damage trigger a slash animation with its saber. + diff --git a/Adventures in Lestoria/Entity.cpp b/Adventures in Lestoria/Entity.cpp index 42af04b7..d855f337 100644 --- a/Adventures in Lestoria/Entity.cpp +++ b/Adventures in Lestoria/Entity.cpp @@ -49,9 +49,12 @@ Entity::Entity(const std::variantent):entity(ent){} const vf2d Entity::GetPos()const{ if(is(Player*))return get(Player*)->GetPos(); if(is(Monster*))return get(Monster*)->GetPos(); + ERR("Entity is not a valid type! THIS SHOULD NOT BE HAPPENING!"); + return {}; //NOTE: Unreachable } void Entity::SetIframeTime(const float iframeTime){ if(is(Player*))get(Player*)->ApplyIframes(iframeTime); else if(is(Monster*))get(Monster*)->ApplyIframes(iframeTime); + ERR("Entity is not a valid type! THIS SHOULD NOT BE HAPPENING!"); } \ No newline at end of file diff --git a/Adventures in Lestoria/TODO.txt b/Adventures in Lestoria/TODO.txt index 3acefa50..27bc7eab 100644 --- a/Adventures in Lestoria/TODO.txt +++ b/Adventures in Lestoria/TODO.txt @@ -17,9 +17,6 @@ Instead of the area buffs i switched to giving highest exp and locking extra lor DEMO ==== -Add Sherman and Blacksmith story images - - Adding new class animations =========================== Player.txt contains animation names the player has to have loaded. diff --git a/Adventures in Lestoria/Version.h b/Adventures in Lestoria/Version.h index e776c225..78e6ecf1 100644 --- a/Adventures in Lestoria/Version.h +++ b/Adventures in Lestoria/Version.h @@ -39,7 +39,7 @@ All rights reserved. #define VERSION_MAJOR 1 #define VERSION_MINOR 3 #define VERSION_PATCH 0 -#define VERSION_BUILD 11878 +#define VERSION_BUILD 11891 #define stringify(a) stringify_(a) #define stringify_(a) #a