45 lines
1.6 KiB
C
Raw Normal View History

2023-06-30 15:44:41 -07:00
#pragma once
#include "Bullet.h"
#include "olcPixelGameEngine.h"
2023-06-30 15:44:41 -07:00
struct EnergyBolt:public Bullet{
float lastParticleSpawn=0;
2023-07-07 06:42:49 -05:00
EnergyBolt(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
2023-06-30 15:44:41 -07:00
void Update(float fElapsedTime)override;
bool PlayerHit(Player*player)override;
bool MonsterHit(Monster&monster)override;
2023-07-06 04:35:40 -05:00
};
struct FireBolt:public Bullet{
float lastParticleSpawn=0;
2023-07-07 06:42:49 -05:00
FireBolt(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
2023-07-06 04:35:40 -05:00
void Update(float fElapsedTime)override;
bool PlayerHit(Player*player)override;
2023-07-06 04:35:40 -05:00
bool MonsterHit(Monster&monster)override;
};
struct LightningBolt:public Bullet{
float lastParticleSpawn=0;
LightningBolt(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
void Update(float fElapsedTime)override;
bool PlayerHit(Player*player)override;
bool MonsterHit(Monster&monster)override;
};
struct Arrow:public Bullet{
float travelDistance=0;
float finalDistance=0;
float acc=PI/2*250;
Arrow(vf2d pos,vf2d targetPos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
void Update(float fElapsedTime)override;
bool PlayerHit(Player*player)override;
bool MonsterHit(Monster&monster)override;
};
struct ChargedArrow:public Bullet{
vf2d lastLaserPos;
ChargedArrow(vf2d pos,vf2d vel,float radius,int damage,bool upperLevel,bool friendly=false,Pixel col=WHITE);
void Update(float fElapsedTime)override;
bool PlayerHit(Player*player)override;
bool MonsterHit(Monster&monster)override;
2023-06-30 15:44:41 -07:00
};