ゲーム開発とスクリプトその3

http://d.hatena.ne.jp/a_little_bit/20050519
便乗させていただきまつ。

こういう、アイテムデータと振る舞いをセットにして扱いたい場合、
Luaだとこういう風に書けると思う。

Items = { "Herb", "AbaTea"......}

-- ヘルス回復用の薬草
Herb={
  name = "薬草",
  price = 10,
  action=function(obj)
    obj:heal_hp(25)  -- ヘルスを25回復
  end
}

-- トラップアイテム
AbaTea={
  name="お茶???",
  price=0,
  action=function(obj)
    message("お茶を飲んだ")
    message("なんと!お茶はアバ茶だった!")
    message( get_hero_name(), "は氏んだ")
    game_over()
  end
}

単純に「使う」で使用するだけのアイテムならばこんな感じでも問題ないだろうし、特殊な効果を持つアイテムの実装も簡単になりそう。