- Oct 10, 2015
-
-
Alex Ksandra authored
-
- Oct 09, 2015
-
-
DarkGod authored
-
- Oct 05, 2015
-
-
Alex Ksandra authored
-
- Sep 30, 2015
-
-
Hachem_Muche authored
-
- Sep 29, 2015
-
-
Hachem_Muche authored
-
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.
-
- Sep 09, 2015
-
-
Alex Ksandra authored
Spotting a hostile after moving should not pause the game when we have no energy, for no good reason!
-
- Sep 07, 2015
-
-
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
-
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.
-
- Jul 31, 2015
-
-
DarkGod authored
Temporary effects on_gain/on_loose definitions can simply have "true" as the second return to make a flyer of the form +/- "effect name" Added a combat_generic_power
-
- Jul 06, 2015
-
-
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
-
- Jul 04, 2015
-
-
Hachem_Muche authored
Updated ai for Cuirass of the Dark Lord.
-
- Jul 03, 2015
-
-
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.
-
- Apr 21, 2015
-
-
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.
-
- Apr 05, 2015
-
-
Hachem_Muche authored
-
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
-
- Apr 01, 2015
-
-
Nick Moran authored
-
- Mar 10, 2015
-
-
Hachem_Muche authored
Adds support for a data.init(data, b) function for createRandomBoss and passes the actor to the class filter for applyRandomClass function. This allows other parameters and classes to be adjusted based on the type of npc the boss is based on. Fixed a typo in the parameter list for ActorInventory:pickupFloor.
-
- Mar 04, 2015
-
-
DarkGod authored
-
- Mar 02, 2015
-
-
DarkGod authored
New gameplay option to auto-validate the default target; thus requiring only one keypress to fire a talent
-
- Feb 26, 2015
-
-
Alex Ksandra authored
-
- Feb 11, 2015
-
-
DarkGod authored
-
- Feb 10, 2015
-
-
Alex Ksandra authored
-
Alex Ksandra authored
-
Alex Ksandra authored
-
Alex Ksandra authored
-
Alex Ksandra authored
-
- Feb 08, 2015
-
-
Alex Ksandra authored
Symmetry screwed with equipping two rings consequentially in no particular slot, so I changed to to be less symmetric (as it used to be).
-
- Feb 07, 2015
-
-
Hachem_Muche authored
NPC's will tell allies about enemies at slightly greater range (affected by game difficulty) and guesses for the position of unseen hostiles will be a bit better.
-
- Feb 03, 2015
-
-
DarkGod authored
-
- Feb 02, 2015
-
-
Alex Ksandra authored
-
- Feb 01, 2015
-
-
Alex Ksandra authored
Now actors can try to wear an object to the specific inventory.
-
- Jan 31, 2015
-
-
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.
-
- Jan 30, 2015
-
-
Alex Ksandra authored
-
- Jan 28, 2015
-
-
DarkGod authored
Reduced the volume of door creaking
-
- Jan 17, 2015
-
-
DarkGod authored
-
- Jan 14, 2015
-
-
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.
-
- Jan 12, 2015
-
-
DarkGod authored
-
Alex Ksandra authored
-
Alex Ksandra authored
-