diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj b/Adventures in Lestoria/Adventures in Lestoria.vcxproj index eaafee45..96f37bf7 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj @@ -839,6 +839,7 @@ + @@ -1052,6 +1053,7 @@ + diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters index d3461170..c28e8dbc 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters @@ -1259,6 +1259,12 @@ Source Files\Bullet Types + + Source Files\Monster Strategies + + + Source Files\Monster Strategies + diff --git a/Adventures in Lestoria/GiantOctopus.cpp b/Adventures in Lestoria/GiantOctopus.cpp new file mode 100644 index 00000000..aed661c4 --- /dev/null +++ b/Adventures in Lestoria/GiantOctopus.cpp @@ -0,0 +1,62 @@ +#pragma region License +/* +License (OLC-3) +~~~~~~~~~~~~~~~ + +Copyright 2024 Joshua Sigona + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions or derivations of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions or derivative works in binary form must reproduce the above +copyright notice. This list of conditions and the following disclaimer must be +reproduced in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may +be used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Portions of this software are copyright © 2024 The FreeType +Project (www.freetype.org). Please see LICENSE_FT.txt for more information. +All rights reserved. +*/ +#pragma endregion + +#include "MonsterStrategyHelpers.h" +#include "util.h" +#include "AdventuresInLestoria.h" +#include "SoundEffect.h" +#include "BulletTypes.h" + +using A=Attribute; + +INCLUDE_game + +void Monster::STRATEGY::GIANT_OCTOPUS(Monster&m,float fElapsedTime,std::string strategy){ + enum PhaseName{ + RUN, + FLY_AWAY, + }; + switch(PHASE()){ + case RUN:{ + + }break; + case FLY_AWAY:{ + + }break; + } +} \ No newline at end of file diff --git a/Adventures in Lestoria/Monster.h b/Adventures in Lestoria/Monster.h index 873bb672..a76c5c9d 100644 --- a/Adventures in Lestoria/Monster.h +++ b/Adventures in Lestoria/Monster.h @@ -375,6 +375,8 @@ private: static void PARROT(Monster&m,float fElapsedTime,std::string strategy); static void CRAB(Monster&m,float fElapsedTime,std::string strategy); static void GIANT_CRAB(Monster&m,float fElapsedTime,std::string strategy); + static void GIANT_OCTOPUS(Monster&m,float fElapsedTime,std::string strategy); + static void OCTOPUS_ARM(Monster&m,float fElapsedTime,std::string strategy); }; bool bumpedIntoTerrain=false; //Gets set to true before a strategy executes if the monster runs into some terrain on this frame. bool attackedByPlayer=false; //Gets set to true before a strategy executes if the monster has been attacked by the player. diff --git a/Adventures in Lestoria/OctopusArm.cpp b/Adventures in Lestoria/OctopusArm.cpp new file mode 100644 index 00000000..1074e90a --- /dev/null +++ b/Adventures in Lestoria/OctopusArm.cpp @@ -0,0 +1,62 @@ +#pragma region License +/* +License (OLC-3) +~~~~~~~~~~~~~~~ + +Copyright 2024 Joshua Sigona + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions or derivations of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions or derivative works in binary form must reproduce the above +copyright notice. This list of conditions and the following disclaimer must be +reproduced in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may +be used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +Portions of this software are copyright © 2024 The FreeType +Project (www.freetype.org). Please see LICENSE_FT.txt for more information. +All rights reserved. +*/ +#pragma endregion + +#include "MonsterStrategyHelpers.h" +#include "util.h" +#include "AdventuresInLestoria.h" +#include "SoundEffect.h" +#include "BulletTypes.h" + +using A=Attribute; + +INCLUDE_game + +void Monster::STRATEGY::OCTOPUS_ARM(Monster&m,float fElapsedTime,std::string strategy){ + enum PhaseName{ + RUN, + FLY_AWAY, + }; + switch(PHASE()){ + case RUN:{ + + }break; + case FLY_AWAY:{ + + }break; + } +} \ No newline at end of file diff --git a/Adventures in Lestoria/RUN_STRATEGY.cpp b/Adventures in Lestoria/RUN_STRATEGY.cpp index c0ca4f12..942c8232 100644 --- a/Adventures in Lestoria/RUN_STRATEGY.cpp +++ b/Adventures in Lestoria/RUN_STRATEGY.cpp @@ -75,6 +75,8 @@ void Monster::InitializeStrategies(){ STRATEGY_DATA.insert("Sandworm",Monster::STRATEGY::SANDWORM); STRATEGY_DATA.insert("Parrot",Monster::STRATEGY::PARROT); STRATEGY_DATA.insert("Giant Crab",Monster::STRATEGY::GIANT_CRAB); + STRATEGY_DATA.insert("Giant Octopus",Monster::STRATEGY::GIANT_OCTOPUS); + STRATEGY_DATA.insert("Octopus Arm",Monster::STRATEGY::OCTOPUS_ARM); STRATEGY_DATA.SetInitialized(); } diff --git a/Adventures in Lestoria/TODO.txt b/Adventures in Lestoria/TODO.txt index cf29f750..f02ea86c 100644 --- a/Adventures in Lestoria/TODO.txt +++ b/Adventures in Lestoria/TODO.txt @@ -6,6 +6,11 @@ DEMO Add Sherman and Blacksmith story images +Have all song ideas by Nov 1st +- Chapter 3 boss outro +- Chapter 4 Stage + boss + outro +- Chapter 5 Stage + boss + outro + 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 689ae443..80127e23 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 11755 +#define VERSION_BUILD 11756 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Adventures in Lestoria/assets/config/Monsters.txt b/Adventures in Lestoria/assets/config/Monsters.txt index 97fdcd7a..69ca893d 100644 --- a/Adventures in Lestoria/assets/config/Monsters.txt +++ b/Adventures in Lestoria/assets/config/Monsters.txt @@ -1717,4 +1717,89 @@ Monsters Death Sound = Slime Dead Walk Sound = Wing Flap } + Giant Octopus + { + Health = 42000 + Attack = 40 + + CollisionDmg = 30 + + MoveSpd = 0% + Size = 400% + + XP = 0 + + Collision Radius = 20 + + Ignore Collisions = True + + Strategy = Giant Octopus + + #Size of each animation frame + SheetFrameSize = 48,48 + + # Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST + 4-Way Spritesheet = True + + Animations + { + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse,ReverseOneShot) + # Animations must be defined in the same order as they are in their sprite sheets + # The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator. + IDLE = 4, 0.3, Repeat + HURT = 4, 0.15, Repeat + ATTACKING = 4, 0.15, PingPong + DEATH = 4, 0.15, OneShot + } + + # Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity + #DROP[0] = Broken Dagger,30%,1,1 + + Hurt Sound = Monster Hurt + Death Sound = Slime Dead + Walk Sound = Slime Walk + } + Octopus Arm + { + Health = 6000 + Attack = 50 + + CollisionDmg = 30 + + MoveSpd = 0% + Size = 400% + + XP = 0 + + Collision Radius = 20 + + Ignore Collisions = True + + Strategy = Octopus Arm + + #Size of each animation frame + SheetFrameSize = 96,96 + + # Setting this to true means every four rows indicates one animation, the ordering of the directions is: NORTH, EAST, SOUTH, WEST + 4-Way Spritesheet = True + + Animations + { + # Frame Count, Frame Speed (s), Frame Cycling (Repeat,OneShot,PingPong,Reverse,ReverseOneShot) + # Animations must be defined in the same order as they are in their sprite sheets + # The First Four animations must represent a standing, walking, attack, and death animation. Their names are up to the creator. + IDLE = 4, 0.2, PingPong + SUBMERGE = 5, 0.15, OneShot + ATTACKING = 4, 0.15, PingPong + DEATH = 5, 0.15, OneShot + RISE = 5, 0.15, ReverseOneShot + } + + # Drop Item Name, Drop Percentage(0-100%), Drop Min Quantity, Drop Max Quantity + #DROP[0] = Broken Dagger,30%,1,1 + + Hurt Sound = Monster Hurt + Death Sound = Slime Dead + Walk Sound = Slime Walk + } } \ No newline at end of file diff --git a/x64/Release/Adventures in Lestoria.exe b/x64/Release/Adventures in Lestoria.exe index 809716c6..9c05d196 100644 Binary files a/x64/Release/Adventures in Lestoria.exe and b/x64/Release/Adventures in Lestoria.exe differ