1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

3.7.3 Release

Discussion in 'Announcements' started by Krilion_GD, May 5, 2018.

  1. Krilion_GD

    Krilion_GD Community Manager
    Staff Member

    Aug 1, 2011
    Likes Received:
  2. owlbear

    owlbear Administrator
    Staff Member

    Sep 5, 2011
    Likes Received:
    With 3.7.3 launched into the wild, it's time to start work on the next round of improvements and, yes, bug fixes.

    We will be using this thread to post progress on bugs and features in the upcoming betas and announce beta releases. This will be in addition to the discord posts in the beta_d20pro channel, although I'll likely redirect folks to the forum when I can as it provides a better UI for building out rich content.

    • [ in progress ] Map markers and custom light images are not being exported properly when a map is exported and re-imported.
    • [ in progress ] Effects with a scripted effect are not executed on subsequent rounds for multi-round features.
    • [ next up ] Lights themselves are zippy now, however, the round-trip to sync lights with all connected players is a problem. So the networking for how lights are shared needs to be updated.

    • Grid Segmentation. This feature has implications for lots of different aspects of the map. Templates,
      Token movement, and the like are all tied up with this one.

      To explain segmentation more in depth, a segmentation value of 1 is the standard 1 grid unit = 1 move or target unit; a segmentation value of 2 would enable half-grid movement and targeting; a segmentation value of 10 would mean 10 steps inside of any given grid unit. The effect is that a template can be placed in any of the offset locations along the subdivided grid. With enough segmentation, template placement and token movement will be effectively free/gridless despite having a grid attached.

      Another way to think of segmentation is grid resolution where a map element can be placed at any resolution unit within a grid -- ex. if you wanted a 1 inch resolution for a 5 foot per grid unit map, you'd set the segmentation to 60!

      Current progress on the various elements can be seen below:

      • [ 90% ] Templates. Templates can now be placed on the grid based on segmentation values. The default segmentation is currently set to half-grid unit in the upcoming beta release.
      • [ 80% ] Segmentation configuration (options panel). Logic is in place, UI needs to be built and adoption in the placement code needs to be integrated with selected preferences. GM configures this option globally for connected players.
      • [ 10% ] Player/Item Token. This will be the lion share of the work that needs doing to enable variable grid styles using grid segmentation as a basis. Player and Token movement will take a bit to adapt to the new floating point segmentation model.
      • [ 0% ] Fog of War Snapping. Ideally, we would enable segmentation snapping the same way we current enable grid and knot snapping for building Fog of War objects. No work has been done on this other than code generated has this concept in mind so it can be built out in the near future.
    • Enhanced Scripting Access. To enable further scripting access to the core engine, we've added a few more Java Class access elements to the javascript engine. This list will get flushed out further as work on this aspect continue.

      The current list (as of the upcoming beta release) will be:
      • caster - Caster provides access to the caster's CreatureTemplate object. This is the data object which contains details about a creature such as abilities, hit points, traits, etc.
      • casterInPlay - coming soon CasterInPlay provides access to the caster's CreautreInPlay object. This is the map object that represents a creature on the map itself. Details of this object includes location, size, footprint, etc.
      • classBinder - ClassBinder provides access to all loaded classes, races and variants. This object will be replaced by the class library in the near future.
      • classLevel - not implemented yet
      • console - Console allows some remote tool manipulation and map positioning effects. Mainly console is used to access tools such as fog of war, template, and movement.
      • effect - Effect provides access to the current effect in progress. This allows for directly changing elements of an effect such as template size, target list, duration, and even damage types.
      • feature - Feature provides access to the current feature in progress. This includes access to the current effect as well as all other possible effects the feature might contain. The name, cost, save conditions and other feature aspects can be accessed from this point.
      • gameLog - GameLog provides access to read/write to the game log.(edited)
      • light - coming soon Light provides access to create lights on the map or attached/tethered to creatures. Owner and Tethering are both available to be set when a light is created.
      • map - Map provides access to the current map in which the feature/script is being executed. This is a blanket access to map name, size, bounds, etc.
      • maps - Maps provides access to the currently loaded map list. This can be used for transferring content between maps, looking up map properties, templates, creatures and the like.
      • role - Role provides access to the current role of the caster -- player or gm owned
      • target - Target provides access to the current target. Generally this is not used as targetsInPlay or targets provide more versatility. Target provides creature template level access to the target.
      • targets - Targets provides access to a list of creature templates for all targeted creatures.
      • targetsInPlay - TargetsInPlay provides access to a list of creatures in play objects for all targeted creatures.
      • gameNative - GameNative provides access to the core Game Model for the active session. Usage here is powerful and can result in errors fast, so if you opt to venture into this arena, be prepared to watch your log file! Reasons to use it include migration of tokens between maps, changing properties of tokens, lights, and creatures enmasse or behind the scenes.

        The "In Play" objects handle the map location, size, and footprint of the creature on the map. Creature Template can be accessed for each "In Play" object as well.
    • Myriad Extensions improvements. Web Extensions provide a great testing ground for web-based UI development with D20PRO. We're working on a short list of enhanced UI elements to provide better resources for running your games. The short list of web UI based enhancements in the works can be seen below:

      • Custom character sheets. By providing web access to the java classes responsible for creatures, custom javascript based character sheets can be used which allow for read and write access to the creatures on the map.
      • Rollable tables. We've been working on a web tool to build out json based tables which allow for rolling and broadcasting results to the game log. This could be anything from a loot table to the results of the confusion spell.
      • 3D Shared Dice Box. Building on the public project TealDice, we've been working on a 3D dice roller which reports it's results to the game log. Dice Boxes can be instanced for a given character which provides game log context for the character making the rolls. The current UI is tabbed so a GM could have dice boxes for more than one creature/character active at a time.

        Planned improvements include providing storage for custom dice formula so a specific creature can have it's various rolls ready to go from a simple click menu. Integrating the roller such that you can push rolls from attacks, damage, and spells to the dice box for resolution (the last one is tougher than it should be!)
    • But wait there's more! I wish I were kidding. There's a few odds and ends improvements we're working on.

      • A right click call out which will "ping" the map where a player or GM clicks.
      • Updates to the Heal and Harm (damage) GM popups which will let you set types and dice along the same lines as an attack in the Attack tab of a creature view.
      • Migrating UI elements to JavaFX as time permits.
      • Building a Launcher/Updater which can help the Mac folks launch without warnings and annoying messages about apps not coming from the app store.

Share This Page