|
|
|
@ -75,7 +75,7 @@ bool Wizard::AutoAttack(){ |
|
|
|
|
void Wizard::InitializeClassAbilities(){ |
|
|
|
|
#pragma region Wizard Right-click Ability (Teleport) |
|
|
|
|
Wizard::rightClickAbility.action= |
|
|
|
|
[&](){ |
|
|
|
|
[&](vf2d pos={}){ |
|
|
|
|
float pointMouseDirection=atan2(game->GetWorldMousePos().y-GetPos().y,game->GetWorldMousePos().x-GetPos().x); |
|
|
|
|
vf2d pointTowardsMouse={cos(pointMouseDirection),sin(pointMouseDirection)}; |
|
|
|
|
float dist=std::clamp(geom2d::line<float>{GetPos(),game->GetWorldMousePos()}.length(),0.f,6.5f*24); |
|
|
|
@ -103,7 +103,7 @@ void Wizard::InitializeClassAbilities(){ |
|
|
|
|
#pragma endregion |
|
|
|
|
#pragma region Wizard Ability 1 (Fire Bolt) |
|
|
|
|
Wizard::ability1.action= |
|
|
|
|
[&](){ |
|
|
|
|
[&](vf2d pos={}){ |
|
|
|
|
float angleToCursor=atan2(game->GetWorldMousePos().y-GetPos().y,game->GetWorldMousePos().x-GetPos().x); |
|
|
|
|
BULLET_LIST.push_back(std::make_unique<FireBolt>(FireBolt(GetPos(),{cos(angleToCursor)*275,sin(angleToCursor)*275},12,GetAttack(),upperLevel,true,{240,120,60}))); |
|
|
|
|
return true; |
|
|
|
@ -111,7 +111,7 @@ void Wizard::InitializeClassAbilities(){ |
|
|
|
|
#pragma endregion |
|
|
|
|
#pragma region Wizard Ability 2 (Lightning Bolt) |
|
|
|
|
Wizard::ability2.action= |
|
|
|
|
[&](){ |
|
|
|
|
[&](vf2d pos={}){ |
|
|
|
|
float angleToCursor=atan2(game->GetWorldMousePos().y-GetPos().y,game->GetWorldMousePos().x-GetPos().x); |
|
|
|
|
BULLET_LIST.push_back(std::make_unique<LightningBolt>(LightningBolt(GetPos(),{cos(angleToCursor)*230,sin(angleToCursor)*230},12,GetAttack()*4,upperLevel,true,WHITE))); |
|
|
|
|
return true; |
|
|
|
@ -119,9 +119,9 @@ void Wizard::InitializeClassAbilities(){ |
|
|
|
|
#pragma endregion |
|
|
|
|
#pragma region Wizard Ability 3 (Meteor) |
|
|
|
|
Wizard::ability3.action= |
|
|
|
|
[&](){ |
|
|
|
|
[&](vf2d pos={}){ |
|
|
|
|
CastSpell(Wizard::ability3); |
|
|
|
|
game->AddEffect(std::make_unique<Meteor>(GetPos(),3,AnimationState::METEOR,OnUpperLevel(),vf2d{1,1},2)); |
|
|
|
|
game->AddEffect(std::make_unique<Meteor>(pos,3,AnimationState::METEOR,OnUpperLevel(),vf2d{1,1},2)); |
|
|
|
|
return true; |
|
|
|
|
}; |
|
|
|
|
#pragma endregion |
|
|
|
|