Added in Wizard Lightning Bolt Configuration Parameters
This commit is contained in:
parent
9d65f5ba93
commit
49b802fc99
@ -15,21 +15,22 @@ LightningBolt::LightningBolt(vf2d pos,vf2d vel,float radius,int damage,bool uppe
|
||||
|
||||
void LightningBolt::Update(float fElapsedTime){
|
||||
lastParticleSpawn=std::max(0.f,lastParticleSpawn-fElapsedTime);
|
||||
uint8_t brightness=uint8_t("Wizard.Ability 2.ParticleColorRange"_FRange);
|
||||
if(lastParticleSpawn==0){
|
||||
lastParticleSpawn=0.01;
|
||||
uint8_t brightness=uint8_t(util::random(100)+150);
|
||||
lastParticleSpawn="Wizard.Ability 2.ParticleFrequency"_F;
|
||||
uint8_t brightness=uint8_t("Wizard.Ability 2.ParticleColorRange"_FRange);
|
||||
switch(rand()%4){
|
||||
case 0:{
|
||||
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}));
|
||||
game->AddEffect(std::make_unique<Effect>(pos+vf2d{"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange,"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange},"Wizard.Ability 2.ParticleLifetimeRange"_FRange,AnimationState::LIGHTNING_BOLT_PARTICLE1,upperLevel,"Wizard.Ability 2.ParticleSizeRange"_FRange,"Wizard.Ability 2.ParticleFadeoutTime"_F,vel*"Wizard.Ability 2.ParticleSpeedMultRange"_FRange,Pixel{brightness,brightness,brightness}));
|
||||
}break;
|
||||
case 1:{
|
||||
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}));
|
||||
game->AddEffect(std::make_unique<Effect>(pos+vf2d{"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange,"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange},"Wizard.Ability 2.ParticleLifetimeRange"_FRange,AnimationState::LIGHTNING_BOLT_PARTICLE2,upperLevel,"Wizard.Ability 2.ParticleSizeRange"_FRange,"Wizard.Ability 2.ParticleFadeoutTime"_F,vel*"Wizard.Ability 2.ParticleSpeedMultRange"_FRange,Pixel{brightness,brightness,brightness}));
|
||||
}break;
|
||||
case 2:{
|
||||
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}));
|
||||
game->AddEffect(std::make_unique<Effect>(pos+vf2d{"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange,"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange},"Wizard.Ability 2.ParticleLifetimeRange"_FRange,AnimationState::LIGHTNING_BOLT_PARTICLE3,upperLevel,"Wizard.Ability 2.ParticleSizeRange"_FRange,"Wizard.Ability 2.ParticleFadeoutTime"_F,vel*"Wizard.Ability 2.ParticleSpeedMultRange"_FRange,Pixel{brightness,brightness,brightness}));
|
||||
}break;
|
||||
case 3:{
|
||||
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}));
|
||||
game->AddEffect(std::make_unique<Effect>(pos+vf2d{"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange,"Wizard.Ability 2.ParticleSpawnRadiusRange"_FRange},"Wizard.Ability 2.ParticleLifetimeRange"_FRange,AnimationState::LIGHTNING_BOLT_PARTICLE4,upperLevel,"Wizard.Ability 2.ParticleSizeRange"_FRange,"Wizard.Ability 2.ParticleFadeoutTime"_F,vel*"Wizard.Ability 2.ParticleSpeedMultRange"_FRange,Pixel{brightness,brightness,brightness}));
|
||||
}break;
|
||||
}
|
||||
}
|
||||
@ -38,25 +39,25 @@ void LightningBolt::Update(float fElapsedTime){
|
||||
bool LightningBolt::PlayerHit(Player*player)
|
||||
{
|
||||
deactivated=true;
|
||||
fadeOutTime=0.2f;
|
||||
game->AddEffect(std::make_unique<Effect>(player->GetPos(),0.3,AnimationState::LIGHTNING_SPLASH,upperLevel,player->GetSizeMult(),0.25,vf2d{},WHITE,util::random(PI)));
|
||||
fadeOutTime="Wizard.Ability 2.BulletFadeoutTime"_F;
|
||||
game->AddEffect(std::make_unique<Effect>(player->GetPos(),"Wizard.Ability 2.SplashLifetime"_F,AnimationState::LIGHTNING_SPLASH,upperLevel,player->GetSizeMult(),"Wizard.Ability 2.SplashFadeoutTime"_F,vf2d{},WHITE,"Wizard.Ability 2.SplashRotationRange"_FRange));
|
||||
return false;
|
||||
}
|
||||
|
||||
bool LightningBolt::MonsterHit(Monster& monster)
|
||||
{
|
||||
deactivated=true;
|
||||
fadeOutTime=0.2f;
|
||||
game->AddEffect(std::make_unique<Effect>(monster.GetPos(),0.3,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),0.25,vf2d{},WHITE,util::random(PI)));
|
||||
fadeOutTime="Wizard.Ability 2.BulletFadeoutTime"_F;
|
||||
game->AddEffect(std::make_unique<Effect>(monster.GetPos(),"Wizard.Ability 2.SplashLifetime"_F,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),"Wizard.Ability 2.SplashFadeoutTime"_F,vf2d{},WHITE,"Wizard.Ability 2.SplashRotationRange"_FRange));
|
||||
int targetsHit=0;
|
||||
for(Monster&m:MONSTER_LIST){
|
||||
if(&m==&monster||monster.OnUpperLevel()!=m.OnUpperLevel())continue;
|
||||
geom2d::line<float>lineToTarget=geom2d::line<float>(monster.GetPos(),m.GetPos());
|
||||
float dist=lineToTarget.length();
|
||||
if(dist<=72){
|
||||
if(m.Hurt(game->GetPlayer()->GetAttack()*2,OnUpperLevel())){
|
||||
EMITTER_LIST.push_back(std::make_unique<LightningBoltEmitter>(LightningBoltEmitter(monster.GetPos(),m.GetPos(),0.05,0.25,upperLevel)));
|
||||
game->AddEffect(std::make_unique<Effect>(m.GetPos(),0.5,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),0.25,vf2d{},WHITE,util::random(PI)));
|
||||
if(dist<="Wizard.Ability 2.LightningChainDistance"_F/100*12){
|
||||
if(m.Hurt(game->GetPlayer()->GetAttack()*"Wizard.Ability 2.LightningChainDamageMult"_F,OnUpperLevel())){
|
||||
EMITTER_LIST.push_back(std::make_unique<LightningBoltEmitter>(LightningBoltEmitter(monster.GetPos(),m.GetPos(),"Wizard.Ability 2.LightningChainFrequency"_F,"Wizard.Ability 2.LightningChainLifetime"_F,upperLevel)));
|
||||
game->AddEffect(std::make_unique<Effect>(m.GetPos(),"Wizard.Ability 2.LightningChainSplashLifetime"_F,AnimationState::LIGHTNING_SPLASH,upperLevel,monster.GetSizeMult(),"Wizard.Ability 2.LightningChainSplashFadeoutTime"_F,vf2d{},WHITE,"Wizard.Ability 2.LightningChainSplashRotationRange"_FRange));
|
||||
targetsHit++;
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 0
|
||||
#define VERSION_BUILD 914
|
||||
#define VERSION_BUILD 920
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
@ -139,10 +139,39 @@ Wizard
|
||||
DamageMult = 4
|
||||
|
||||
BulletSpeed = 230
|
||||
Radius = 100
|
||||
Radius = 150
|
||||
|
||||
#Coloring of the bullet.
|
||||
BulletColor = 255, 255, 255, 255
|
||||
|
||||
BulletFadeoutTime = 0.2
|
||||
|
||||
# How far away to look for nearby enemies to chain lightning to.
|
||||
LightningChainDistance = 600
|
||||
# Damage multiplier for enemies hit by lightning chain.
|
||||
LightningChainDamageMult = 2
|
||||
# How fast the chain lightning chases its target (Frequency updates in seconds).
|
||||
LightningChainFrequency = 0.05
|
||||
LightningChainLifetime = 0.25
|
||||
|
||||
LightningChainSplashLifetime = 0.5
|
||||
LightningChainSplashFadeoutTime = 0.25
|
||||
LightningChainSplashRotationRange = 0,3.14159
|
||||
|
||||
# How long the splash effect lasts.
|
||||
SplashLifetime = 0.3
|
||||
SplashFadeoutTime = 0.25
|
||||
SplashRotationRange = 0,3.14159
|
||||
|
||||
# How much time passes before another particle spawns from the bullet.
|
||||
ParticleFrequency = 0.01
|
||||
# The darkest and brightest amount this particle will be colored (applied to R,G,and B components simultaneously)
|
||||
ParticleColorRange = 150,250
|
||||
ParticleSpawnRadiusRange = -24,24
|
||||
ParticleLifetimeRange = 0,0.1
|
||||
ParticleSizeRange = 1,1.5
|
||||
ParticleFadeoutTime = 0.4
|
||||
ParticleSpeedMultRange = 0.9,1
|
||||
}
|
||||
Ability 3
|
||||
{
|
||||
|
@ -16,4 +16,4 @@ class_directory = classes/
|
||||
class_list = Warrior, Thief, Ranger, Trapper, Wizard, Witch
|
||||
|
||||
# Whether or not to show individual data accesses from config data structure.
|
||||
debug_access_options = 1
|
||||
debug_access_options = 0
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user