summaryrefslogtreecommitdiff
path: root/dyl.lua
diff options
context:
space:
mode:
Diffstat (limited to 'dyl.lua')
-rw-r--r--dyl.lua85
1 files changed, 73 insertions, 12 deletions
diff --git a/dyl.lua b/dyl.lua
index f7dce11..6c2a012 100644
--- a/dyl.lua
+++ b/dyl.lua
@@ -1,18 +1,77 @@
+bow = entity()
+function bow:transition_state()
+end
+bow
+ :b_type(Entities.Bow)
+ :b_position(vec2(0, 0))
+ :b_sprite_position(vec2(0, 0))
+ :b_line_of_sight(vec2(1, 0))
+ :b_render_order(1)
+ :b_collidable()
+ :b_add_state(States.Equipped, {
+ animation={
+ pos_y = { sequence = { 96 }, dt = 1, reflect = vec2(false, true) },
+ neg_y = { sequence = { 96 }, dt = 1 },
+ pos_x = { sequence = { 80 }, dt = 1 },
+ neg_x = { sequence = { 80 }, dt = 1, reflect = vec2(true, false) }
+ }
+ })
+ :b_add_state(States.Drawn, {
+ animation={
+ pos_y = { sequence = { 81 }, dt = 1, reflect = vec2(false, true) },
+ neg_y = { sequence = { 81 }, dt = 1 },
+ pos_x = { sequence = { 81 }, dt = 1 },
+ neg_x = { sequence = { 81 }, dt = 1, reflect = vec2(true, false) }
+ }
+ })
+ :b_add_state(States.Drawing, {
+ animation = bow.states[States.Equipped]
+ })
+ :b_state(States.Equipped)
+ :build()
+
sword = entity()
+_slashing_timer_ms = 500
+function sword:transition_state()
+ if(btn(5)) then self:transition_to(States.Slashing)
+ elseif self.state == States.Slashing and self.state_stopwatch > _slashing_timer_ms then self:transition_to(States.Equipped) end
+end
+sword
:b_type(Entities.Sword)
+ :b_line_of_sight(vec2(1, 0))
+ :b_position(vec2(0, 0))
+ :b_sprite_position(vec2(0, 0))
:b_render_order(1)
:b_collidable()
- :b_add_state("equipped", {
+ :b_add_state(States.Equipped, {
animation={
pos_y = { sequence = { 82 }, dt = 1, reflect = vec2(false, true) },
- neg_y = { sequence = { 82 }, dt = 1 },
+ neg_y = { sequence = { 82 }, dt = 1, reflect = vec2(true, false)},
pos_x = { sequence = { 82 }, dt = 1 },
neg_x = { sequence = { 82 }, dt = 1, reflect = vec2(true, false) }
}
})
+ :b_add_state(States.Slashing, {
+ animation={
+ pos_y = { sequence = { 82, 82+16 }, dt = 1, reflect = vec2(false, true) },
+ neg_y = { sequence = { 82, 82+16 }, dt = 1, reflect = vec2(true, false)},
+ pos_x = { sequence = { 82, 82+16 }, dt = 1 },
+ neg_x = { sequence = { 82, 82+16 }, dt = 1, reflect = vec2(true, false) }
+ }
+ })
+ :b_state(States.Equipped)
+ :build()
player = entity()
- :b_type(Entities.Player)
+function player:transition_state()
+ if (self.velocity.x == 0 and self.velocity.y == 0) then
+ self:transition_to(States.Idle)
+ else
+ self:transition_to(States.Walk)
+ end
+end
+player:b_type(Entities.Player)
+ :b_line_of_sight(vec2(1, 0))
:b_render_order(0)
:b_collidable()
:b_position(vec2(30,30))
@@ -27,14 +86,15 @@ player = entity()
})
:b_add_state(States.Walk, {
animation = {
- pos_x = { seq = { 2, 0 }, dt = 0.20 },
- neg_x = { seq = { 2, 0 }, dt = 0.20, reflect = vec2(true, false) },
- pos_y = { seq = { 4, 5 }, dt = 0.20 },
- neg_y = { seq = { 7, 8 }, dt = 0.20 }
- }
+ pos_x = { sequence = { 2, 0 }, dt = 0.20 },
+ neg_x = { sequence = { 2, 0 }, dt = 0.20, reflect = vec2(true, false) },
+ pos_y = { sequence = { 4, 5 }, dt = 0.20 },
+ neg_y = { sequence = { 7, 8 }, dt = 0.20 }
+ }
})
:b_state("idle")
:b_equipped({ sword })
+ :build()
_walk_speed = 35 -- powerup increase?
function handle_input()
@@ -59,11 +119,12 @@ function _update60()
step_dt = step_t - old_step
handle_input()
- foreach(qsort(World, function(a, b) return a.equipped != nil end), function (e) e:update(step_dt) end)
+ qsort(World, function(a, b) return a.equipped != nil end)
+ foreach(World, function (e) e:update(step_dt) end)
+
run_collisions()
end
function _draw()
- -- foreach(qsort(World, function (a, b) return a.render_order < b.render_order end), function (e) e:render() end)
- foreach(World, function (e) e:render() end)
-end \ No newline at end of file
+ foreach(qsort(World, function(a, b) return a.render_order < b.render_order end), function (e) e:render() end)
+end