Warrior slash animation now extends based on actual attack range. Release Build 7997.
This commit is contained in:
		
							parent
							
								
									588e184764
								
							
						
					
					
						commit
						6ff939e491
					
				| @ -758,6 +758,10 @@ | ||||
|       <SubType> | ||||
|       </SubType> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="SwordSlash.cpp"> | ||||
|       <SubType> | ||||
|       </SubType> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="Test.cpp" /> | ||||
|     <ClCompile Include="Thief.cpp" /> | ||||
|     <ClCompile Include="TitleScreen.cpp" /> | ||||
|  | ||||
| @ -845,6 +845,9 @@ | ||||
|     <ClCompile Include="CreditsWindow.cpp"> | ||||
|       <Filter>Source Files\Interface</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="SwordSlash.cpp"> | ||||
|       <Filter>Source Files\Effects</Filter> | ||||
|     </ClCompile> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <None Include="cpp.hint" /> | ||||
|  | ||||
| @ -213,6 +213,8 @@ void sig::Animation::InitializeAnimations(){ | ||||
| 	CreateHorizontalAnimationSequence("ground-slam-attack-front.png",5,{64,64},{0.02f,Animate2D::Style::OneShot}); | ||||
| 	CreateHorizontalAnimationSequence("battlecry_effect.png",5,{84,84},{0.02f,Animate2D::Style::OneShot}); | ||||
| 	CreateHorizontalAnimationSequence("sonicslash.png",4,{60,60},{0.04f,Animate2D::Style::OneShot}); | ||||
| 	 | ||||
| 	CreateHorizontalAnimationSequence("swordslash.png",3,{24,24},{0.05f,Animate2D::Style::OneShot}); | ||||
| 
 | ||||
| 	CreateStillAnimation("energy_bolt.png",{24,24}); | ||||
| 
 | ||||
|  | ||||
| @ -81,4 +81,9 @@ struct PulsatingFire:Effect{ | ||||
| 	float lastDamageTimer=0; | ||||
| 	bool Update(float fElapsedTime)override; | ||||
| 	void Draw()const override; | ||||
| }; | ||||
| 
 | ||||
| struct SwordSlash:Effect{ | ||||
| 	SwordSlash(float lifetime,std::string imgFile,vf2d size={1,1},float fadeout=0.0f,vf2d spd={},Pixel col=WHITE,float rotation=0,float rotationSpd=0,bool additiveBlending=false); | ||||
| 	bool Update(float fElapsedTime)override; | ||||
| }; | ||||
							
								
								
									
										49
									
								
								Adventures in Lestoria/SwordSlash.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								Adventures in Lestoria/SwordSlash.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,49 @@ | ||||
| #pragma region License | ||||
| /*
 | ||||
| License (OLC-3) | ||||
| ~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| Copyright 2024 Joshua Sigona <sigonasr2@gmail.com> | ||||
| 
 | ||||
| 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 "AdventuresInLestoria.h" | ||||
| 
 | ||||
| INCLUDE_game | ||||
| 
 | ||||
| SwordSlash::SwordSlash(float lifetime, std::string imgFile, vf2d size, float fadeout, vf2d spd, Pixel col, float rotation, float rotationSpd, bool additiveBlending) | ||||
| 	:Effect(game->GetPlayer()->GetPos(),lifetime,imgFile,game->GetPlayer()->OnUpperLevel(),size,fadeout,spd,col,rotation,rotationSpd,additiveBlending){} | ||||
| 
 | ||||
| bool SwordSlash::Update(float fElapsedTime){ | ||||
| 	pos=game->GetPlayer()->GetPos(); | ||||
| 	return Effect::Update(fElapsedTime); | ||||
| } | ||||
| @ -39,7 +39,7 @@ All rights reserved. | ||||
| #define VERSION_MAJOR 0 | ||||
| #define VERSION_MINOR 5 | ||||
| #define VERSION_PATCH 0 | ||||
| #define VERSION_BUILD 7992 | ||||
| #define VERSION_BUILD 7997 | ||||
| 
 | ||||
| #define stringify(a) stringify_(a) | ||||
| #define stringify_(a) #a | ||||
|  | ||||
| @ -78,17 +78,25 @@ bool Warrior::AutoAttack(){ | ||||
|                 closest=&m; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         float targetDirection; | ||||
| 
 | ||||
|         if(closest!=nullptr){ | ||||
|             closest->Hurt(int(GetAttack()*"Warrior.Auto Attack.DamageMult"_F),OnUpperLevel(),GetZ()); | ||||
|             float dirToEnemy=geom2d::line<float>(GetPos(),closest->GetPos()).vector().polar().y; | ||||
|             targetDirection=dirToEnemy; | ||||
|             SetAnimationBasedOnTargetingDirection(dirToEnemy); | ||||
|         }else{ | ||||
|             float dirToMouse=geom2d::line<float>(GetPos(),GetWorldAimingLocation()).vector().polar().y; | ||||
|             targetDirection=dirToMouse; | ||||
|             SetAnimationBasedOnTargetingDirection(dirToMouse); | ||||
|         } | ||||
| 
 | ||||
|         attack_cooldown_timer=ATTACK_COOLDOWN-GetAttackRecoveryRateReduction(); | ||||
|         swordSwingTimer="Warrior.Auto Attack.SwordSwingTime"_F; | ||||
| 
 | ||||
|         game->AddEffect(std::make_unique<SwordSlash>(0.15f,"swordslash.png"s,vf2d{1.f,1.f}*"Warrior.Auto Attack.Range"_F/100.f,0.1f,vf2d{0.f,0.f},WHITE,targetDirection)); | ||||
| 
 | ||||
|         SetState(State::SWING_SWORD); | ||||
|         SoundEffect::PlaySFX("Warrior Auto Attack",SoundEffect::CENTERED); | ||||
|     } | ||||
|  | ||||
| @ -81,6 +81,7 @@ Images | ||||
| 	GFX_XPBar = xpbar.png | ||||
| 	GFX_Lock = lock.png | ||||
| 	GFX_Unlock = unlock.png | ||||
| 	GFX_SwordSlash = swordslash.png | ||||
| 
 | ||||
| 	# Ability Icons | ||||
| 	GFX_Warrior_BattleCry_Icon = Ability Icons/battlecry.png | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Adventures in Lestoria/assets/swordslash.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Adventures in Lestoria/assets/swordslash.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 725 B | 
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user