Let's not be stuck repeatedly casting when a prre-cast finishes....

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
pull/28/head
Nic0Nic0Nii 2 years ago
parent 21f7278510
commit 5da8b19c34
  1. 16
      Crawler/Player.cpp
  2. BIN
      Crawler/pixelGameEngine.o

@ -163,7 +163,17 @@ void Player::Update(float fElapsedTime){
notEnoughManaDisplay.second=std::max(0.f,notEnoughManaDisplay.second-fElapsedTime);
notificationDisplay.second=std::max(0.f,notificationDisplay.second-fElapsedTime);
manaTickTimer-=fElapsedTime;
castInfo.castTimer=std::max(0.f,castInfo.castTimer-fElapsedTime);
if(castInfo.castTimer>0){
castInfo.castTimer-=fElapsedTime;
if(castInfo.castTimer<=0){
if(castPrepAbility->action()){
castPrepAbility->cooldown=castPrepAbility->COOLDOWN_TIME;
mana-=castPrepAbility->manaCost;
}
castInfo.castTimer=0;
SetState(State::NORMAL);
}
}
while(manaTickTimer<=0){
manaTickTimer+=0.2;
mana=std::min(maxmana,mana+1);
@ -293,7 +303,7 @@ void Player::Update(float fElapsedTime){
}
auto AllowedToCast=[&](Ability&ability){return !ability.precastInfo.precastTargetingRequired||ability.precastInfo.precastTargetingRequired&&GetState()==State::PREP_CAST;};
auto AllowedToCast=[&](Ability&ability){return !ability.precastInfo.precastTargetingRequired;};
auto CheckAndPerformAbility=[&](Ability&ability,HWButton key){
if(ability.cooldown==0&&GetMana()>=ability.manaCost){
if(key.bPressed||key.bReleased&&&ability==castPrepAbility&&GetState()==State::PREP_CAST){
@ -486,7 +496,7 @@ std::vector<Buff>Player::GetBuffs(BuffType buff){
void Player::CastSpell(Ability&ability){
castInfo={ability.name,ability.precastInfo.castTime,ability.precastInfo.castTime};
SetState(State::NORMAL);
SetState(State::CASTING);
}
CastInfo&Player::GetCastInfo(){

Binary file not shown.
Loading…
Cancel
Save