From 43b550366168b08daa42b8d667339de33b86dcc9 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 16 Sep 2023 07:42:15 -0500 Subject: [PATCH] Added particle effects for slime king jump and landing. --- Crawler/Crawler.vcxproj | 1 + Crawler/Crawler.vcxproj.filters | 3 +++ Crawler/FallingDebris.h | 19 +++++++++++++++++++ Crawler/SlimeKing.cpp | 3 ++- Crawler/Version.h | 2 +- Crawler/assets/config/MonsterStrategies.txt | 1 + 6 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 Crawler/FallingDebris.h diff --git a/Crawler/Crawler.vcxproj b/Crawler/Crawler.vcxproj index 09191c04..64f55478 100644 --- a/Crawler/Crawler.vcxproj +++ b/Crawler/Crawler.vcxproj @@ -302,6 +302,7 @@ + diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters index a5459957..38fdedbc 100644 --- a/Crawler/Crawler.vcxproj.filters +++ b/Crawler/Crawler.vcxproj.filters @@ -239,6 +239,9 @@ Source Files\Monster Strategies + + Source Files\Effects + diff --git a/Crawler/FallingDebris.h b/Crawler/FallingDebris.h new file mode 100644 index 00000000..35243122 --- /dev/null +++ b/Crawler/FallingDebris.h @@ -0,0 +1,19 @@ +#include "Effect.h" +#include "DEFINES.h" +#include "safemap.h" + +INCLUDE_GFX + +class FallingDebris:public Effect{ + const float GRAVITY=20; +public: + inline FallingDebris(vf2d pos, float lifetime, std::string imgFile, bool upperLevel,vf2d size={1,1},float fadeout=0.0f,vf2d spd={},Pixel col=WHITE,float rotation=0,float rotationSpd=0,bool additiveBlending=false) + :Effect(pos,lifetime,imgFile,upperLevel,size,fadeout,spd,col,rotation,rotationSpd,additiveBlending){ + + } + + inline bool Update(float fElapsedTime)override{ + spd.y+=GRAVITY*fElapsedTime; + return Effect::Update(fElapsedTime); + } +}; \ No newline at end of file diff --git a/Crawler/SlimeKing.cpp b/Crawler/SlimeKing.cpp index fa007b90..e03e661a 100644 --- a/Crawler/SlimeKing.cpp +++ b/Crawler/SlimeKing.cpp @@ -5,6 +5,7 @@ #include "utils.h" #include "safemap.h" #include "Effect.h" +#include "FallingDebris.h" INCLUDE_game INCLUDE_BULLET_LIST @@ -69,7 +70,7 @@ void Monster::STRATEGY::SLIMEKING(Monster&m,float fElapsedTime,int strategyNumbe float dist=lineToPlayer.length(); for(int i=0;i<200;i++){ float randomDir=util::random(2*PI); - //game->AddEffect(Effect{vf2d{cos(randomDir),sin(randomDir)}*m.GetSizeMult()*8,util::random(1),}) + game->AddEffect(std::make_unique(m.GetPos()+vf2d{cos(randomDir),sin(randomDir)}*m.GetSizeMult()*8,util::random(1),"circle.png",m.OnUpperLevel(),vf2d{1,1},0.5,vf2d{cos(randomDir)*util::random(5),sin(randomDir)*-util::random(15)-5}*30,BLACK),true); } if(dist<12*m.GetSizeMult()){ game->GetPlayer()->Hurt(ConfigInt("JumpAttackDamage"),m.OnUpperLevel(),m.GetZ()); diff --git a/Crawler/Version.h b/Crawler/Version.h index 22a4c5ec..cdc781b5 100644 --- a/Crawler/Version.h +++ b/Crawler/Version.h @@ -2,7 +2,7 @@ #define VERSION_MAJOR 0 #define VERSION_MINOR 2 #define VERSION_PATCH 0 -#define VERSION_BUILD 1324 +#define VERSION_BUILD 1330 #define stringify(a) stringify_(a) #define stringify_(a) #a diff --git a/Crawler/assets/config/MonsterStrategies.txt b/Crawler/assets/config/MonsterStrategies.txt index 1f3ebb8b..a4c826a6 100644 --- a/Crawler/assets/config/MonsterStrategies.txt +++ b/Crawler/assets/config/MonsterStrategies.txt @@ -79,6 +79,7 @@ MonsterStrategy ProjectileDamage = 10 JumpAttackDamage = 20 JumpMoveSpd = 75 + # How far the player gets knocked back if hit. JumpKnockbackFactor = 250 BulletSpd = 250