#include "Ability.h"
#include "Crawler.h"

PrecastData::PrecastData()
:castTime(0),range(0),size(0){};
PrecastData::PrecastData(float castTime)
	:castTime(castTime),range(0),size(0){precastTargetingRequired=true;};
PrecastData::PrecastData(float castTime,float range,float size)
	:castTime(castTime),range(range),size(size){
		if(castTime>0)precastTargetingRequired=true;
	};

InputGroup Ability::DEFAULT;

Ability::Ability()
	:name("???"),shortName("???"),cooldown(0),COOLDOWN_TIME(0),input(&DEFAULT){};
Ability::Ability(std::string name,std::string shortName,float cooldownTime,int manaCost,InputGroup*input,std::string icon,Pixel barColor1,Pixel barColor2,PrecastData precastInfo,bool canCancelCast)
	:name(name),shortName(shortName),cooldown(0),COOLDOWN_TIME(cooldownTime),manaCost(manaCost),input(input),icon("Ability Icons/"+icon),barColor1(barColor1),barColor2(barColor2),precastInfo(precastInfo),canCancelCast(canCancelCast){}