Marshal Base Class

Discussion in 'General Modification' started by Sagenlicht, May 4, 2021 at 10:24 AM.

Remove all ads!
  1. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    119
    Likes Received:
    21
    TL;DR: Do not download! Seriously.

    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.

    Before I start with a "few" lines of text:
    I hooked the Loremaster PrC for the Marshal class, because I could not get it to work with new a ID. I added {83}{Marshal} to stat_ext.mes, added stat_level_marshal = 83 to the constants.py but when I tried to level up the Marshal in the game and hit finish, it did not level up. He got all the choices I selected(feats etc) but the class was not added and I could level up him again. Either I messed up somewhere or I missed something. I did not want to invest too much time when I do not know if its my fault or if temple+ needs to add it somewhere, so I decided to hook Loremaster. I will revert this as soon as I know how to fix it.

    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.

    Another problem I currently have and this is a showstopper for the Warlock class is the tpdp.RadialMenuEntryPythonAction.

    Code:
    def(py::init<std::string&, int, int, int, const char*>(), py::arg("radialText"), py::arg("action_type"), py::arg("action_id"), py::arg("data1"), py::arg("helpTopic"))
    I have not found a way to actually access the data1. I would need this for the Warlock, because my workaroud for the Marshal is not feasible for Warlock.

    My plan was to use the data 1 as the Enum field, only generate two python actions (one for minor and one for major auras) and in the pythonActionPerfrom read the Enum from data1. But it does not work.
    evt_obj.d20a.data1 returns actually the python action id and there is no data2 field :( Now maybe there is a way to already access it, I simply couldn't find it then.

    Why is this so important? I don't think creating a python action for every single invocation is the way to go. You can see in the Marshal class, that I basically created 21 empty python actions, that could be condensed down to two.

    In addition, in retrospect I should have done something different in the Marshal class. I decided to do the Auras a normal conditions not as a spell. I think this was a mistake, simply because I can't use d20_send_signal(S_Spell_End). You learn every day :) Alot of code is now a workaround to fix this.

    There is a high chance I will redo the class when I can use the data1 field and then I will switch this to using spells maybe.

    Ok so can I use the Marshal class? The answer is no, not in a regular game. Not until at least I do not need to hook the Loremaster anymore. Afterwards or for testing purpose? Yes. But I mainly uploaded this, so anyone has access to the code and I can get some feedback.

    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.
    Known Issues:
    No particle effects at all. Sorry guys, but for testing it's faster without. Will add them for the release.
    When Marshal is dead auras do not stop immediately (see spell_end signal). They will stop at the beginning of next combat round.
    Feat selection (see above)

    Maybe a last word about the code. The code looks different in some areas than you might be used to for my code. I actually did write a script for my spells, at least 90% of a spell is automatically generated. This is ofc not true for a class, so I try to keep the code generic as much as possible so I can copy paste most of it.

    But Sagenlicht, is the Marshal not simply a bad bard? Yes and no. The Marshal is what I call a "typical Pathfinder class". The Marshal is incredible frontloaded, making it very appealing to "splash" it if your class has Charisma as a main stat (e.g. Paladin)
     

    Attached Files:

    anatoliy likes this.
  2. _doug_

    _doug_ Established Member

    Joined:
    Jul 9, 2009
    Messages:
    215
    Likes Received:
    72
    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:
    119
    Likes Received:
    21
    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:
    649
    Likes Received:
    54
    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:
    215
    Likes Received:
    72
    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! :)
     
Our Host!