aboutsummaryrefslogtreecommitdiff
path: root/src/a_physique.moon
diff options
context:
space:
mode:
Diffstat (limited to 'src/a_physique.moon')
-rw-r--r--src/a_physique.moon48
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