Marshal Base Class

Discussion in 'General Modification' started by Sagenlicht, May 4, 2021.

Remove all ads!
  1. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    TL;DR: The attached version of the Marshal Class requires a beta version of Temple+. I have tested it with version 2585, though any version that includes Sitra's update to the data1 field in python actions will do.

    Attached you find my work on the Marshal Base Class from the Miniatures Handbook. The class is available online for free on the WotC page: http://archive.wizards.com/default.asp?x=dnd/ex/20030906b

    Due to "unknown" reasons I bought the PHBII pdf :rolleyes: and replaced the Grant Move Action from the class with the PHBII class option Adrenaline Boost, simply because it's easier to implement. I may visit this later on and see if I can do the Grant Move Action as well, but this was not the goal of the work for now.

    Why did I do the Marshal in the first place? Because its requirements are similar to the Warlocks', which is a class I want to do next, but will be very time consuming. So I decided to do the Marshal and use the experience for the warlock. So what do both classes have in common? Both can choose bonus abilities from a list, that is neither a spell or a feat. In case of the Warlock it's the Invocation List, the Marshal has auras. This is not really supported by ToEE, there is no array where I can add them properly to. At least I am not aware of one.

    But you can add them as feats right? Yeah this is what I've done for the Marshal class, it works with some MAJOR drawbacks:
    • I do not have a exclusive list of those auras, I do need to filter the feats list.
    • When you level up you can choose the feat as a normal feat, if you can choose from the bonus list as well. I would need an exclusive bonus feat flag and some code in temple+ to avoid this. You can see this behaviour easily when you levelup the Marshal in the game. The feats are only listed when you can also choose a bonus feat, but then you can choose it as a normal feat as well.
    In addition to the above problems a class can only grant one bonus feat (at least that's how I think the code works) which means if the class can choose more than once from a list or from two lists like Marshal I can't do this in ToEE. This is not a problem for the Warlock class and it is not worth to change this for only one class, so I decided to move some aura selections to later levels to avoid a double grant (I did move minor aura selections from 5, 7, 9 to 6, 8, 10 because 5 and 9 would be double extra feat). If this is ever possible I will change it back.

    The class itself is fully working, I also did a help file, though it has the same problem as the Stormlord, the basic class description is not finished.

    I did not have the time to test all auras yet, there might be non functional auras due to this. If so, please report :)

    Known Issues:
    • No particle effects at all. Sorry guys, but for testing it's faster without. Will add them for the release.
    • Feat selection (see above)

    The attached version of the Marshal Class requires a beta version of Temple+. I have tested it with version 2585, though any version that includes Sitra's update to the data1 field in python actions will do.
     
    Last edited: May 26, 2021
    anatoliy likes this.
  2. _doug_

    _doug_ Established Member

    Joined:
    Jul 9, 2009
    Messages:
    290
    Likes Received:
    117
    Very nice. I had thought about adding the marshall myself. Adding the class enum for marshall is super easy. I'll do that soon. I would like to look at some of the other issues you ran into but I may not have time for that right away.
     
  3. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Can you explain what I did mess up while setup up the Marshal as class 083? I feel a bit dumb bout this :)
     
  4. Endarire

    Endarire Ronald Rynnwrathi

    Joined:
    Jan 7, 2004
    Messages:
    953
    Likes Received:
    112
    Note that Marshal auras include Draconic Auras as mentioned here.
    upload_2021-5-4_13-40-19.png

    Thus, a marshal Draconic Aura is also considered a Major Aura (assumedly for all purposes). The effects of auras don't stack: Only the highest benefit applies.

    Note that the Player's Handbook II Dragon Shaman class has a list of Draconic Auras available to anyone who takes a Draconic Aura. These are mostly the same as the ones from Dragon Magic, but here's a full list of the Draconic Auras from these sources. All auras are from Dragon Magic and are meant for any class, unless they're from the Player's Handbook II and meant for Dragon Shamans but obtainable by anyone who learns a Draconic Aura. If a non-Dragon Shaman takes a Dragon Shaman aura, I assume they choose what energy type (acid, cold, electricity, or fire) the aura's effect has: See the Energy aura below for an example.

    Energy: This aura grants you a bonus on the save DC for your acid, cold, electricity, or fire effects; choose one type when you gain the aura. (A dragon shaman must choose the energy type associated with his totem dragon; see page 13 of Player's Handbook II). The bonus applies to spells, powers, spell-like abilities, supernatural abilities, or any other ability that either has the appropriate descriptor or deals damage of
    the chosen type.

    Energy Shield (PHBII): Any creature striking you or your ally with a natural attack or a nonreach melee weapon is dealt 2 points of energy damage for each point of your aura bonus. The energy type is that of your totem dragon’s damage-dealing breath weapon (see below).

    Insight: This aura grants you a bonus on Decipher Script, Knowledge, and Spellcraft checks.

    Power (Please rename to "Penetration"): This aura grants you a bonus on caster level checks made to overcome spell resistance (and manifester level checks made to overcome power resistance).

    Power (PHBII - Please rename to "Melee Prowess"): Bonus on melee damage rolls equal to your aura bonus.

    Presence: This aura grants you a bonus on Bluff, Diplomacy, and Intimidate checks.

    Resistance: This aura grants you resistance to acid, cold, electricity, or fire (choose one when you gain the aura) equal
    to 5 × your bonus. (A dragon shaman must choose the energy type associated with his totem dragon; see page 13 of Player's
    Handbook II).

    Resistance (Please rename to Energy Resistance): Resistance to your totem dragon’s energy type equal to 5 × your aura bonus.

    Resolve: This aura grants you a bonus on Concentration checks and on saves against fear, paralysis, and sleep effects.

    Senses: This aura grants you a bonus on Listen checks, Spot checks, and initiative checks. (One of my favorites!)

    Stamina: This aura grants you a bonus on Constitution checks (but not Constitution-based skill checks) and Fortitude saves.

    Swiftness: This aura grants you a bonus on Climb, Jump, and Swim checks. It also increases your climb, fly, and swim speeds by 5 × your bonus. (The aura doesn't grant you a fly or swim speed it you don't already have one.)

    Toughness: This aura grants you damage reduction 1/magic for each point of your bonus.

    Vigor (PHBII): Fast healing 1 for each point of your aura bonus, but only affects characters at or below one-half their full normal hit points. (My favorite Draconic Aura in tabletop due to saving resources via passive, long-term healing!)
     

    Attached Files:

  5. _doug_

    _doug_ Established Member

    Joined:
    Jul 9, 2009
    Messages:
    290
    Likes Received:
    117
    I am not sure about the problem. I haven't had time to look at it yet. I just figured adding a new enum for marshall should make it go away! :)
     
  6. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    While discuss8ng the Warlock with Sagenlicht, we decided on using spells for invocatuons after all.
    I was thinking of flagging them as Spell Like Abilities (no meta magic allowed) with At Will property (i.e. no usage limit). There's also the cosmetic effect of them being classified by name rather than spell level.

    So I was wondering if other classes might need similar special casing for spells / SLAs. Do you know of any? I'd prefer to add functuonality that can be generalized to other classes, assuming it's not too complicated.
     
    anatoliy likes this.
  7. anatoliy

    anatoliy Established Member

    Joined:
    Feb 18, 2017
    Messages:
    635
    Likes Received:
    200
    My first thought was Tome of Battle obviously. It has quite a lot of martial maneuver categorized by power type: stance, strike and boost, also they have levels.

    They are either Ex or Su technically.
     
  8. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    I just tried again, I can't get the Marshal to work when I do not hook an existing class.
    @Sitra Achara
    What do I have to do to get a new class working, that isn't already created by temple+ (like the Marshal)? Here is what I did:
    • added {83}{Marhsal} and {1083}{Mrshl} and {13076}Marshal{description} in the stat_ext.mes
    • modified my local constants.py and added stat_level_marshal = 83
    • created both the class083_marshal.py as well as the marhsal.py in their directories
    But when I try to level up a character in the game with the new class it actually doesn't finish the process. It all works fine when I hijack the loremaster. Everything I mentioned above is the same, I just replace the loremaster with my new class.
    Obviously I need to add the new enum somewhere else too, but where?
     
  9. Endarire

    Endarire Ronald Rynnwrathi

    Joined:
    Jan 7, 2004
    Messages:
    953
    Likes Received:
    112
    @Sitra Achara
    By the rules as written, SLAs are effected by metamagic that specifically affects SLAs: Quicken SLA, Empower SLA, Maximize SLA, etc. These SLA metamagics require a specific caster level (not spell level) to use.

    Warlock invocations and Dragonfire Adept invocations use a similar system: All invocations are SLAs that come in 4 grades (least, lesser, greater, and dark) and all have a spell-level equivalent (like level 1 for Eldritch Blast - see errata) but aren't spells.

    A Factotum's spells are prepared as spells with spell-based metamagic, but cast as SLAs. A Spellthief can steal spells and cast them as spells then later steal SLAs and cast them as SLAs.

    Tome of Battle's base classes (martial adepts AKA initiators) have maneuvers and stances. These have levels (1-9) and require specific actions to initiate. Unlike spells, stances are usable at will and maneuvers can be recharged throughout the day, even mid-battle. Each maneuver's refresh mechanic depends on the class that readied this maneuver (Crusader, Swordsage, Warblade), and by RAW, only one class may know a maneuver at a time. (Thus, a Crusader/Warblade can only know Stone Bones as a Warblade maneuver or as a Crusader maneuver.) All maneuvers are (Ex) or (Su). Tome of Magic has various metamagic feats for supernatural abilities: Empower, Maximize, etc. but nothing for (Ex).
     
    Last edited: May 7, 2021
    anatoliy likes this.
  10. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    No idea. It should work, as far as I know the important thing is to have the classXXX.py file. It's probably something dumb, but I have no way to tell without looking at logs or the files myself.

    Edit: oh, you did attach the files here, my bad. I'll take a look.
     
  11. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    Oh btw. I recommend doing the aura feats as a multi-choice, I hate seeing spam in the feat list. Once again Favored Soul should have examples.
     
  12. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    Alright, found the issue. This also reminds me why back in the day I asked for a list of desired classes to be added since the stat enums have some hard coding in the engine.
    Basically it needs to be added in d20Stats.cpp, in the big switch case function:
    StatType D20StatsSystem::GetType(Stat stat)

    I should probably add a catch-all for everything up to 127 (the limit, BTW).
     
    Sagenlicht and anatoliy like this.
  13. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    I originally had done it that way and then changed it to seperate feats :oops: Will switch it back :).
     
  14. _doug_

    _doug_ Established Member

    Joined:
    Jul 9, 2009
    Messages:
    290
    Likes Received:
    117
    That was the enum I was referring to in my previous post. Sorry I hadn't gotten around to adding it yet.
     
  15. Endarire

    Endarire Ronald Rynnwrathi

    Joined:
    Jan 7, 2004
    Messages:
    953
    Likes Received:
    112
    @Sagenlicht
    Is this Marshal class still scheduled to be finished and publicly available soon?
     
Our Host!