diff options
author | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-03-02 23:17:07 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-03-03 21:24:45 +0100 |
commit | 84c87cc99be29a694f0ffe83ab7a06ae433bb0cd (patch) | |
tree | 9180b67970e62707ee0fe2fee19cbe2e0b829122 /example/scripts/monster/testmonster.lua | |
parent | f872528771f0b71741fb36ddf70f2ae23f54c1e3 (diff) | |
download | manaserv-84c87cc99be29a694f0ffe83ab7a06ae433bb0cd.tar.gz manaserv-84c87cc99be29a694f0ffe83ab7a06ae433bb0cd.tar.bz2 manaserv-84c87cc99be29a694f0ffe83ab7a06ae433bb0cd.tar.xz manaserv-84c87cc99be29a694f0ffe83ab7a06ae433bb0cd.zip |
Use callbacks for items, monsters and status effects
Previously, global function names were defined in the respective XML
definitions of items, monsters and status effects. This was reasonable when
they all had the same state, but now they're sharing the single global
Lua state.
Now the Lua API provides access to the ItemClass, MonsterClass and
StatusEffect instances, on which callbacks for both standard and custom
events can be explicitly set.
Reviewed-by: Erik Schilling
Diffstat (limited to 'example/scripts/monster/testmonster.lua')
-rw-r--r-- | example/scripts/monster/testmonster.lua | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/example/scripts/monster/testmonster.lua b/example/scripts/monster/testmonster.lua index 2701d24e..63b29179 100644 --- a/example/scripts/monster/testmonster.lua +++ b/example/scripts/monster/testmonster.lua @@ -7,14 +7,14 @@ --]] -function update_monster(mob) +local function update(mob) local r = math.random(0, 200); if r == 0 then mana.being_say(mob, "Roar! I am a boss") end end -function on_maggot_strike(mob, victim, hit) +local function strike(mob, victim, hit) if hit > 0 then mana.being_say(mob, "Take this! "..hit.." damage!") mana.being_say(victim, "Oh Noez!") @@ -23,3 +23,7 @@ function on_maggot_strike(mob, victim, hit) mana.being_say(victim, "Whew...") end end + +local maggot = mana.get_monster_class("maggot") +maggot:on_update(update) +maggot:on("strike", strike) |