From 8c8e4808ad5ec7e8a6585c6b69b8d45f5277f51c Mon Sep 17 00:00:00 2001 From: lustlion Date: Fri, 11 Mar 2022 07:55:55 +0100 Subject: [PATCH] update cursed book --- code/entities/cursed_book.lua | 24 ++++++++++++++---------- data/animations.lua | 10 +++++----- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/code/entities/cursed_book.lua b/code/entities/cursed_book.lua index a949260..245e755 100644 --- a/code/entities/cursed_book.lua +++ b/code/entities/cursed_book.lua @@ -22,13 +22,14 @@ function CursedBook:new(x,y) -- animations o.body = Animation:new(animation.cursed_book.spawn) + o.body.speed = 0 o.sprite_tint = {0.7,0.7,0.7} o:centerOffset(o.body) o:createBox(o.body) -- light o.light_range = 500 - o.light = Light:new(o.pos.x,o.pos.y,o.light_range,2,hex2rgb("#fe00d1")) + --o.light = Light:new(o.pos.x,o.pos.y,o.light_range,2,hex2rgb("#fe00d1")) o:id() @@ -38,8 +39,10 @@ function CursedBook:new(x,y) end function CursedBook:doLogic() + print(self.status) self.target.x = main_player.pos.x - main_player.target_offset.x self.target.y = main_player.pos.y - main_player.target_offset.y + local distance_x = self.target.x - self.pos.x local distance_y = self.target.y - self.pos.y local angle = getAngleFromVector(distance_x,distance_y) @@ -49,7 +52,7 @@ function CursedBook:doLogic() if distance < self.spawn_range then self.status = 1 end - elseif self.status == -1 then + elseif self.status == 2 then if distance < self.range then self.vel.x = 0 self.vel.y = 0 @@ -59,7 +62,7 @@ function CursedBook:doLogic() end elseif self.status == 2 then if distance < self.attack_range then - self.status = 3 + --self.status = 3 end elseif self.status == 4 then @@ -69,11 +72,12 @@ end function CursedBook:handleAnimation() if self.status == 1 then if self.body.path == "assets/entities/cursed_book/spawn" then - self.body.speed = 1/3 - local tint = 0.7 + 0.3 * (self.body.frame-1)/self.body.frames + self.body.speed = 1 + local tint = 0.7 + 0.3 * (self.body.frame-1)/#self.body.frames self.sprite_tint = {tint,tint,tint} - if self.body.frame == self.body.frames then + if self.body.frame == #self.body.frames then self.status = 2 + self.isFlying = true self.body = self.body:change(animation.cursed_book.flying) self.sprite_tint = {1,1,1} --self:getBoundingBox(self.body,2,2,-2,-2) @@ -83,9 +87,9 @@ function CursedBook:handleAnimation() elseif self.status == 3 then if self.body.path == "assets/entities/cursed_book/flying" then self.body = self.body:change(animation.cursed_book.attack_transition) - self.body.speed = 1/3 - self:centerOffset(self.body) - if self.body.frame == self.body.frames then + self.body.speed = 1 + --self:centerOffset(self.body) + if self.body.frame == #self.body.frames then self.status = 4 self.body = self.body:change(animation.cursed_book.attack_loop) self:centerOffset(self.body) @@ -115,5 +119,5 @@ function CursedBook:debug() love.graphics.circle("line", -Camera.pos.x + self.pos.x, -Camera.pos.y + self.pos.y, self.spawn_range) love.graphics.setColor(1,0,0) love.graphics.circle("line", -Camera.pos.x + self.pos.x, -Camera.pos.y + self.pos.y, self.attack_range) - Entity.Debug(self) + Entity.debug(self) end diff --git a/data/animations.lua b/data/animations.lua index 14830c4..f4bab6b 100644 --- a/data/animations.lua +++ b/data/animations.lua @@ -35,11 +35,11 @@ animation.cursed_book.flying = { animation.cursed_book.spawn = { path = "assets/entities/cursed_book/spawn", frames = { - 0, - 0, - 0, - 0, - 0 + 1/3, + 1/3, + 1/3, + 1/3, + 1/3 } }