From 1fda82559093daf36f43ad0a97ef95f0aaf6de6d Mon Sep 17 00:00:00 2001 From: Linus Probert Date: Mon, 13 Oct 2025 08:36:07 +0200 Subject: [PATCH] Adds new animation for the Trip skill --- assets/Extras/Trip.png | Bin 0 -> 4518 bytes src/skill.c | 25 +++++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 assets/Extras/Trip.png diff --git a/assets/Extras/Trip.png b/assets/Extras/Trip.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9c02d0b0b76733b92b31fc83db3900d83d011b GIT binary patch literal 4518 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 Ef(^l)rT_o{ literal 0 HcmV?d00001 diff --git a/src/skill.c b/src/skill.c index 7778c81b..c9a4becf 100644 --- a/src/skill.c +++ b/src/skill.c @@ -630,7 +630,6 @@ skill_trip(Skill *skill, SkillData *data) RoomSpace *space = &data->matrix->spaces[targetPos.x][targetPos.y]; mixer_play_effect(SWING0 + get_random(2)); - animation_run(data->player->swordAnimation); if (space->monster) { CombatResult result = stats_fight(&data->player->stats, &space->monster->stats); if (result.dmg) @@ -657,7 +656,7 @@ skill_trip(Skill *skill, SkillData *data) } static Skill * -create_trip(void) +create_trip(Camera *cam) { Texture *t = texturecache_add("Extras/Skills.png"); Sprite *s = sprite_create(); @@ -672,6 +671,25 @@ create_trip(void) skill->available = NULL; skill->use = skill_trip; skill->actionRequired = true; + skill->tooltip = tooltip_create(trip_tooltip, cam); + skill->animation = animation_create(8); + + Animation *a = skill->animation; + animation_load_texture(a, "Extras/Trip.png", cam->renderer); + animation_set_frames(a, (AnimationClip[]) { + { 0, 0, 32, 32, 20 }, + { 32, 0, 32, 32, 20 }, + { 64, 0, 32, 32, 20 }, + { 96, 0, 32, 32, 20 }, + { 128, 0, 32, 32, 20 }, + { 160, 0, 32, 32, 20 }, + { 192, 0, 32, 32, 20 }, + { 224, 0, 32, 32, 20 } + }); + a->loop = false; + a->sprite->dim = GAME_DIMENSION; + a->sprite->clip = (SDL_Rect) { 0, 0, 32, 32 }; + a->sprite->rotationPoint = (SDL_Point) { 16, 16 }; return skill; } @@ -1137,8 +1155,7 @@ skill_create(enum SkillType t, Camera *cam) skill = create_bash(cam); break; case TRIP: - skill = create_trip(); - skill->tooltip = tooltip_create(trip_tooltip, cam); + skill = create_trip(cam); break; case BACKSTAB: skill = create_backstab(cam);