All checks were successful
Emscripten Build / Build_and_Deploy_Web_Build (push) Successful in 8m36s
19 lines
1.1 KiB
C++
19 lines
1.1 KiB
C++
#include"EffectTypes.h"
|
|
#include"DEFINES.h"
|
|
#include"config.h"
|
|
|
|
INCLUDE_MONSTER_LIST
|
|
|
|
BlackHole::BlackHole(Oscillator<vf2d>pos,const std::string&img,float lifetime,bool onUpperLevel,Oscillator<vf2d>size,vf2d spd,Oscillator<Pixel>col,float rotation,float rotationSpd,bool additiveBlending,float particleSpawnFreq,const std::function<Effect(const Effect&self)>&particleGenerator)
|
|
:FadeInOutEffect(pos,img,lifetime,onUpperLevel,size,spd,col,rotation,rotationSpd,additiveBlending,particleSpawnFreq,particleGenerator){}
|
|
|
|
bool BlackHole::Update(float fElapsedTime){
|
|
for(std::shared_ptr<Monster>&m:MONSTER_LIST){
|
|
float distToMonster{util::distance(pos,m->GetPos())};
|
|
if(!m->IsSolid()&&m->OnUpperLevel()==OnUpperLevel()&&m->GetZ()<1.f&&distToMonster<="Black Hole"_ENC["PULL IN RADIUS"]/100.f*24){
|
|
float pullInForce{util::map_range<float>(distToMonster,0,"Black Hole"_ENC["PULL IN RADIUS"]/100.f*24,"Black Hole"_ENC["PULL IN FORCE MAX"],"Black Hole"_ENC["PULL IN FORCE MIN"])};
|
|
m->AddAddedVelocity(util::pointTo(m->GetPos(),pos)*pullInForce);
|
|
}
|
|
}
|
|
return FadeInOutEffect::Update(fElapsedTime);
|
|
} |