#include "BulletTypes.h" #include "Effect.h" #include "Crawler.h" #include "DEFINES.h" #include "utils.h" #include "olcUTIL_Geometry2D.h" INCLUDE_game ChargedArrow::ChargedArrow(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly,Pixel col) :lastLaserPos(pos), Bullet(pos,vel,radius,damage, AnimationState::CHARGED_ARROW,upperLevel,true,INFINITE,true,friendly,col){} void ChargedArrow::Update(float fElapsedTime){ geom2d::line lineToCurrentPos(geom2d::line(lastLaserPos,pos)); float dist=lineToCurrentPos.length(); if(dist>=1){ vf2d midpoint(lineToCurrentPos.rpoint(0.5)); game->AddEffect(std::make_unique(midpoint,0.1,AnimationState::LASER,upperLevel,vf2d{1,dist},0.3,vf2d{},Pixel{192,128,238},atan2(pos.y-lastLaserPos.y,pos.x-lastLaserPos.x)+PI/2,0,true)); lastLaserPos=pos; } } bool ChargedArrow::PlayerHit(Player*player) { return false; } bool ChargedArrow::MonsterHit(Monster& monster) { return false; }