itch.io is community of indie game creators and players

Devlogs

Version 5.01

Another RPG Engine
A browser game made in HTML5
  • Restructured statInfo. Each attribute is now an object containing all the data previously stored in STAT_MIN, STAT_MAX, hiddenStats, and the old statInfo, which have all been depreciated. All existing references to the old objects (should) have been updated, so no code changes should be necessary.
    • In addition to descriptions and min/max values, the new objects also contain properties for "short" (three-character) names, and default values for cases where you do not want the minimum value to be the default.
    • The new statInfo also includes the Boolean attribute percentile, which will add a percent sign after displaying the stat.
    • A similar object named SECONDARY_STATS has also been created. This object contains corresponding info for all non-core stats, such as HP, Energy, and regeneration values. You must define an entry for HP or there will be problems. Other secondary stats can be deleted if you do not wish to use them.
    • The Actor constructor has been slightly tweaked to account for these changes. It is now possible to create an Actor without any stats property in its database entry, for instance.
  • The code block defining various damage formula constants (base, damper, etc.) has now been condensed into a single object. All existing referents should have been updated.
  • Tweaked Actor methods for getting and setting stat data. There are more checks for invalid data types, and the code no longer requires stats to have defined minimums and maximums.
  • Long-overdue change: HP and EN are now FillStats, rather than current HP/EN being separate variables. Getters and setters have been adjusted, so there should be no need to change game code.
  • instant and basic properties for Actions have now been folded into the tags property. Just include the strings "instant" and "basic" in the tag list and they'll work as before. The getters for these properties have been updated, so this update will be compatible with existing code.
  • Streamlined action tag display. Action.toString now prints every tag in the tags property.
    • If you want some tags to be invisible to the player and used only in internal code, include them in the new setup variable HIDDEN_TAGS.
  • New Actor methods: standardEquip and standardRemove. This provides a shorthand for the most common forms of onEquip and onRemove code (direct stat modification). It draws data from the item's special property and automatically detects if the property names refer to an affinity, tolerance, or core stat.
  • Actor.equip and Actor.unequip will now only reference inventory items if the Actor is a Puppet. This allows enemies and NPCs to have equipment without interfering with the player's inventory.
  • It is now possible to define both flat and percent values for elemental affinities via the database and equipment mods. Simply define the element's entry as an object with the properties flat and percent. If the entry is only a number, it will be assumed to refer to the percent affinity.
  • You can now define a custom filename for the image used for Energy costs via the setup variable energyPic.
  • Actions will now display their HP costs on the right-hand side, below Energy costs.
  • The status button and status pane have been reworked. The status button is now a small image in the upper-right of the actor box, rather than a link, and displays stat information as a mouseover tooltip. The status pane no longer displays stat information, and displays effects in a dedicated screen rather than underneath all screens. Additionally, the status pane has been modularized with separate passages for each screen, stored in the new file status battle screens.tw.
    • The status widget has been depreciated with this change. The functionality for the status button is now contained in the "Actor Box Status" passage instead, located in the file Widgets (Actor Box).tw.
  • Widgets (Misc).tw has been depreciated. The widgets for stat, soak, resistance, and tolerance display code have all been moved to status battle screens.tw and the widget for menu stat display has been moved to party menu-status.tw. This should help keep relevant code together.
    • The res and tol widgets have been given the full names of resistance and tolerance for clarity. Existing referents should have been updated; tell me if you see any bugs.
    • Additionally, the menu stat display widget has been tweaked to allow you to eschew the base + mod format. If the stat's statInfo entry has the noBase property set to true, the stat will just be displayed as one number.
  • New Effect property: extendable. This is a Boolean determining whether duration will be extended by new applications or remain the same. True by default.
  • Given how many changes I've been making to user storyinit, I decided to move the file to the core folder and mark it as an example page. It will give you an idea of what variables you can modify and will be updated regularly, but shouldn't be used as an actual custom page because it will be overwritten by new updates. Copy the file and place it in your custom folder to carry out any changes.
  • Fixed the unequip button erroneously appearing in the status page.
  • The Zweihander in the default database should no longer break the inventory. (I forgot to update it for the recent changes to equipment data; sorry about that.)
  • Fixing the Zweihander bug revealed another bug that prevented filler objects from being removed when multi-slot equipment was removed; this has also been fixed.
  • unequip will no longer log an error message if it is run on an empty equipment slot.
  • The HP/MP listing in the party menu now has a slight bottom margin to keep it from overlapping with the HP/MP meters.
  • Selecting a slot in the equipment menu will now turn it black instead of gray.
  • Discovered some actions are still throwing errors about undefined targets. I've officially thrown my hands up and just hardcoded the battle logic to copy the subject to the target if the target is undefined. There's just too much stuff that references a target and I can't make control branches for them all. Hopefully this doesn't cause more problems down the line.
  • Also just now discovered the in-battle item list broke thanks to me forgetting Array.filter doesn't modify the original array. Should be fixed now.
  • The stock marker for in-battle items is now bold.

Files

  • rpgengine source.zip 6.6 MB
    Aug 27, 2022
Download Another RPG Engine
Leave a comment