diff options
Diffstat (limited to 'dyl.lua')
| -rw-r--r-- | dyl.lua | 85 |
1 files changed, 73 insertions, 12 deletions
@@ -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 |
