Build a framework for a maintainable combat plugin

* Uses a hierarchy of WeaponClasses -> Weapons for performing attacks,
  with WeaponClass having a set of styles and associated Attacks for
  those styles. Weapons and their classes are built with an easy to use
  and clean DSL.

* Adds a BonusContainer mixin, so that Equipment, Weapons, and
  WeaponClasses can all have their own set of bonuses which apply to the
  player.

* Allows attacks to be queued to the Mobs CombatState instance from
  external code, allowing e.g., NPCs or auto-cast to queue attacks to be
  executed.
This commit is contained in:
Gary Tierney
2016-02-29 21:24:34 +00:00
parent 7731eedf3d
commit 348e5cc8dc
21 changed files with 895 additions and 80 deletions
+20
View File
@@ -0,0 +1,20 @@
BOW_WIDGET_ID = 10
BOW_SPECIAL_BAR_ID = 10
#
# create_weapon_class :longbow, widget: BOW_WIDGET_ID do
# special_bar = BOW_SPECIAL_BAR_ID
#
#
# add_style :accurate, speed: 6, range: 7
# add_style :rapid, speed: 6, range: 7
# add_style :long_range, speed: 6, range: 9
# end
#
# create_weapon_class :shortbow, widget: BOW_WIDGET_ID do
# special_bar = BOW_SPECIAL_BAR_ID
#
# add_style :accurate, speed: 4, range: 7
# add_style :rapid, speed: 3, range: 7
# add_style :long_range, speed: 4, range: 9
# end
#