aboutsummaryrefslogtreecommitdiff
path: root/src/a_tumble.moon
diff options
context:
space:
mode:
Diffstat (limited to 'src/a_tumble.moon')
-rw-r--r--src/a_tumble.moon51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/a_tumble.moon b/src/a_tumble.moon
new file mode 100644
index 0000000..d3c38bd
--- /dev/null
+++ b/src/a_tumble.moon
@@ -0,0 +1,51 @@
+reg = require "ability_reg"
+ui = require "ui"
+import Ability from reg
+
+mod = ...
+print("In tubmle, reg is",reg)
+
+class Tumble extends Ability
+ @text = "Tumble"
+ @description = "Tumble around for those nearby"
+ @hits_icon = {0,0,0,0,1,0,0,0}
+ @sprite = "data/tumble.png"
+ @speed = 5
+ @distance = 1
+ new: (...)=>
+ super("Tumble",{})
+ @requirements = {
+ {"status", "active"},
+ }
+ target: (world, party, char) =>
+ room = world.player_party.room
+ my_pos = char.location
+ --search outward for a target
+ char_tbl1, char_tbl2 = nil, nil
+ for distance = 1, 8
+ char_tbl1 = room\at_location(my_pos + distance)
+ char_tbl2 = room\at_location(my_pos - distance)
+ if (char_tbl1 and #char_tbl1 > 0) or (char_tbl2 and #char_tbl2 > 0)
+ break
+
+ use: (world, party, char)->
+ print("Doing tumble")
+ chars_at_loc = world.room.data.locations[5]
+ print("chars at loc:",chars_at_loc)
+ if world.server
+ a_chars_at_loc = {}
+ for _,v in ipairs(chars_at_loc)
+ table.insert(a_chars_at_loc,world.enemy_party\member(v.uname))
+ chars_at_loc = a_chars_at_loc
+ hp_minus = () ->
+ for _, char in pairs(chars_at_loc)
+ char\set_field("hp",char.data.hp - 3)
+ if world.server
+ hp_minus!
+ if world.client
+ ui = ui or require "ui"
+ ui.tween_hit(char,1, hp_minus)
+
+mod.Tumble = Tumble
+
+mod