|
|
@ -19,16 +19,16 @@ void LightningBolt::Update(float fElapsedTime){ |
|
|
|
uint8_t brightness=uint8_t(util::random(100)+150); |
|
|
|
uint8_t brightness=uint8_t(util::random(100)+150); |
|
|
|
switch(rand()%4){ |
|
|
|
switch(rand()%4){ |
|
|
|
case 0:{ |
|
|
|
case 0:{ |
|
|
|
game->AddEffect(Effect(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE1,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),{brightness,brightness,brightness})); |
|
|
|
game->AddEffect(std::make_unique<Effect>(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE1,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),Pixel{brightness,brightness,brightness})); |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case 1:{ |
|
|
|
case 1:{ |
|
|
|
game->AddEffect(Effect(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE2,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),{brightness,brightness,brightness})); |
|
|
|
game->AddEffect(std::make_unique<Effect>(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE2,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),Pixel{brightness,brightness,brightness})); |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case 2:{ |
|
|
|
case 2:{ |
|
|
|
game->AddEffect(Effect(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE3,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),{brightness,brightness,brightness})); |
|
|
|
game->AddEffect(std::make_unique<Effect>(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE3,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),Pixel{brightness,brightness,brightness})); |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
case 3:{ |
|
|
|
case 3:{ |
|
|
|
game->AddEffect(Effect(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE4,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),{brightness,brightness,brightness})); |
|
|
|
game->AddEffect(std::make_unique<Effect>(pos+vf2d{util::random(12)-6,util::random(12)-6},util::random(0.1),AnimationState::LIGHTNING_BOLT_PARTICLE4,upperLevel,util::random(0.5)+1,0.1,vel*(util::random(0.1)+0.9),Pixel{brightness,brightness,brightness})); |
|
|
|
}break; |
|
|
|
}break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -38,7 +38,7 @@ bool LightningBolt::PlayerHit(Player& player) |
|
|
|
{ |
|
|
|
{ |
|
|
|
deactivated=true; |
|
|
|
deactivated=true; |
|
|
|
fadeOutTime=0.2f; |
|
|
|
fadeOutTime=0.2f; |
|
|
|
game->AddEffect(Effect(player.GetPos(),0.3,AnimationState::LIGHTNING_SPLASH,upperLevel,player.GetSizeMult(),0.25,{},WHITE,util::random(PI))); |
|
|
|
game->AddEffect(std::make_unique<Effect>(player.GetPos(),0.3,AnimationState::LIGHTNING_SPLASH,upperLevel,player.GetSizeMult(),0.25,vf2d{},WHITE,util::random(PI))); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -46,7 +46,7 @@ bool LightningBolt::MonsterHit(Monster& monster) |
|
|
|
{ |
|
|
|
{ |
|
|
|
deactivated=true; |
|
|
|
deactivated=true; |
|
|
|
fadeOutTime=0.2f; |
|
|
|
fadeOutTime=0.2f; |
|
|
|
game->AddEffect(Effect(monster.GetPos(),0.3,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),0.25,{},WHITE,util::random(PI))); |
|
|
|
game->AddEffect(std::make_unique<Effect>(monster.GetPos(),0.3,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),0.25,vf2d{},WHITE,util::random(PI))); |
|
|
|
int targetsHit=0; |
|
|
|
int targetsHit=0; |
|
|
|
for(Monster&m:MONSTER_LIST){ |
|
|
|
for(Monster&m:MONSTER_LIST){ |
|
|
|
if(&m==&monster||monster.OnUpperLevel()!=m.OnUpperLevel())continue; |
|
|
|
if(&m==&monster||monster.OnUpperLevel()!=m.OnUpperLevel())continue; |
|
|
@ -55,7 +55,7 @@ bool LightningBolt::MonsterHit(Monster& monster) |
|
|
|
if(dist<=72){ |
|
|
|
if(dist<=72){ |
|
|
|
if(m.Hurt(game->GetPlayer().GetAttack()*2)){ |
|
|
|
if(m.Hurt(game->GetPlayer().GetAttack()*2)){ |
|
|
|
EMITTER_LIST.push_back(std::make_unique<LightningBoltEmitter>(LightningBoltEmitter(monster.GetPos(),m.GetPos(),0.05,0.25,upperLevel))); |
|
|
|
EMITTER_LIST.push_back(std::make_unique<LightningBoltEmitter>(LightningBoltEmitter(monster.GetPos(),m.GetPos(),0.05,0.25,upperLevel))); |
|
|
|
game->AddEffect(Effect(m.GetPos(),0.5,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),0.25,{},WHITE,util::random(PI))); |
|
|
|
game->AddEffect(std::make_unique<Effect>(m.GetPos(),0.5,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),0.25,vf2d{},WHITE,util::random(PI))); |
|
|
|
targetsHit++; |
|
|
|
targetsHit++; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|