Player gains iframes if getting hit by ground slam to prevent insta-gibbing via the spawned bullet ring.
This commit is contained in:
parent
0d6b6584d5
commit
3c3d32bf7e
@ -6,6 +6,7 @@
|
||||
#include "BulletTypes.h"
|
||||
#include "DEFINES.h"
|
||||
#include "safemap.h"
|
||||
#include "utils.h"
|
||||
|
||||
INCLUDE_MONSTER_DATA
|
||||
INCLUDE_MONSTER_LIST
|
||||
@ -310,7 +311,11 @@ void Player::Update(float fElapsedTime){
|
||||
}
|
||||
geom2d::line line(pos,m.GetPos());
|
||||
float dist = line.length();
|
||||
m.SetPos(line.rpoint(dist*1.1));
|
||||
if(dist<=0.001){
|
||||
m.SetPos(m.GetPos()+vf2d{util::random(2)-1,util::random(2)-1});
|
||||
}else{
|
||||
m.SetPos(line.rpoint(dist*1.1));
|
||||
}
|
||||
if(m.IsAlive()){
|
||||
vel=line.vector().norm()*-128;
|
||||
}
|
||||
@ -679,3 +684,7 @@ void Player::SetAnimationBasedOnTargetingDirection(float targetDirection){
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Player::SetIframes(float duration){
|
||||
iframe_time=duration;
|
||||
}
|
||||
@ -53,6 +53,7 @@ private:
|
||||
float lastHitTimer=0; //When this is greater than zero, if we get hit again it adds to our displayed combo number.
|
||||
std::shared_ptr<DamageNumber>damageNumberPtr;
|
||||
void Initialize();
|
||||
float iframe_time=0;
|
||||
protected:
|
||||
const float ATTACK_COOLDOWN="Warrior.Auto Attack.Cooldown"_F;
|
||||
const float MAGIC_ATTACK_COOLDOWN="Wizard.Auto Attack.Cooldown"_F;
|
||||
@ -71,7 +72,6 @@ protected:
|
||||
bool SetPos(vf2d pos);
|
||||
float friction="Player.Friction"_F;
|
||||
float attack_cooldown_timer=0;
|
||||
float iframe_time=0;
|
||||
float teleportAnimationTimer=0;
|
||||
vf2d teleportTarget={};
|
||||
vf2d teleportStartPosition={};
|
||||
@ -131,6 +131,7 @@ public:
|
||||
bool CanAct();
|
||||
bool CanAct(Ability&ability);
|
||||
void Knockback(vf2d vel);
|
||||
void SetIframes(float duration);
|
||||
|
||||
void AddBuff(BuffType type,float duration,float intensity);
|
||||
std::vector<Buff>GetBuffs(BuffType buff);
|
||||
|
||||
@ -124,6 +124,7 @@ void Monster::STRATEGY::SLIMEKING(Monster&m,float fElapsedTime,int strategyNumbe
|
||||
lineToPlayer={m.GetPos(),m.GetPos()+vf2d{cos(randomDir),sin(randomDir)}*1};
|
||||
}
|
||||
game->GetPlayer()->Knockback(lineToPlayer.vector().norm()*ConfigInt("JumpKnockbackFactor"));
|
||||
game->GetPlayer()->SetIframes(1);
|
||||
}
|
||||
Landed(m.phase);
|
||||
m.SetStrategyDrawFunction([](Crawler*game){});
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#define VERSION_MAJOR 0
|
||||
#define VERSION_MINOR 2
|
||||
#define VERSION_PATCH 0
|
||||
#define VERSION_BUILD 1362
|
||||
#define VERSION_BUILD 1364
|
||||
|
||||
#define stringify(a) stringify_(a)
|
||||
#define stringify_(a) #a
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user