Skip to content
Snippets Groups Projects
  1. Jan 26, 2016
  2. Jan 23, 2016
  3. Jan 17, 2016
  4. Jan 10, 2016
  5. Jan 07, 2016
  6. Jan 04, 2016
  7. Jan 03, 2016
  8. Jan 02, 2016
  9. Jan 01, 2016
  10. Dec 24, 2015
  11. Dec 21, 2015
  12. Dec 14, 2015
  13. Dec 10, 2015
  14. Dec 01, 2015
  15. Nov 24, 2015
  16. Oct 20, 2015
  17. Oct 19, 2015
    • DarkGod's avatar
      fix · 8d1572bd
      DarkGod authored
      8d1572bd
  18. Oct 10, 2015
    • Samuel Wegner's avatar
      Set can_see_cache to weak table · d96e30da
      Samuel Wegner authored
      Previously, if the "can_see_cache" property is not initialized when
      Actor.canSee() is called, it will be set to a strong table. This seems
      bad because this table can hold references to other actors and possibly
      prevent garbage collection. Actor.resetCanSeeCache() sets
      "can_see_cache" to a weak table, so I think the same should be done for
      initializing the property in Actor.canSee().
      
      Now, Actor.canSee() will initialize "can_see_cache" with a weak table
      if it doesn't already exist.
      
      I stumbled across this while investigating the Warden's Call memory
      leak and found references to the clones in game.player.can_see_cache.
      Unfortunately, this change doesn't seem to fix that problem.
      d96e30da
  19. Oct 09, 2015
  20. Oct 04, 2015
  21. Sep 30, 2015
  22. Sep 29, 2015
    • Hachem_Muche's avatar
      Reworked interface Archery to properly handle multiple missile launchers. · caacb202
      Hachem_Muche authored
      This can now handle mainhand/offhand/psionic focus simultaneously. (So, a gunslinger/mindslayer randboss can theoretically triple shoot.)
      Includes updates to hasArcheryWeapon(type, quickset), archeryAcquireTargets(tg, params), archery_projectile(tx, ty, tg, self, tmp) and archeryShoot(targets, talent, tg, params).
      These are still compatible with existing talents but some of the new orcs talents need tweaking (separate MR forthcoming).
      Double weapons are supported for both archery and melee combat.
      
      Weapon resource costs are standardized with a new general function Actor:useResources(costs, check).
      This is used to check for a weapon.combat.use_resources list of resources to be deducted to perform the attack. (checks all regularly defined resources, not paradox).  This can be easily adapted to other actions (resources to use (or regen) with movement, or to use an object, for example.
      Resource costs to attack are correctly supported for each attack performed: Archery (shooters and ammo, per shot, including bomardment), melee weapons (including shields), and unarmed combat.
      Insufficient resources causes ranged attack(s) to be canceled (message to player) and melee attacks to attempt an unarmed attack or cancel the attack completely (if the unarmed attack also needs unavailable resources).
      
      Archery will use the correct archery training talents (based on the shooter), to determine combat damage.
      Mixed shooter/ammo combos are now fully supported:
      Each shot will have the correct speed and range for its shooter/ammo combination, and, by default, archeryAcquireTargets will not assign shots for shooters that cannot reach the target.  (i.e. range 10 steamgun + range 6 sling, with swift ammo will be properly resolved to have different travel speeds and maximum ranges, and only the steamgun will fire at a range 8 target.)
      The archery_range(t, type) function returns the maximum range of eligible weapons instead of the minimum. and archeryAcquireTargets will cancel if the target is out of range of all shooters.
      
      Archery targeting for the player with mixed range shooters now highlights the ranges (blue/yellow/red for all/some/none within range) to warn the player if some of the shooters are out of range.
      All weapons can be forced to fire by holding ctrl while targeting. (ctrl_SPACE, ctrl_RETURN, and ctrl_KP_ENTER bound to accept in game targeting.)
      Archery messages for the player are updated to be more clear and distinct.  ("Your steel steamgun CANNOT SHOOT (Resource: Steam)").
      Combat log messages for archery damage are more clear "player's SHOOT misses target." rather than "player misses target."
      
      Added a new hook to archeryShoot to apply transient actor effects to the projectiles at the point of creation.
      Added more code comments to make this relatively opaque part to the code more comprehensible for addon-developers.
      
      Beyond the flesh now works with all archery weapons, which will attempt to fire at the appropriate target when an archery talent is used (not autonomously).  This is an interesting new ranged option for Mindslayers, though not terribly effective without additional archery skills.
      A new attribute "psi_focus_combat" enables combat with the psionic focus separate from "use_psi_combat" which affects all combat stats.
      
      This is followed through for quick sets, including Warden switching checks.
      
      Updated the character sheet (shows accurate damage and more complete info, including weapon type by skill and ammo range and speed).
      Actor tooltips now show each weapon equipped (short name), instead of a combined list of keywords.
      (i.e. 	Main: <weapon icon> iron, ego
      	Off : <shield icon> thick coral plate		)
      
      Projectile tooltips now display speed and direction, and more than one will show up within a tile.
      Object descriptions and tooltips have been updated to show resource costs.
      caacb202
  23. Sep 25, 2015
  24. Sep 23, 2015
  25. Sep 22, 2015
  26. Sep 21, 2015
  27. Sep 20, 2015
  28. Sep 18, 2015
  29. Sep 16, 2015
    • Samuel Wegner's avatar
      Allow Arcane Shield to overwrite existing shield · 06803119
      Samuel Wegner authored
      -Will replace an existing damage shield entirely if both the shield
      value and duration would be greater on the new shield.
      -Will update the current shield value (but not max value) of an
      existing shield if the new value would be greater. We keep the old
      max value because the player may want to buff their shield with Aegis.
      -If we updated an existing shield, we will refresh the duration to
      3 turns unless the duration has already been refresh 20 times. This
      checks the same property used by Weapon of Light and Bathe in Light,
      which is why I allowed refreshing 20 times instead of a smaller amount.
      -It's unlikely that an existing shield would be refreshed many times by
      Arcane Shield, but I implemented this limitation to avoid refreshing
      the same shield indefinitely. T think Aegis is the only talent that
      benefits from refreshing an existing shield versus creating a new one,
      so there shouldn't be any real abuse potential here.
      -Note that this will never update or replace an existing shield if the
      current duration is greater than Arcane Shield's default duration. We
      can't know whether the player values shield value or duration more, and
      updating the shield value of an existing damage shield with greater
      duration would introduce power creep.
      06803119
  30. Sep 10, 2015
  31. Sep 09, 2015
    • Hachem_Muche's avatar
      One more time.... · a991d530
      Hachem_Muche authored
      This works exactly the same as the old code, except than any sustain with .remove_on_zero set can be cancelled regardless of resource properties.
      Only stamina and mana based sustains will be canceled by default.
      a991d530
  32. Sep 08, 2015
  33. Sep 07, 2015
    • Hachem_Muche's avatar
      Moved Resource definitions to data/resources.lua · 78e19b7b
      Hachem_Muche authored
      Added support for depleted resources canceling sustained talents (resources_def.depleted_unsustain and talents_def.remove_on_zero flags).
      Removed obsolete code from Actor:learnPool, and test resource/talent/pool
      78e19b7b
    • Hachem_Muche's avatar
      Clean up obsolete/debugging code · 5d7e6ac4
      Hachem_Muche authored
      5d7e6ac4
    • Hachem_Muche's avatar
      Standardizes Resource definitions. · 15454174
      Hachem_Muche authored
      This revises the way Actor resources are handled to allow them to be defined in one place (at tome.load), simplifying their definition, eliminating the need for most hooks to handle them, and making them easier for the AI to manage properly.
      
      Engine:
      ActorResource:defineResource can now take a parameters field that merges additional information into the definition.
      An extra check is added to prevent redefining an existing resource.
      Defining a new resource now defines the string fields getFunction, getMinFunction, getMaxFunction, incFunction, incMinFunction, incMaxFunction to allow indirect reverence to the correct resource functions from the definition.
      Added support for an invert_values flag (resource increases when used), and sustain_prop and drain_prop fields for sustained talents.
      This allows the module code to loop through all the defined fields/functions when checking for the corresponding properties in actor and talent tables.
      
      ToME:
      Hard coded resource references have been replaced with a loop checking all defined sustains for:
      Actor:act (canceling sustains)
      Actor:resetToFull (will replenish all defined resources by default)
      Actor:checkPool, Actor:learnPool, Actor:learnTalent, Actor:unlearnTalent, Actor:preUseTalent, Actor:postUseTalent, Actor:getTalentFullDescription
      This eliminates the need to use the hooks/callbacks in these functions for (almost) all defined resources.
      Added comments in tome:load explain for addon developers how to create resource definitions to take advantage of these changes.
      
      Resource definitions can set .hidden_resource = true to prevent display in various player interfaces.
      Resource definitions have a .color ("#COLOR#") field set to display resources with a consistent color in various places.
      
      Updated the Classic and Minimalist uisets and the CharacterSheet to look through the list of all defined resources for resource values to display.
      Classic uiset:
      	Fixed some formatting problems that were causing some resource values not to display properly.
      	Added some variables to make resizing the player panel easier in the future.
      	Added the log_lines parameter to the Game Options menu.
      
      Minimalist uiset:
      	Reformatted resource graphics/text to be more clear and to avoid unreadable text.
      	The ui will go through a series of default checks to search for appropriate graphics for each resource.
      
      The general tab of the CharacterSheet has been adjusted to provide room for more resources and will now display their regeneration values.
      
      Added/updated tooltips for several ui elements.
      15454174
Loading