- Sep 30, 2019
-
-
Tawny Harte authored
summons get bonus spellpower instead of magic to reduce the impact of this scaling on certain summons
-
Tawny Harte authored
-
Tawny Harte authored
-
- Sep 29, 2019
-
-
Tawny Harte authored
-
Tawny Harte authored
-
Tawny Harte authored
-
- Sep 19, 2019
-
-
DarkGod authored
-
- Jun 20, 2019
-
-
Chris Davidson authored
-
- Nov 08, 2018
-
-
Chris Davidson authored
-
- Mar 21, 2018
-
-
DarkGod authored
-
- Jun 26, 2017
-
-
Hachem_Muche authored
A) Upgrading AI primitives (“infrastructure”) in the engine to make designing new and more capable AIs easier. B) Rewriting the Talented and Tactical AIs, plus adding some supporting AIs, so that NPCs in ToME using them behave more intelligently. C) Correcting and updating tactical tables and associated code for a number of (but not all) talents that are currently not being used effectively by NPCs. HIGHLIGHTS: Major rewrite of many AI definitions and functions, including new functions to make writing new AIs simpler. Completely new talented and tactical AIs (for ToME) that allow NPCs to act without contact with the player, actively manage all standard resources, and more consistently comply with their AI specifications. This includes provisions for all NPCs to avoid drowning/grid damage, better coordinate movement and talent use, and invoke other AIs. NPCs can both activate and deactivate all sustain talents intelligently (particularly for the tactical AI) with or without player contact, according to the tactical situation. The new AIs are designed to work concurrently with their existing counterparts to allow for them to be phased in. Main Game Play Effects (for NPCs using the new AIs): NPCs do not require contact with the player to act. NPCs will actively manage all standard resources, including their health. NPCs can both activate and deactivate sustained talents as appropriate. NPCs will move away from harmful (damaging, suffocating) terrain, and will do a better job at maintaining appropriate distance from the player while in combat (new tactical AI). If using a talent fails, the NPC will immediately attempt to use another (next best for the tactical AI) talent. GAME LOG DETAIL CONTROL: The amount of detail printed in the game log by most engine/ToME ai functions can be controlled by setting the variable: config.settings.log_level_ai = X Where X is a number from 0 (no extra output) to 4 (very verbose output) specifiying how much detail to output to the game log. NEW/UPDATED AI’s included: “dumb_talented” (engine) – updated to add support for t.onAIGetTarget. “improved_talented” (engine) - Simplified version of “dumb_talented” using the new talent filter system. Designed as a drop-in replacement for the dumb_talented AI using the new AI functions. “improved_talented_simple” (ToME) – designed as an overload for the dumb_talented_simple AI “improved_tactical” (ToME) – designed as a drop-in replacement for the tactical AI (details below) “maintenance” (ToME) – manages health and resources, triggering other appropriate talents and AIs, (mostly for simple AIs out of combat) “move_safe_grid” (ToME) – moves from harmful to safe terrain “flee_dmap_keep_los” (ToME) – migrated from ai.tactical.lua, flees from current target while maintaining LOS to it “target_simple” (engine) – will only maintain targeting on hostiles "target_simple" (ToME) – has an increased chance to clear friendly targets, always clears self “tactical” --The existing tactical AI has been partially updated to be compatible with most of the new tactical table functionality, with minimal changes. (It lacks most of the additional features of the new tactical AI in order to work as before as much as possible.) Better log file output. NEW TACTICAL AI: This is an almost complete rewrite of the current tactical AI that is compatible with existing NPC specifications and data. Interprets existing tactical tables as before, but supports additional information allowed in the new tactical table format. The tactical AI weighs all tactical table parameters (not just the best one) when evaluating talents, making it much better at picking the correct talent at the correct time. Full support for both positive and negative tactical values – this allows the AI to intelligently turn on and off sustained talents, including those with sustain_slots or that drain resources. (For example, an NPC can switch between hymns or vile poison enhancements as the tactical situation develops.) Automatically manages all standard resources, with support for resource-specific wants. Does a better job at maintaining an advantageous distance to the target. (Un-tested) The tactical AI should run significantly faster than before for most NPCs. The new AI is more efficient when evaluating and performing actions, but does more. Extensive documentation for the changes, including detailed instructions/tutorial for how to construct tactical tables. Defined key parameters for supported TACTICs in mod.class.interface.ActorAI. This allows new TACTICs to be added easily, including by addons. EXTENDED TACTICAL TABLE functionality: Added detailed documentation on how to construct tactical tables and how they are interpreted by the (new) tactical AI. No changes are required to current tactical tables for them to be interpreted by the new AI functions the same way they were interpreted before. Note, however, that many of the existing tactical tables have significant errors that prevent NPCs from using talents appropriately. (A number of these have been corrected as part of this development.) Changes: Tactical functions take the actor affected rather than the NPC's ai target as an argument in order to be consistent with the way DamageType and status resistances are interpreted. There is an additional (lowest) level of table parsing for status immunities to allow both DamageType resistance and status effects to be accounted for. For example, Apply Poison’s NATURE-based damage is added to the tactical table as: tactical = { ATTACK = {NATURE = {poison = 2}}} which takes both the target’s poison immunity and NATURE resistance into account. A sub-table SELF = {…} can be specified for tactics that apply only to the talent user. This helps specify tactics for talents that have different effects on the user and on their target(s). For example, the updated tactical table for lightning runes is now: tactical = { ATTACK = { LIGHTNING = 1 }, SELF = {defend = 1} } reflecting the fact that it provides defense to the user (but not the target). When applying DamageTypes, source damage bonuses and target affinity are accounted for in addition to resistances and penetration. Alternate tactical tables (t.tactical_imp) are included for some talents during the transitional period.) AI talent use changes: Completed support (This was only partially supported before.) for the talent field t.onAIGetTarget for all engine AIs and support functions. ActorAI:getTarget(typ). Separated ai pre-use talent checks from actor:preUseTalent into new function (ActorAI:aiPreUseTalent) at the engine level. This is needed to allow sustains to be turned on and off properly (to allow ActorTalents:forceUseTalent to turn off sustains (with buff removal effects, for example), when the AI would otherwise NOT turn them off. For ToME, this permits the function talent.on_pre_use_ai to control both activating and deactivating sustained talents. SUMMARY of FUNCTIONS: New Engine Functions: ActorTalents:filterTalent(t, filter) - checks a talent against a filter ActorAI:aiTalentTargets(t, aitarget, tg, all_targets, ax, ay) - Generate a list of target entities (Actors) a talent MAY affect if used (This provides engine support for the dummy projection performed in the current tactical AI.) ActorAI:aiGetAvailableTalents(aitarget, t_filter, t_list) – generates a list of talents available for use aiPreUseTalent(t, silent, fake) – (stub) determines if the AI should use a talent (separated from preUseTalent to allow sustains to be correctly turned on and off) ActorAI:getTarget(typ) – supports talent.onAIGetTarget, talents automatically self-targeted, and supports the grid_params argument to locate grids if the targeting table requires it. ActorAI:getTargetGrid(tg, params) – acquires grids via projection, choosing one to move to based on parameters in the targeting table -making targeting of movement talents for NPCs much simpler. Updated Engine Functions: ActorAI:setTarget will automatically check on_acquire_target and on_targeted functions when a new target is set. ActorAI:runAI will return nil, generating a log message, rather than crashing with an undefined ai New ToME functions: ActorAI.aiParseTalent(t) – parses a talent definition, setting some variables for AI use – making talent analysis faster for the AI ActorAI.AI_InitializeData() – parses all talent definitions, initializes resource tactics, and logs a summary of all tactics detected in talent definitions ActorAI:aiPreUseTalent(t, silent, fake) – Determines if the AI should use the talent. Checks t.on_pre_use_ai (applies to both activation and deactivation of sustained talents) and caches its results in the self.turn_procs table. ActorAI:aiCheckSustainedTalent(t) – determines if a sustained talent should be toggled (Allows simple AIs to turn on and off sustained talents correctly. This is primarily concerned with resource drains.) ActorAI:aiGetResourceTalent(res_def, t_filter, t_list) – finds a talent to replenish a resource ActorAI:aiResourceAction(res_def, t_filter, t_list) – finds an action (talent or AI) to replenish a resource ActorAI:aiHealingAction(aitarget, filter, t_list) – finds an action (talent or AI) to heal self ActorAI:aiGetGridDamage(gx, gy) – computes expected grid damage and air loss for the actor. Updated some grid definitions to allow this function to detect the damage. ActorAI:aiGridHazard(gx, gy, dam_wt, air_wt) – rates the overall hazard level for grid. May be overloaded for some Actors to allow for special map navigation. ActorAI:aiFindSafeGrid(radius, want, dist_weight, ignore_los, grid_val) – finds the a nearby grid to escape grid damage and suffocation. ActorAI:aiCanFleeDmapKeepLos() – moved from tactical ai for general use ActorAI:aiTacticEffectValues(targets, effect_type, effect_wt, talent, selffire, friendlyfire) – computes the tactical value of specific tactic weight argument vs a list of actors – for concurrent compatibility with the existing tactical AI ActorAI:aiTalentTactics(t, aitarget, targets, tactic, tg, wt_mod) – fully resolves the tactical table for a talent (including finding targets as needed) – used by the new tactical AI to evaluate talents and by some simple AIs to use tactical tables when choosing talents Combat:combatGetAffinity(type) – returns damage affinity Talents.aiLowerTacticals(tactical) – function to convert TACTIC labels to lower case in tactical tables Updated ToME Functions: NPC:act() – NPCs will perform resting activity if they take no other action during a turn NPC:getTarget(typ) – simplified to reflect the changes to ActorAI:getTarget NPC:seen_by(who) – NPCs will not pass friendly targets to each other unless ai_state._pass_friendly_target is set NPC:aiCanPass(x, y) – removed (uses engine version), shove pressure folded into ActorAI:moveDirection MISC RELATED CHANGES: The level of log file detail output by various AI functions can be specified by setting config.settings.log_detail_ai to a value from 0 (minimal output) to 4 (very verbose output). Engine: ActorAI:aiSeeTargetPos(target) – added extra checks to the estimated location to exclude it if another actor is seen there and that the target can actually move there – this significantly reduces the chance to target friends or self ActorLife:takeHit(value, src, death_note) – death message is not displayed if src is undefined utils: table.to_strings = function(src, fmt) – converts a table to table of formatted strings, very useful for various debugging outputs utils: table.equivalence(t1, t2, recurse) – checks if two tables are equivalent, i.e. they are identical or contain the same values assigned to the same keys, can recursively track all of the keys to the first difference found ToME: ActorAI:moveDirection(x, y, force) – moved from NPC.lua, incorporates shove algorithm code, fixing a bug that causes shove pressure to almost always fail Actor:preUseTalent(ab, silent, fake) – updates any missed AI parsing of talents as needed when tested Resource definitions updated with new AI parameters (equilibrium, paradox, psi, air) Actor:regenLife(fake) --- returns the life, psi regenerated, updated to take a fake parameter to calculate the amount of life and psi that will be regenerated without applying the values. Eliminated the resting hack for Solipsism: life regeneration is only reduced by the amount of psi regeneration that can be used, none is diverted once psi is replenished. Updated Actor status immunity functions: Actor:canBe(what, eid) -- Rewritten to reference a table of status type labels that makes defining new status types (addons) much simpler. Can take an argument for the effect id being applied, which forces checking of general status immunities (negative_status_immune is always checked), and can be used to force checking of status types contained in the effect subtype table. (i. e. self:canBe(nil, “EFF_DAZED”) will check stun_immune.) Now returns the random result, percent chance to be affected. AIs have been updated to use the chance rather than an individual result, so that tactical weights are consistent across multiple calls. Actor.newStatusType(what, method) – used to define a new status type. e.g. Actor.newStatusType(“annoy”, true) causes self:canBe(“annoy”) to check the self.annoy_immune field. Actor:canSeeNoCache(actor, def, def_pct) – updated to always return the correct chance to see the target (regardless of success). Actor:getTalentSpeed(t) – looks for a t.getEnergy function that returns the amount of game energy needed to use the talent (on the basis of 1 = 100% of normal, stacks with talent type speed). Combat:combatGetResist(type) -- results are properly bounded between -100% and + 100%. resolvers.talented_ai_tactic updated to better balance ai_tactic for more tactical flexibility. Fixed an upvalue(!) bug that could cause failure when placing randbosses generated from an earlier save file. Some ToME TALENT CHANGES: Note many talent defintions have incorrect tactical tables. A number of the most complex (for the AI) talents have been updates with new tactical information so that NPCs can use them. Talents can have .ai_level field to specify the (raw) talent level to use for AI purposes (For prodigies and other 1 point talents). Summoning Talents – Defined new functions in talents.lua (available to all talent definitions) supporting significant tactical changes which allow NPCs to better pick appropriate summoning talents and place summons. Poisons – use the updated AI changes to allow NPCs to switch between poison effects in combat. Psionic Projection talents – tactical tables for discharging the talent now take into account the loss of the aura effect Meditation – enabled for NPCs who will actively toggle this talent to manage their equilibrium. Spacetime Tuning – NPCs can learn the talent, but only benefit from the passive effects. Suncloak – enabled for NPCs (requires LOS to target) True Grit – enabled for NPCs (since they can now manage their resources) Nature Touch – NPCs will search for a target (favoring self) that needs healing Some ToDo Items: Update the way the Actor.ai_tactics table is used to allow for sustains/status effects to modify tactical priorities in the tactical AI. So wild speed could reduce but not eliminate talent use, Unstoppable would prevent running away while active, etc... Finish enabling summoning talents for NPCs : Detonate, Rage, Phase Summon Wards: NPCs must match wards to target attack types Add a method in data.damage_types.lua to translate compound DamageTypes into the base types (that have resistances)
-
- Feb 24, 2017
- Feb 07, 2017
-
-
DarkGod authored
-
- Jan 04, 2017
-
-
DarkGod authored
-
- Dec 20, 2016
-
-
DarkGod authored
-
- Dec 09, 2016
-
-
DarkGod authored
-
- Dec 07, 2016
-
-
Hachem_Muche authored
Talent Unlock System: Defined in GameState, can be phased in over time. (Used to control trap selection with this update.) Formalizes management of talent flags and includes support for functionality to control unlocking of talents for both the player and NPCs at either the unlock point or within the talent (which takes precedence). game.state:unlockTalent(tid, who, v) -- to unlock game.state:unlockTalentCheck(tid, who) -- to check unlock Trap class updated: (engine) Traps are position aware and automatically set their coordinates when placed. (engine) Traps are set known when disarmed (facilitates displaying appropriate log messages). The player automatically identifies traps he/she triggers and has a chance to identify traps discovered close by. Tooltips are updated to include more useful information when identified by the player, including if they are "safe" and a description of the effects (for both random traps and traps created by talents). When disarmed, some traps give the player a chance to learn (unlock) a related trap talent. This is fairly difficult (depends on skill in Trap Mastery and Heightened Senses) and requires time out of combat, but provides a means for the player to eventually unlock most talented traps (for other campaigns, etc). Traps can define their chance to randomly fail to trigger (trigger_fail field, default 5% chance). An appropriate combat log message will always be displayed when the player sees a known trap being avoided. cunning/trapping Talents: All selectable traps have a tier (from 1 to 5), which equals the minimum talent level needed to select them. Nerfed Heightened Sensse trap detection to be more inline with typical trap detect/disarm power, while still being stronger. All standard trap talents can now (eventually) be unlocked for the player and are usable by NPCs, which automatically select which traps to prepare randomly when first acting. Many new trap support functions are defined to make adding new trap talents easier and a "recipe" for defining new traps is included in cunning\traps.lua. This covers both "cunning/traps" and "celestial/glyphs". Relevant references for functions and tables are added to ActorTalents. New AI functions allow NPC's to place traps in better locations (either in front or behind rather than under the player). Talent "Preparation" renamed "Trap Priming", traps prepared with it have independent (reduced effectiveness, ~ 60%) trap mastery levels compared to those prepared with Trap Mastery talent. The trap tier must be no higher than talent level. Updated interface for Trap Mastery and Trap Priming selection: The player can freely select/cancel traps to prepare. Both Trap Mastery and Trap Priming have no cooldown but put newly selected traps on cooldown instead. Low level requirements for Trap Mastery are accelerated to prevent high tier traps from being learned too early. If Trap Mastery is learned on player birth, the dialog to select prepared traps is automatically invoked, allowing the player to start the game with traps off cooldown. Lure: Life, Armour, and Resistances scale with talent level and Cunning. Talent "Trap Launcher" renamed "Advanced Trap Deployment": trap ranges limited < 10 (nerf), but get bonuses to trap talent speed and maintaining stealth (buffs). Random Traps: Damage from random cold flames trap slightly buffed. Teleport traps check teleport immunity. Summoning alarm: adjusted detection/disarm level, summons will target triggering actor New elemental trap: "anti-magic trap" -- a rare and weaker version of the purging trap New elemental trap: "dragon fire trap" -- a rare trap that can stun its targets and set them on fire Individual Trap Talent Changes: Eliminated redundant special versions of trap talents to trigger instantly. Required Trap Mastery levels adjusted to spread out usable traps from tiers 1 to 5. Effects (damage) tweaked appropriately. Bear Trap: Tier 1 Moved from tier 2, Clarified talent description. Can use a primed trigger. Disarming Trap: Tier 1, Now unlocked from the start. Springrazor Trap: Tier 2 Moved from tier 1, Clarified talent description. Pitfall Trap: Tier 3 If victims avoid being engulfed (automatic for the player) they are pinned (-50% pin resistance) instead. Flash Bang Trap: Tier 4 Duration of debuffs scale with cunning Bladestorm Trap: Tier 5 Summoned construct cannot have ego/artifact equipment, gets summoner damage bonuses, gets rescaled armor, defense, and resistances, and correctly gains stats with level Explosion Trap: Tier 2, Unlock: disarming "fire blast trap" or "delayed explosion trap" Beam Trap: Tier 2, Unlock: Dearth after Lightning-overload quest or disarming "spinning beam trap" requires 20 Magic, treated as a spell, unlocked only for NPCs greater than level 5 Poison Gas Trap: Tier 2, Unlock: Maze or by disarming certain traps ("poison spore", "poison blast trap") Freezing Trap: Tier 3, Unlock: in Daikara or disarming "cold flames trap" unlocked only for NPCs greater than level 15 Catapult Trap: Tier 3, Unlock: killing Filio Flightfond or (rarely) disarming "giant boulder trap" Grid to catapult target to can be set when laid. (NPCs select an appropriate grid based on their ai_state.) Purging Trap: Tier 4, Unlock: in Zigur or by disarming "anti-magic trap" Requires 25 Will, treated as an anti-magic ability, number of effects removed rescaled with controlling trap mastery talent, unlocked only for NPCs greater than level 15 Nightshade Trap: Tier 4, Unlock: disarming "poison vine", poisons in addition to damage (buff) Dragonsfire Trap: Tier 5, Unlock: in Daikara or by disarming "dragon fire trap" unlocked only for NPCs greater than level 20 Ambush Trap: Tier 5, Unlock: Assassin Lord, Lost Merchant, or (rarely) by disarming some alarm traps, treated as a spell, summoned assassins are the summoner's (not zone's) level, cannot have ego/artifact equipment and disappear after the triggering actor is killed, are permanently stealthed, get summoner damage bonuses, and correctly gain stats with level Gravitic Trap: Can trigger immediately after being placed and can be triggered by foes at range 1. May trigger more than once, but requires time to recharge. Glyph of Paralysis: only triggers on enemies Glyph of Repulsion: only triggers on enemies Glyph of Explosion: only triggers on enemies, damage buffed slightly Glyph of Fatigue: only triggers on enemies, fixed bug using incorrect value for slow effect (slight nerf, no spellCrit) Other Rogue Talent changes: Rogues start with the "technique/dualweapon-training" category unlocked and "cunning/scoundrel" category locked. Projectile speed shown on descriptions for Throwing Knives talents. Throwing Knives: base damage rescaled (nerf) to more closely match iron dagger at level 1.3 and voratun dagger at level 6.5, maximum of 72 (voratun greatmaul) at high talent levels. Bandolier holds more knives at higher talent levels, but autoreloads at half rate on moving. Updated info and tooltips. Fan of Knives: Fixed a bug causing targets to be hit by too many knives. Damage of each knife limited < 100% of normal Throwing Knife damage. Does not require any regular throwing knives ready. Precise Aim: enabled for NPC's, nerfed crit power Soothing Darkness: General Nerf: life and stamina regeneration, flat damage reduction, but allows stealth to always be activated in unlit grids Shadow Dance: Drops target to enemies in LOS only. Fixed a bug that could cause stealth to be toggled incorrectly. Apply Poisons: Fixed a bug causing some poison effects to not work without vile poisons. Grapping Hook: requires at least range 2, fixed a bug that could cause the talent to go on cooldown with an invalid target, clarified talent description and combat log messages Dual Weapon Defense enables parrying from level 1 up. Parry: Chance to parry, and % of weapon damage limited < 100% Tempo: Limit energy gain < 50% of a turn, stamina gain nerfed slightly Duelist Focus: nerfed crit resistance to be more in line with other crit reducing talents, nerfed chance to ignore all damage: limited < 25% Feint: Nerfed offhand damage multplier, nerfed speed penalty (limit < 50%), added some safety checks, fixed a bug causing the crippling affect to land even if the target was missed Lethality: removed offhand multiplier bonus. Coup de Grace: smoothed scaling of special damage, correctly applies offhand damage penalty Heart Seeker: range limited < 10 Terrorize: radius limited < 10 Tumble: cannot be used when unable to move Garrote: damage reduction limited < 100% Marked for Death: damage accumulation limited < 100% of damage taken, bonus damage will not trigger if effect is removed early, clarified effect description Lacerating Strikes: only causes energy loss if the target is successfully cut. Scoundrel's strategies: talent disruption chance limited < 100% Misdirection: Fixed a bug causing effects from non-actors (like traps) to be misdirected. Twist the Knife: enabled for NPCs, rescaled (slowed down) number of effects (nerf) and duration change (buff), fixed cooldown Stoning Poison: Poison can stack, more reliably stones victims, learnable from the Lost Merchant (1500g) Mystical Cunning prodigy updated: Automatically learn both Gravitic trap (does not require Trap Mastery) and Vulnerability Poison (buffed to be applied before checking other poisons, but only reduces poison immunity of "living" creatures). Tooltip includes a full talent summary of the bonus talents learned so players know what they're getting before learning the prodigy. Magic improves damage for both bonus talents. The stealthDetection function is made globally accessible through ActoTalents. Other changes: (engine) ActorTalent:canLearnTalent not enough stat message includes the stat short name. Significant buff to the parry mechanic. Parried attacks cannot crit. The Parry effect is triggered by both the Dual Weapon Defense and Parry talents (which now use talent callbacks), and stacks with itself. (TL 6.5 for both talents with 100 cunning gives 100% chance to parry). Unless the defender has blind-fighting, attacks from unseen attackers have 1/3 normal chance to parry. Bear Trap effect: removed redundant definitions, fixed bug causing immunities to be applied repeatedly Randbosses will respect talent tiers when learning talents. (Prevents learning talents that are useless because they require lower tier talents of the same category.) Added a new "Disarm Trap" command (Map Menu and default key binding shift-d) to allow the player to disarm traps without walking over them. This allows the player to disarm an adjacent trap or one he/she is standing on, with the usual chance of triggering it. LevelupDialog correctly passes the actor to talent.on_levelup_close Fixed a bug causing talents with no_energy == "fake" to never break stealth. Fixed a bug causing NPCs to not react to damage from player-created traps and other entities; They now target the trap summoner if applicable. A talent .autolearn_talent field can be either a single talent id or a table of talent id's. The Stoning effect now makes the victim rooted in place and confers cut and poison immunity (to new effects only) and no breathing. Gesture of Guarding: melee attacks deflected cannot be crits. The Assassin Lord now learns Weapon Mastery and Dagger Mastery talents and autolevels as "roguemage." Filio Flightfond now learns the Sling Mastery, Trap Mastery, and Inertial Shot (at level 28+) talents. New thief npc: "rogue sapper" a relatively rare type with trapping talents. Fixed a bug with bump attacks requiring too much energy to happen.
-
- Jun 21, 2016
-
-
razakai authored
-
- Feb 18, 2016
-
-
Alex Ksandra authored
-
- Jan 07, 2016
-
-
DarkGod authored
-
- Nov 17, 2015
-
-
-
DarkGod authored
-
-
- Jan 01, 2015
-
-
DarkGod authored
-
- Sep 05, 2014
-
-
Eric Wykoff authored
-
- Jul 10, 2014
-
-
Eric Wykoff authored
Paradox Sustains now directly effect modified paradox in addition to setting minimum paradox Paradox Sustain costs adjusted for Temporal Wardens (Paradox Mage is WIP)
-
- Feb 15, 2014
-
-
DarkGod authored
-
- Jan 16, 2014
-
-
DarkGod authored
yay
-
- Dec 07, 2013
-
-
DarkGod authored
-
- Dec 04, 2013
-
-
DarkGod authored
-
- Nov 26, 2013
-
-
DarkGod authored
Mystical Cunning only gives traps/poisons depending how what you know
-
- Sep 20, 2013
-
-
DarkGod authored
-
- Jul 04, 2013
-
-
DarkGod authored
-
- Jul 03, 2013
-
-
DarkGod authored
-
- Jun 30, 2013
-
-
DarkGod authored
-
- Mar 30, 2013
-
-
dg authored
git-svn-id: http://svn.net-core.org/repos/t-engine4@6601 51575b47-30f0-44d4-a5cc-537603b46e54
-
- Mar 10, 2013
-
-
dg authored
Revisionist History switches to a special talent to cancel the effect so that you can set revisionist history on auto-use git-svn-id: http://svn.net-core.org/repos/t-engine4@6534 51575b47-30f0-44d4-a5cc-537603b46e54
-
- Mar 04, 2013
-
-
dg authored
git-svn-id: http://svn.net-core.org/repos/t-engine4@6479 51575b47-30f0-44d4-a5cc-537603b46e54
-
- Feb 20, 2013
-
-
dg authored
git-svn-id: http://svn.net-core.org/repos/t-engine4@6436 51575b47-30f0-44d4-a5cc-537603b46e54
-