- Nov 05, 2015
- Nov 04, 2015
- Nov 02, 2015
-
-
Samuel Wegner authored
Previously, Warden's Call would always create a clone after a successful attack. This was somewhat overpowered, but more importantly it exacerbated the memory leak issue with temporal clones. Now, Warden's Call activation is chance-based, capping at 53% chance at 5/5 talent level with 1.3 mastery. To compensate for the reduced activation rate, the damage penalty on the clones has been reduced. This should (hopefully) reduce the skill's performance degradation by roughly half. When the memory leak is fixed, we can re-evaluate whether the activation chance is still needed or if it should be increased. However, I think this is probably better for game balance anyway. The skill in its original form was stronger than other talents such as Greater Weapon Focus, which is already considered strong by the community. This could be pushed back to v1.3.2 with the other cloning changes.
-
- Oct 31, 2015
-
-
Simon André Curtis authored
-
- Oct 30, 2015
-
-
DarkGod authored
-
- Oct 28, 2015
-
-
Samuel Wegner authored
-
Samuel Wegner authored
-
- Oct 27, 2015
- Oct 26, 2015
-
-
Samuel Wegner authored
Added a cleanup function for Arrow Stitching, since it spawns clones the same way as Warden's Call. The cleanup function is the same. Changed makeParadoxClone() to not copy fov and distance_map tables from the source actor. Instead, we call ActorFOV.init() on the clone. Updated a few comments for clarity.
-
- Oct 24, 2015
-
-
DarkGod authored
-
Samuel Wegner authored
-
Simon André Curtis authored
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
1. Since the customizable table cloning function may be useful for other purposes than just making Chronomancy clones, I moved it to engine/class.lua and renamed it cloneCustom(). It works like cloneFull(), but allows specifying a table of keys/values to skip or replace in the clone table. If desired, I could instead just modify cloneFull() to have an optional parameter for the "alt_nodes" table, but I didn't want to mess with it without permission. There could be a conditional statement to pick between two different recursive functions so the optional param doesn't impact performance, if that's a concern. 2. Updated comments for cloneFull() and related functions for clarity. The comment originally said it returns the clone and the number of objects cloned, but it actually only returns the clone. I think the comment may have been copied from somewhere else and not updated. 3. Renamed the "t" param from cloneFull() to "post_copy" to be more descriptive and to be consistent with cloneCustom(). This has no functional impact. 4. Significantly expanded the number of properties which are skipped when making Chronomancy clones of an actor. Hopefully this will improve performance and maybe even help with the memory leak. I didn't see any errors during brief testing, but it probably merits more testing.
-
Simon André Curtis authored
-
Simon André Curtis authored
-
Simon André Curtis authored
-
- Oct 23, 2015
-
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
Changed Arcane Combat's description generator to use table.concat, to avoid making temporary string objects that need garbage collection.
-
Simon André Curtis authored
Adds more zone-wide effects in. About half of them explain special level mechanics, the rest are just for flavour or some minor gameplay spice.
-
- Oct 22, 2015
-
-
Simon André Curtis authored
-
Simon André Curtis authored
-
Simon André Curtis authored
-
Samuel Wegner authored
I just remembered why I originally designed it this way: We only want to skip if neither 'k' nor 'v' is specified in alt_nodes since we want to allow substituting user-specified values for either.
-
- Oct 21, 2015
-
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
-
Samuel Wegner authored
Fix 1: Improve cloning function Previously, makeParadoxClone() temporarily cleared the actor's particles and main inventory so that they wouldn't be copied by cloneFull() when making Warden's Call clones. However, this resulted in some players losing their inventory, probably due to some race condition during lag caused by the Warden's Call memory leak. Now, makeParadoxClone() has its own recursive table cloning function with options for skipping specific nodes or assigning them a different value from the source table. This way, we can clone an actor without modifying that actor's table. Fix 2: Create cleanup function for Warden's Call Added a basic cleanup function for Warden's Call clones. Currently, it just makes sure they're dead and replaces references in timed effects with references to the player, so the clones can be freed by the garbage collector. More features will likely be added as I find other causes of the memory leak. NOTE: These changes don't fix the memory leak. It may help a little, but that issue needs more investigation. It's probably worth pushing these changes back to v1.3.X in a minor update to fix the issue with missing player inventory. Completely fixing the memory leak may take a while.
-
- Oct 20, 2015
- Oct 19, 2015