diff options
Diffstat (limited to 'src/a_physique.moon')
| -rw-r--r-- | src/a_physique.moon | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/a_physique.moon b/src/a_physique.moon new file mode 100644 index 0000000..6f1b94b --- /dev/null +++ b/src/a_physique.moon @@ -0,0 +1,48 @@ +reg = require "ability_reg" +ui = require "ui" +import Ability from reg + +mod = ... + +class Physique extends Ability + @text = "Physique" + @description = "Big ol' muscles" + @hits_icon = {0,0,0,0,0,1,0,0} + @sprite = "data/strong-man.png" + @speed = 3 + @distance = 1 + new: (...)=> + super("Physique",{}) + @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)-> + chars_at_loc = world.room.data.locations[6] + 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 - 2) + if world.server + hp_minus! + if world.client + ui = ui or require "ui" + ui.tween_hit(char,2, hp_minus) + +mod.Tumble = Tumble + +mod |
