diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj b/Adventures in Lestoria/Adventures in Lestoria.vcxproj index a087d11f..eafc87cf 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj @@ -983,6 +983,10 @@ + + + + diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters index b7496ad6..0aef3de4 100644 --- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters +++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters @@ -1124,6 +1124,9 @@ Source Files\Bullet Types + + Source Files\Effects + diff --git a/Adventures in Lestoria/AdventuresInLestoria.cpp b/Adventures in Lestoria/AdventuresInLestoria.cpp index f98c2371..24ab80b0 100644 --- a/Adventures in Lestoria/AdventuresInLestoria.cpp +++ b/Adventures in Lestoria/AdventuresInLestoria.cpp @@ -2358,6 +2358,7 @@ void AiL::_PrepareLevel(MapName map,MusicChange changeMusic){ Audio::muted=true; Audio::UpdateBGMVolume(); #endif + zoomAdjustSpeed="Default Zoom Adjust Speed"_F; targetZoom=1.f; game->view.SetZoom(1.2f,game->view.WorldToScreen(game->camera.GetViewPosition())); worldColor=WHITE; diff --git a/Adventures in Lestoria/Effect.h b/Adventures in Lestoria/Effect.h index 3fec6fab..1d5f1577 100644 --- a/Adventures in Lestoria/Effect.h +++ b/Adventures in Lestoria/Effect.h @@ -127,4 +127,13 @@ struct RockLaunch:Effect{ private: float delayTime; vf2d futureSpd; +}; + +struct ShineEffect:Effect{ + //An effect that starts invisible, becomes visible, then fades out again. + ShineEffect(vf2d pos,float fadeinTime,float fadeoutTime,std::string imgFile,float size,vf2d spd,Pixel col,float rotation,float rotationSpd,bool additiveBlending=false); + virtual bool Update(float fElapsedTime)override final; +private: + float fadeinTime; + const Pixel originalCol; }; \ No newline at end of file diff --git a/Adventures in Lestoria/ShineEffect.cpp b/Adventures in Lestoria/ShineEffect.cpp new file mode 100644 index 00000000..ffea9dc8 --- /dev/null +++ b/Adventures in Lestoria/ShineEffect.cpp @@ -0,0 +1,49 @@ +#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 "Effect.h" +#include "util.h" + +ShineEffect::ShineEffect(vf2d pos,float fadeinTime,float fadeoutTime,std::string imgFile,float size,vf2d spd,Pixel col,float rotation,float rotationSpd,bool additiveBlending) +:fadeinTime(fadeinTime),originalCol(col),Effect(pos,fadeinTime,imgFile,false,size,fadeoutTime,spd,col,rotation,rotationSpd,additiveBlending){ + col.a=0; //Starts invisible. +} +bool ShineEffect::Update(float fElapsedTime){ + col.a=util::lerp(0.f,1.f,lifetime/fadeinTime)*originalCol.a; + return Effect::Update(fElapsedTime); +} \ No newline at end of file diff --git a/Adventures in Lestoria/Thief.cpp b/Adventures in Lestoria/Thief.cpp index d933697c..c76e47a1 100644 --- a/Adventures in Lestoria/Thief.cpp +++ b/Adventures in Lestoria/Thief.cpp @@ -136,10 +136,11 @@ void Thief::InitializeClassAbilities(){ return true; }; #pragma endregion - #pragma region Thief Ability 2 (???) + #pragma region Thief Ability 2 (Deadly Dash) Thief::ability2.action= [](Player*p,vf2d pos={}){ - return false; + game->AddEffect(std::make_unique(p->GetPos(),0.5f,0.5f,"shine.png",1.5f,vf2d{},WHITE,util::random(2*PI),PI/2,true)); + return true; }; #pragma endregion #pragma region Thief Ability 3 (???) diff --git a/Adventures in Lestoria/Version.h b/Adventures in Lestoria/Version.h index c26a25ae..7a6b65c8 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 2 #define VERSION_PATCH 3 -#define VERSION_BUILD 10094 +#define VERSION_BUILD 10097 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Adventures in Lestoria/assets/config/configuration.txt b/Adventures in Lestoria/assets/config/configuration.txt index a58c05a8..5cd11c08 100644 --- a/Adventures in Lestoria/assets/config/configuration.txt +++ b/Adventures in Lestoria/assets/config/configuration.txt @@ -180,4 +180,6 @@ user_id_message = In order to save progress online, we ask that you provide a un user_id_message2 = When loading a file, you will need this unique ID. # How large the exit ring is for a boss when it's killed. -boss_spawn_ring_radius = 116 \ No newline at end of file +boss_spawn_ring_radius = 116 + +Default Zoom Adjust Speed = 0.1/s \ No newline at end of file diff --git a/Adventures in Lestoria/assets/config/gfx/gfx.txt b/Adventures in Lestoria/assets/config/gfx/gfx.txt index 9f0485c6..2100f55a 100644 --- a/Adventures in Lestoria/assets/config/gfx/gfx.txt +++ b/Adventures in Lestoria/assets/config/gfx/gfx.txt @@ -108,6 +108,7 @@ Images GFX_Feather = feather.png GFX_LargeRock = large_rock.png GFX_Dagger = dagger.png + GFX_Shine = shine.png GFX_Thief_Sheet = nico-thief.png diff --git a/Adventures in Lestoria/assets/gamepack.pak b/Adventures in Lestoria/assets/gamepack.pak index 90903dcf..e729c6a5 100644 Binary files a/Adventures in Lestoria/assets/gamepack.pak and b/Adventures in Lestoria/assets/gamepack.pak differ diff --git a/Adventures in Lestoria/assets/shine.png b/Adventures in Lestoria/assets/shine.png new file mode 100644 index 00000000..3fa38973 Binary files /dev/null and b/Adventures in Lestoria/assets/shine.png differ diff --git a/x64/Release/Adventures in Lestoria.exe b/x64/Release/Adventures in Lestoria.exe index d230771f..6757b8b1 100644 Binary files a/x64/Release/Adventures in Lestoria.exe and b/x64/Release/Adventures in Lestoria.exe differ