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

5th Edition work progress

Discussion in 'D&D 5th Edition' started by owlbear, Nov 10, 2016.

  1. Krilion_GD

    Krilion_GD Community Manager
    Staff Member

    Joined:
    Aug 1, 2011
    Messages:
    1,167
    Likes Received:
    78
    We've asked enumerable times for assistance with documentation.

    Documentation is fleshed out as features become stable and the construction dust settles. Hopefully as the work slows down some and feature are in less flux, documentation can pick up and be fleshed out. currently, micro videos are being produced to help with doc'ing things.
     
  2. Tay-Dor

    Tay-Dor Active Member

    Joined:
    May 15, 2016
    Messages:
    239
    Likes Received:
    36
    I'm not asking for full tilt documentation. But some bare bones would be nice to explain the basics of the nodes and whatnot.
     
  3. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    391
    Likes Received:
    125
    This type of set up will definitely be requiring documentation -- which is why I've been working on creating it(!)

    http://d20pro.com/release-notes/feature-library/#overview

    This is rough and in-progresses, but should give you an idea of how the docs are shaping up.

    I'm using a system called mkdocs to create these pages as we can then include an offline copy of the documentation along with the feature set.
     
    kinwolf likes this.
  4. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    391
    Likes Received:
    125
    So as a change of pace (and because we needed too) we've been working on the spell casting system from the Character Perspective.

    Domains, Circle Spells, Oath Spells and the like operate very similar to 3.5/Pathfinder Domains with the exception that there are now 2 spells per spell level and spells cap out at 5th level spells.

    In order to accommodate this, we've extended the Rules API to allow for specifying some Domain spell constants which determine frequency and count for spells grants per level. This is a bit of a brute force method versus a cleaner "spells per level" mechanism, but it'll get the job done for now and with room for growth after our 5e module hits the streets.

    We're now working on Invocations, Traits which grant abilities and more.

    Oh, and Item casting is back in and working like a champ. With the next build you'll be able to specify spells granted by items similar to the FreeForm casting method.

    All of these casting systems work with the Feature Library as well so they can benefit from the built in targeting and decision pipeline presented with the new features.

    We've got a couple more things to knock out before we start showing video and overviews, however, this is likely right around the corner!
     
    Josh Scott likes this.
  5. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    391
    Likes Received:
    125
    Okay, in tandem with the updates to the feature library, I've been plugging away at a re-write of the spell selection and entry system that is more extendable and compatible with 5e (and other game systems).

    Below is a set of mock-ups for the layout and design I'm working on implementing.

    One of the core concepts is to include a Spellbook which gives access to the complete listing of spells available for a given class. After the initial implementation and some work we have planned on in-game editors for user created content (ManuallySpecified source files), the Spellbook would be updated to support in-game adding of new spells.

    The basics of the Spellbook are a full table of ALL spells, and individual by-level sorted sub-spell lists. For Wizards and other caster who have a player selected set of spells which create their list of possible spells, there is a Spells Known category. How this maps to Sorcerers, Rangers and the like is TBD as the Source (left pane) will be limited by the class being accessed.

    Multi-class characters will have the ability to select the spellbook for the appropriate class.

    In addition to being an interface to show and build lists of spells available for preparation, the spellbook also provides access to new Spell meta data in the form of a description and notes area. The fields of these will be determined by game system and defined in the Rules for the game system.

    Again, this is an in-progress task, so some of these elements might change as we continue development.

    (more text after the image)

    upload_2016-12-18_20-49-15.png

    The Spell Editor is also getting a pass which will add a new SpellCaster_Prepared type to the list of available caster types -- for use in the classes.txt in ManuallySpecified.

    The Prepared caster type uses a category system per class defined in the Rules for the specific game. This appears in the form of:


    Code:
    public static class Spell
      {
        public static final byte MAX_SPELL_LEVEL = 9;
        public static final byte KNOWN_SPELL_CATEGORIES = 2; // Cantrips & Non-Cantrips
       
        public static final byte MAX_DOMAIN_SPELLS = 10;
        public static final float DOMAIN_SPELL_RATE = 0.5f;
        public static final byte DOMAIN_SPELLS_PER_LEVEL = 2;
       
        // Note: Spell levels start at Zero so no reason to offset a check against this array
        public static final int[] OVERRIDE_DEBIT_SPELLS = {1,0,0,0,0,0,0,0,0};
       
        // on the fence about placing these in spell or creatureclass...
       
        public static final byte CANTRIPS = 0;
        public static final byte PREPARED = 1;
        public static final byte KNOWN = 2;
        public static final byte SPECIAL = 3;
       
        public static final String[] BARD_SPELL_TABS = { "Cantrips", "Spells Known" };
        public static final byte[] BARD_SPELL_UI     = { CANTRIPS, KNOWN };
       
        public static final String[] CLERIC_SPELL_TABS = { "Cantrips", "Spells Prepared", "Domain" };
        public static final byte[] CLERIC_SPELL_UI     = { CANTRIPS, PREPARED, SPECIAL };
       
        public static final String[] DRUID_SPELL_TABS = { "Cantrips", "Spells Prepared", "Circle" };
        public static final byte[] DRUID_SPELL_UI     = { CANTRIPS, PREPARED, SPECIAL };
    
        public static final String[] PALADIN_SPELL_TABS = { "Spells Prepared", "Oath" };   
        public static final byte[] PALADIN_SPELL_UI     = { PREPARED ,SPECIAL };
       
        public static final String[] RANGER_SPELL_TABS = { "Spells Known" };
        public static final byte[] RANGER_SPELL_UI     = { KNOWN };
       
        public static final String[] SORCERER_SPELL_TABS = { "Cantrips", "Spells Known" };
        public static final byte[] SORCERER_SPELL_UI     = { CANTRIPS, KNOWN };
       
        public static final String[] WARLOCK_SPELL_TABS = { "Cantrips", "Spells Known" };
        public static final byte[] WARLOCK_SPELL_UI     = { CANTRIPS, KNOWN };
       
        public static final String[] WIZARD_SPELL_TABS = { "Cantrips", "Spells Prepared", "Spells Known" };
        public static final byte[] WIZARD_SPELL_UI     = { CANTRIPS, PREPARED, KNOWN };
    
    The UI constant tells _Prepared what tabs to use for the given class and how to handle those spells. For instance Cantrips in 5e do not require spell slots to cast while Domain spells do.

    Additionally, knowing the source of the spells helps us define available spells for the Prepared tab such that Cantrips and Domain/Oath/Circle spells are removed from the available spells as they are automatically considered prepared based on the selections from their associated tabs, where applicable.

    Another aspect change is that we'll now be able to show a number of slots available for which will tick off as spells are added to the prepared list or cantrips -- domain/oath/circle spells are auto-populated.

    The Tabs constant lets us change the language for the tab and any in-line references to the tab topic.

    Finally, when the Prepared Spell Editor is committed, the list of prepared spells are returned as a single list rather than being separated as Domain and non-domain spells. The reason for this is that casting level and augmenting of casting level are integral to the 5e method of spell usage.

    After the creature prep side of the system is in place, the last step is to implement an augment menu to the Cast a Spell Decision. The concept here is to allow a would be caster to select a spell from the level sorted list of available spells, then decide if they want to use a higher level spell slot.

    If a feature library entry is set up for the spell in question, it will be able to apply any additional benefits supplied by the use of a higher level spell slot!

    I'll post more on the system as it develops. Needless to say, I implemented a few alternatives to this before coming to the current design/conclusion. Still lessons learned and all that!
     
  6. Krilion_GD

    Krilion_GD Community Manager
    Staff Member

    Joined:
    Aug 1, 2011
    Messages:
    1,167
    Likes Received:
    78
    Great work T. Some very reflective changes, that have been needed for a while.
     
  7. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    391
    Likes Received:
    125
    worth noting -- and keeping in perspective -- these changes use the Rules API and will initially roll out for 5e specifically. They'll get pushed for Pathfinder and 3.5 shortly after, but still use the Rules API meaning that if you want to create custom classes, you'll need to either mimic an existing classes spell config or add it to the Rules API.

    Rules API isn't available yet as a repo for folks who want to build in it. However, it should be shortly. Finishing 5e should help us complete the remaining/missing parts of the Rules class structure and layout.

    When it's ready we'll host a github repo for any dev folks interested in using/extending it.
     
    Elrand and Josh Scott like this.
  8. Tay-Dor

    Tay-Dor Active Member

    Joined:
    May 15, 2016
    Messages:
    239
    Likes Received:
    36
    Very cool!
     
  9. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    391
    Likes Received:
    125
    Hey all, I haven't posted here in awhile, but wanted to let you know we're still working hard to bring all the things to you and yours. Keep the faith and we'll have a big happy update in the near(ish) future!
     
    kinwolf and Tay-Dor like this.
  10. Jobsays

    Jobsays New Member

    Joined:
    Mar 16, 2017
    Messages:
    2
    Likes Received:
    0
    Keeping the faith here. Still using d20Pro VTT but have converted my game from 3.5 to 5e and looking forward to being able to use some of the advanced features reliant on 5e SRD implementation and HeroLab integration. Hoping you have lots of 5e customers asking besides me and they are not all Pathfinder or other game systems driving you development cycles :)
     
  11. owlbear

    owlbear Administrator
    Staff Member

    Joined:
    Sep 5, 2011
    Messages:
    391
    Likes Received:
    125
    So it's been a while and discord has certainly distracted me from posting here -- posting "live" is so quick by comparison! Post -> Code -> Post -> etc.

    So here's a quick bit of fun for those of you waiting on the full 5e kit.

    Dynamic AC's. In 5e you have base 10 + dex + stuff OR Natural armor + dex + stuff OR Armor + dex + stuff. So behold! And it updates in realtime as you enter stuff. These AC's are also fully targetable through the feature/rules engine so you can have armor which, when equipped sets the Armor field to the appropriate value!

    5e-ac.gif

    Okay, that's shiny. But wait, there's more (yeah, we've been stupid busy). So let's take this Undead dude as a sample.

    So we have an Undead creature which adds the various Undead traits shared by all Undead to the beastie right away -- cool.

    upload_2017-6-13_21-10-34.png

    But then we can select a specific undead from the variants to acquire all the traits, HD's and other goodies with a simple one-two!

    Not to mention the massive library of traits we're building out!

    upload_2017-6-13_21-11-51.png



    (for PF and 3.5 folks, we're doing this for PF first, then 3.5 but that's happening concurrently with 5e!)
     

Share This Page