Skip to content
Snippets Groups Projects
  1. Oct 10, 2015
  2. Oct 09, 2015
  3. Oct 05, 2015
  4. Sep 30, 2015
  5. Sep 29, 2015
    • Hachem_Muche's avatar
      Remove Debugging code. · 865d1042
      Hachem_Muche authored
      865d1042
    • 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
  6. Sep 09, 2015
  7. 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
      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
  8. Jul 31, 2015
  9. Jul 06, 2015
    • Hachem_Muche's avatar
      Command Staff talent available to NPCs, which will spawn with the most... · 7629a622
      Hachem_Muche authored
      Command Staff talent available to NPCs, which will spawn with the most appropriate aspect selected.  (Significant buff to staff wielders)
      Updated artifact staves to use the new flavor system.
      
      tactical AI will take duration of detrimental effects into consideration when evaluating cures.
      
      clean up debugging code
      7629a622
  10. Jul 04, 2015
  11. Jul 03, 2015
    • Hachem_Muche's avatar
      Updated remaining World Artifacts, Quest Artifacts, and Special Artifacts to use the new interface. · 4285b05f
      Hachem_Muche authored
      Artifact changes:
      Terrasca (which works the same) uses a new "absolute" resistance that is updated as needed by callbacks.
      Added new callbacks: callbackOnTemporaryEffectRemove and callbackOnTemporaryEffectAdd to supplement callbackOnTemporaryEffect
      Buffed Exiler to have a chance to affect non-summons.
      Modified Spellhunt remnants: They gain a maximum of 1 material level per artifact crushed, but can spawn at any level in the game (adjusting
      
      their material level to the zone).  Made more rare to compensate.
      Cuirass of the Dark Lord slightly buffed bleed damage based on Physical Power.
      Awakened staff of absorption, slightly buffed to bypass most defenses.
      
      Object use tactical tables can be an explicit function in the object definition.  This makes complex AI tactical tables simpler to code and
      
      more efficient to run.
      Objects that have an instant talent as their activatable ability use no energy by default.
      
      NPCs:
      
      Will try to equip their drops if possible (cannot replace normal equipment unless the replacement is the same type and is unique).
      Updated GameState:checkPowers with an "antimagic_only" mode that is used for test actor-equipment compatibility.
      Updated some boss definitions to be able to equip their unique drops.
      
      Moved after object use checks for breakStepUp, breakStealth, breakLightningSpeed, breakReloading, and breakSpacetimeTuning() from mod.Player to
      
      mod.Object.
      
      Added the Staff Mastery talent to many casters (including bosses) that primarily equip staves.
      
      Adjusted talents for some bosses to compensate for the abilities of the equipment they can use.
      
      AI:
      Updated the tactical tables of several talents (that were used by various activatable items).
      Updated tactical and talented AI's to allow NPC's to act again immediately after using an instant talent.
      flee_dmap_keep_los AI will allow the ai to run farther if it has sufficient moves.
      The tactical AI writes the selected tactic to the ai_state table as a parameter for talent.action functions.  This fixes a bug where NPCs that
      
      were activating tageted abilities to flee were moving closer to their target instead.  So an NPC using phase door, for example, will try to
      
      teleport closer when the "closein" tactic is active and farther from its target when the "escape" tactic is active.
      4285b05f
  12. Apr 21, 2015
    • Hachem_Muche's avatar
      Use display name for talent confirmation. · 735a1e74
      Hachem_Muche authored
      Fix bug in confirmation dialog.
      Added cycle_time function (pseudo-cooldown) for auto-use check.
      no_npc_use and allow_npc_use fields in object use_power/Use_talent definitions can be a function(obj, who).
      Updated charm talent resolver.
      735a1e74
  13. Apr 05, 2015
    • Hachem_Muche's avatar
      Clean up obsolete/debugging code. · e319e7c7
      Hachem_Muche authored
      e319e7c7
    • Hachem_Muche's avatar
      Allows NPC's to use activatable objects by giving them special talents that... · 687f983e
      Hachem_Muche authored
      Allows NPC's to use activatable objects by giving them special talents that serve as an interface for the AI.
      Adds mod.class.interface.ActorObjectUse class (in mod.class.Actor)
      
      When a usable object is added to an Actor inventory, the Actor may get a talent that can be activated to use the power.
      This talent is similar to normal talents, but translates the object definition as needed for NPC use.
      objects with a .use_power (most uniquely defined powers) are usable unless the .no_npc_use flag is set.
      objects with a .use_simple field (mostly consumables) are not usable unless the .allow_npc_use flag is set or the .tactical field is defined.
      objects with a .use_talent field (many charms and artifacts) are usable so long as the talent definition does not have the .no_npc_use flag set.
      Energy use matches the object (based on standard action speed)
      the new talent .on_pre_use function handles checking for object cooldowns, inventory access and a t.on_pre_use function (for talent-based powers)
      
      Important fields defined within object.use_simple or object.use_power:
      	.tactical = tactics table for interpretation by the tactical ai, subfields may be functions(who, t, aitarget) where who = object user, t = talent used (defined here), aitarget = who's (actor) target
      	This should be defined for NPC's to use the object intelligently
      	.on_pre_use = function(obj, who) that must return true for the object to be useable
      	.range = range of the ability (defaults to 1, may be a function(self, t))
       	.radius = radius of ability (defaults to 0, may be a function(self, t))
      	.target = targeting parameters (table, may be a function(self, t)), interpreted by engine.Target:getType
      	.requires_target, if true, don't use the object if the target is beyond radius + range
      
      Updated charms(amulet, belt, boots, cloak, light-armor, mindstars, ranged, staves, torques, totems, wands, weapons and some fixed arts) with the required fields to use the items.
      
      engine:
      
      updated ActorInventory functions to pass inventory and slot information as appropriate.
      
      tactical AI
      
      Updated the tactical AI and the talented_ai_tactic resolver to accept a function(self, t) for a talent tactical table.
      
      Adds a charm resolver to randombosses and several NPC's (with tactical AI)
      
      Equipping a useable item resets it's charges when it's equipped by any party member.
      Updated the UseTalents dialog to use getTalentDisplayName for its list
      687f983e
  14. Apr 01, 2015
  15. Mar 10, 2015
  16. Mar 04, 2015
  17. Mar 02, 2015
  18. Feb 26, 2015
  19. Feb 11, 2015
  20. Feb 10, 2015
  21. Feb 08, 2015
  22. Feb 07, 2015
  23. Feb 03, 2015
  24. Feb 02, 2015
  25. Feb 01, 2015
  26. Jan 31, 2015
    • Alex Ksandra's avatar
      Fixed replace abuse & equip inconsistency. · 654aafec
      Alex Ksandra authored
      Dragging onto a doll, as opposed to clicking "wield/wear" from an item
      menu, caused alchemist gems to not stack because it tried to unequip
      stuff first. More than that, you could unequip stuff and not be able to
      equip stuff, meaning that you just have lost a turn for nothing.
      Now both methods let doWear handle replacing.
      Also, fixed repace-abuse. (Hopefully.) Now the game checks if you can
      still wear the object after removing initial one in an attempt to replace.
      654aafec
  27. Jan 30, 2015
  28. Jan 28, 2015
  29. Jan 17, 2015
  30. Jan 14, 2015
    • Grayswandir's avatar
      Makes AI see through stealth better. · ed8b4cfd
      Grayswandir authored
      If AI gains LoS for the first time but fails to spot you, they treat it
      as if they haven't seen you for 10 turns, instead of as if they had
      spotted you that turn.
      ed8b4cfd
  31. Jan 12, 2015
Loading