feat: implemented air-heavy / adjusted timing of KickA
This commit is contained in:
parent
4265148156
commit
6175e52297
|
@ -15,6 +15,7 @@ void InternalSpriteFlipWithMovement(Player* self) {
|
||||||
|
|
||||||
void PlayerAnimationExit(Player* self) {
|
void PlayerAnimationExit(Player* self) {
|
||||||
self->animationTriggers = 0;
|
self->animationTriggers = 0;
|
||||||
|
self->attackInput = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerIdleEnter(Player* self) {
|
void PlayerIdleEnter(Player* self) {
|
||||||
|
@ -122,12 +123,8 @@ const State* PlayerJabB_Update(Player* self, float deltaTime) {
|
||||||
PlayerHurtbox(self, damage, MakeVector(0.1f, 0.06f), MakeVector(0.3f, -0.6f));
|
PlayerHurtbox(self, damage, MakeVector(0.1f, 0.06f), MakeVector(0.3f, -0.6f));
|
||||||
++self->animationTriggers;
|
++self->animationTriggers;
|
||||||
}
|
}
|
||||||
if(ntime > 1.0f) {
|
if(ntime > 1.0f && self->attackInput == 1)
|
||||||
if(self->attackInput == 1)
|
return PlayerKickA();
|
||||||
return PlayerJabA();
|
|
||||||
else if(self->attackInput == 2)
|
|
||||||
return PlayerKickA();
|
|
||||||
}
|
|
||||||
if(!veqf(self->moveInput, ZeroVector) && ntime > 1.05f)
|
if(!veqf(self->moveInput, ZeroVector) && ntime > 1.05f)
|
||||||
return PlayerWalk();
|
return PlayerWalk();
|
||||||
if(ntime >= 2.0f)
|
if(ntime >= 2.0f)
|
||||||
|
@ -149,7 +146,7 @@ const State* PlayerKickA_Update(Player* self, float deltaTime) {
|
||||||
.knockback = 0.15f,
|
.knockback = 0.15f,
|
||||||
};
|
};
|
||||||
const float ntime = animation_sprite_get_time_normalized(self->currentAnimation);
|
const float ntime = animation_sprite_get_time_normalized(self->currentAnimation);
|
||||||
if(ntime > 0.25f && self->animationTriggers == 0) {
|
if(ntime > 0.6f && self->animationTriggers == 0) {
|
||||||
PlayerHurtbox(self, damage, MakeVector(0.1f, 0.06f), MakeVector(0.3f, -0.4f));
|
PlayerHurtbox(self, damage, MakeVector(0.1f, 0.06f), MakeVector(0.3f, -0.4f));
|
||||||
++self->animationTriggers;
|
++self->animationTriggers;
|
||||||
}
|
}
|
||||||
|
@ -162,26 +159,47 @@ const State* PlayerKickA_Update(Player* self, float deltaTime) {
|
||||||
return PlayerKickA();
|
return PlayerKickA();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
const State* PlayerAir_Update(Player* self, float deltaTime) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void PlayerJump_Enter(Player* self) {
|
void PlayerJump_Enter(Player* self) {
|
||||||
self->currentAnimation = self->jump;
|
if(self->jumpInput) {
|
||||||
self->verticalVelocity = 2.f;
|
self->currentAnimation = self->jump;
|
||||||
|
self->verticalVelocity = 2.f;
|
||||||
|
}
|
||||||
animation_sprite_play_from(self->currentAnimation, 0.f);
|
animation_sprite_play_from(self->currentAnimation, 0.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
const State* PlayerJump_Update(Player* self, float deltaTime) {
|
const State* PlayerJump_Update(Player* self, float deltaTime) {
|
||||||
self->verticalVelocity += .3f * deltaTime;
|
self->verticalVelocity -= 3.f * deltaTime;
|
||||||
if(self->verticalVelocity > 0.f)
|
if(self->height == 0.f) {
|
||||||
return PlayerFall();
|
self->verticalVelocity = 0.f;
|
||||||
|
return PlayerIdle();
|
||||||
|
}
|
||||||
|
if(self->attackInput == 2)
|
||||||
|
return PlayerAirHeavy();
|
||||||
return PlayerJump();
|
return PlayerJump();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerFall_Enter(Player* self) {
|
void PlayerAirHeavy_Enter(Player* self) {
|
||||||
self->currentAnimation = self->jump;
|
self->currentAnimation = self->air_heavy;
|
||||||
|
animation_sprite_play_from(self->currentAnimation, 0.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
const State* PlayerFall_Update(Player* self, float deltaTime) {
|
const State* PlayerAirHeavy_Update(Player* self, float deltaTime) {
|
||||||
self->verticalVelocity -= 3.f * deltaTime;
|
const static DamageEventData damage = {
|
||||||
if(self->height == 0.f)
|
.damageAmount = 6,
|
||||||
return PlayerIdle();
|
.knockdown = 1,
|
||||||
return PlayerFall();
|
.stun = 0.5f,
|
||||||
|
.knockback = 0.15f
|
||||||
|
};
|
||||||
|
const float ntime = animation_sprite_get_time_normalized(self->currentAnimation);
|
||||||
|
if(ntime > 0.25f && self->animationTriggers == 0) {
|
||||||
|
PlayerHurtbox(self, damage, MakeVector(0.1f, 0.06f), MakeVector(0.3f, -0.4f));
|
||||||
|
++self->animationTriggers;
|
||||||
|
}
|
||||||
|
const State* result = PlayerJump_Update(self, deltaTime);
|
||||||
|
return result == PlayerJump() ? PlayerAirHeavy() : result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
|
|
||||||
typedef struct Player Player;
|
typedef struct Player Player;
|
||||||
|
|
||||||
void PlayerAnimationExit(Player* self);
|
extern void PlayerAnimationExit(Player* self);
|
||||||
|
|
||||||
void PlayerIdleEnter(Player* self);
|
extern void PlayerIdleEnter(Player* self);
|
||||||
const State* PlayerIdleUpdate(Player* self, float deltaTime);
|
extern const State* PlayerIdleUpdate(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerIdle, Player,
|
DefineState(PlayerIdle, Player,
|
||||||
PlayerIdleEnter,
|
PlayerIdleEnter,
|
||||||
|
@ -16,8 +16,8 @@ DefineState(PlayerIdle, Player,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
void PlayerWalk_Enter(Player* self);
|
extern void PlayerWalk_Enter(Player* self);
|
||||||
const State* PlayerWalk_Update(Player* self, float deltaTime);
|
extern const State* PlayerWalk_Update(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerWalk, Player,
|
DefineState(PlayerWalk, Player,
|
||||||
PlayerWalk_Enter,
|
PlayerWalk_Enter,
|
||||||
|
@ -25,10 +25,10 @@ DefineState(PlayerWalk, Player,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
void PlayerAttackEnter(Player* self);
|
extern void PlayerAttackEnter(Player* self);
|
||||||
|
|
||||||
void PlayerJabA_Enter(Player* self);
|
extern void PlayerJabA_Enter(Player* self);
|
||||||
const State* PlayerJabA_Update(Player* self, float deltaTime);
|
extern const State* PlayerJabA_Update(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerJabA, Player,
|
DefineState(PlayerJabA, Player,
|
||||||
PlayerJabA_Enter,
|
PlayerJabA_Enter,
|
||||||
|
@ -36,8 +36,8 @@ DefineState(PlayerJabA, Player,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
void PlayerJabB_Enter(Player* self);
|
extern void PlayerJabB_Enter(Player* self);
|
||||||
const State* PlayerJabB_Update(Player* self, float deltaTime);
|
extern const State* PlayerJabB_Update(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerJabB, Player,
|
DefineState(PlayerJabB, Player,
|
||||||
PlayerJabB_Enter,
|
PlayerJabB_Enter,
|
||||||
|
@ -45,8 +45,8 @@ DefineState(PlayerJabB, Player,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
void PlayerKickA_Enter(Player* self);
|
extern void PlayerKickA_Enter(Player* self);
|
||||||
const State* PlayerKickA_Update(Player* self, float deltaTime);
|
extern const State* PlayerKickA_Update(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerKickA, Player,
|
DefineState(PlayerKickA, Player,
|
||||||
PlayerKickA_Enter,
|
PlayerKickA_Enter,
|
||||||
|
@ -54,8 +54,8 @@ DefineState(PlayerKickA, Player,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
void PlayerJump_Enter(Player *self);
|
extern void PlayerJump_Enter(Player *self);
|
||||||
const State* PlayerJump_Update(Player* self, float deltaTime);
|
extern const State* PlayerJump_Update(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerJump, Player,
|
DefineState(PlayerJump, Player,
|
||||||
PlayerJump_Enter,
|
PlayerJump_Enter,
|
||||||
|
@ -63,12 +63,12 @@ DefineState(PlayerJump, Player,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
void PlayerFall_Enter(Player* self);
|
extern void PlayerAirHeavy_Enter(Player* self);
|
||||||
const State* PlayerFall_Update(Player* self, float deltaTime);
|
extern const State* PlayerAirHeavy_Update(Player* self, float deltaTime);
|
||||||
|
|
||||||
DefineState(PlayerFall, Player,
|
DefineState(PlayerAirHeavy, Player,
|
||||||
PlayerFall_Enter,
|
PlayerAirHeavy_Enter,
|
||||||
PlayerFall_Update,
|
PlayerAirHeavy_Update,
|
||||||
PlayerAnimationExit
|
PlayerAnimationExit
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue