- Oct 24, 2015
-
-
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.
-
- Oct 22, 2015
-
-
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 07, 2015
-
-
DarkGod authored
-
DarkGod authored
Dialog hotkey fixes Fix hotkeys in Arcane Combat and Chronomancy dialogs Previously, pressing hotkeys (a,b,c...) had no effect in these dialogs. Now, hotkeys can be used to select the associated list option. Also, I included a fix to Warden's Call short_name. This is not related to the other changes, but I think it's too small to make a separate branch. Previously, Warden's Call short_name did not have quotes around the value, so it was effectively nil. Now, the short_name is correctly assigned.
-
DarkGod authored
Small fixes Here, here.
-
- Oct 05, 2015
-
-
Samuel Wegner authored
-
Alex Ksandra authored
-
Alex Ksandra authored
-
- Oct 04, 2015
-
-
Alex Ksandra authored
-
Alex Ksandra authored
-
- Oct 01, 2015
-
-
DarkGod authored
-
Samuel Wegner authored
-
- Sep 30, 2015
-
-
Samuel Wegner authored
-
DarkGod authored
-
DarkGod authored
-
DarkGod authored
Merge branch 'ArcheryUpdate+' of http://git.net-core.org/Hachem_Muche/t-engine4 into Hachem_Muche/t-engine4-ArcheryUpdate+
-
DarkGod authored
Arcane Combat resources Support multiple resources for Arcane Combat -The only visible change in the core game is that Arcane Combat now interacts correctly with the Hidden Resources prodigy. The rest of the changes are for addon support. -Previously, Arcane Combat do_trigger function assumed that allowed talents cost mana and not other resources. This is fine in the core game, but if an addon wants to allow triggering a talent that costs Vim or Paradox, for example, the logic was not appropriate. Now, all resource types should be handled correctly.
-
Hachem_Muche authored
-
Samuel Wegner authored
-
DarkGod authored
-
DarkGod authored
Merge branch 'addon-birth-options' of http://git.net-core.org/grayswandir/t-engine4 into grayswandir/t-engine4-addon-birth-options Conflicts: game/modules/tome/class/Game.lua
-
DarkGod authored
-
DarkGod authored
Center on player Adds a center view on player key command (Ctrl-Home by default). Because the player tracking isn't completely reliable and I don't know exactly what's wrong with it.
-
- Sep 29, 2015
-
-
Grayswandir authored
-
Grayswandir authored
-
Grayswandir authored
-
DarkGod authored
fix typos
-
Grayswandir authored
-
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 28, 2015
-
-
Grayswandir authored
This lets addons specify extra options on a player's birth. These are treated as normal options, so they are saved in the player's profile. However, the value of this option at the player's birth is stored on the player itself. This is to prevent needing to switch options if you switch between save files that are using different options. Adds the ToME:extraBirthOptions hook, as well as a generic OptionTree dialog. Example addon: function hook(self, data) local options = { {type = "group", path = {"basic"}, name = "Basic", desc = "DESC"}, {type = "group", path = {"basic", "basic2"}, name = "Basic 2", desc = "DESC 2"}, {type = "boolean", path = {"basic", "basic2", "test"}, id = "test_boolean", name = "Boolean", desc = "Test Option"}, {type = "cycling", path = {"basic", "basic2", "test8"}, id = "test_cycle", name = "Cycle", desc = "A cycling test option.", values = {"hello", "goodbye", "???"}}, {type = "group", path = {"advanced"}, name = "Advancded", desc = "GROUP DESC"}, {type = "numeric", path = {"advanced", "something"}, id = "test_numeric", name = "Numeric", desc = "A numeric test option.", min = 0, default = 7, max = 10}} for _, option in ipairs(options) do table.insert(data.options, option) end end self:bindHook("ToME:extraBirthOptions", hook)
-
- Sep 27, 2015
-
-
Samuel Wegner authored
-The only visible change in the core game is that Arcane Combat now interacts correctly with the Hidden Resources prodigy. The rest of the changes are for addon support. -Previously, Arcane Combat on_trigger function assumed that allowed talents cost mana and not other resources. This is fine in the core game, but if an addon wants to allow triggering a talent that costs Vim or Paradox, for example, the logic was not appropriate. Now, all resource types should be handled correctly. -Added some sanity checks to the allowed talent filtering in case addon developers set "allow_for_arcane_combat" on inappropriate talents.
-
- Sep 25, 2015