Sagenlicht Beta: Draconic Feats and more

Discussion in 'General Modification' started by Sagenlicht, Nov 2, 2021.

Remove all ads!
  1. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    This thread contains my latest beta work for Temple+ I choose to make it public, so everyone can test the new features. Please keep in mind, that there can and most likely will be some bugs, but there should be no backbreaking things.

    I'll mark the latest additions with [NEW!]

    Features:
    • Replaced Barbarian Rage with a new Python Conditions, so new PrC's can interact with Rage
    • Replaced Stunning Fist with a new Python Condition, so new Feats can interact with it
    • New Base Class Marshal
    • New PrC's: Dragon Disciple, Battle Howler of Gruumsh, Fist of the Forest, Dragonheart Mage, Unseen Seer
    • New Condition Nauseated (a lot of non merged new spells can apply Nauseated) [NEW!]
    • New Feats (see below spoiler for complete list)
    • New Spells from the Spell Compendium and PHB II (see below spoiler for complete list)
    • Added three python classes for spells[NEW!]
      • SpellPythonModifier for standard spells
      • AoeSpellHandleModifier and AoESpellEffectModifier for persistent AoE Spells

    I've hidden the details behind spoiler tags to a) not generate a even larger wall of text and b) you can easily skip the parts you do not want to fiddle around with.

    I also give an expected Power Level note in each Class/PrC spoiler tag, so you are not disappointed if something isn't as powerful as expected :)

    • Breath Weapon Feats (for the Dragon Disicple and Dragon Shaman):
      • Extra Exhalation
      • Exhaled Immunity
    • Fey Heritage Feats:
      • Fey Heritage (required for all other fey feats)
      • Fey Legacy
      • Fey Power
      • Fey Presence
      • Fey Skin
    • Draconic Heritage Feats:
      • Draconic Heritage (required for all other fey feats)
      • Draconic Arcane Grace
      • DraconicArmor
      • Draconic Breath
      • Draconic Power
      • Draconic Presence
      • Draconic Resistance
      • Draconic Skin
      • Draconic Toughness
      • Draconic Vigor
    • Save related feats:
      • Insightful Reflexes
      • Force of Personality
      • Steadfast Determination
    • Bardic Feats:
      • Epic of the Lost King
    • Ranged Feats:
      • Zen Archery
    • Unarmed Feats:
      • Axiomatic Strike
      • Fiery Fist
      • Fiery Ki Defense
      • Fists of Iron
      • Flying Kick
      • Freezing the Lifeblod
      • Ki Blast
      • Shield Feats: [NEW!]
    • Shield Feats: [NEW!]
      • Active Shield Defense
      • Shield Charge
      • Shield Specialization
      • Shield Ward

    Newly added spells should support the new PrC's included in this Beta nicely.
    • Critical Strike
    • Improvisation
    • Inspirational Boost
    • Sniper's Shot
    • Sonic Weapon
    • War Cry
    • Cloud of Bewilderment
    • Item Enchantment spells [NEW!]
      • Sonic Weapon (should be fully working)
      • Dolorous Blow (should be fully working)
      • Align Weapon (no tooltip!)
      • Bless Weapon (no tooltip!)
      • Brambles (no tooltip!)
      • Deafening Clang (no tooltip!)
      • Lawful Sword (no tooltip!)
      • Shield of Warding (please do not use this spell, has contigency issues)
      • Spikes (no tooltip!)
      • Undead Bane Weapon (no tooltip!)
      • Weapon of Energy (no tooltip!)
    • Ironguts
    • Ray of Dizziness
    • Hunter's Eye (PHB II)
    • Sure Strike (PHB II)
    • Tactical Precision
    • New Warmage spells[NEW!]
      • All lesser orb spells (level 1)
      • All Orb spells (level 4)
      • Blades of Fire (also a Ranger and Sor/Wiz spell)
      • Fireburst (also a Sor/Wiz spell)
      • Greater Fireburst (also a Sor/Wiz spell)
      • Accuracy (only Warmage)
      • Hail of Stone (Warmage, Sor/Wiz)
      • Blast of Flame (Warmage, Sor/Wiz)
    • Distort Speech [NEW!]
    • Distract [NEW!]
    • Insidious Rhythm [NEW!]
    • Master's Touch [NEW!]
    • Distract Assailant [NEW!]
    • Lightfoot [NEW!]
    • Bonefiddle [NEW!]
    • Harmonic Chorus [NEW!]
    • Bladeweave [NEW!]
    • Fell the Greatest Foe [NEW!]
    • Veil of Shadow [NEW!]
    • Haunting Tune PSA: This might crash your game!!!! [NEW!]
    • Love's Lament [NEW!]
    • Wounding Whispers [NEW!]
    • Dirge of Discord [NEW!]
    • Resonating Bolt [NEW!]
    • Evards's Black Tentacles [PHB] [NEW!]
    • Phantom Foe [NEW!]
    • Phantom Threat [NEW!]
    • Acid Fog [PHB] [NEW!]
    • Wraithstrike [NEW!]
    • Find the Gap [NEW!]
    • Summon Undead I - V [NEW!]
    • Righteous Fury [NEW!]
    • Grace [NEW!]
    • Aid, Mass [NEW!]
    • Rhino's Rush [NEW!]

    The Python Conditions replace the Barbarian_Rage and Barbarian_Raged conditions. I noticed while doing the Battle Howler of Gruumsh that simply granting the Barbarian Class Feat is not enough as ToEE actually checks in the vanilla Radial if the character has the feat and barb levels, which is not automatically the case for PrC's that grant the Rage Feat. On the plus side you now can the see the charges in the radial.

    I also modified three existing conditions while replacing Rage:
    Extend Rage and Extra Rage both now work with the new Rage condition and I added more remove triggers to FatigueExhaustion, so they support class features that remove Fatigue like the Dragon Shaman or Feats like Epic of the Lost King.

    I have not tested the behavior of Greater Rage and Mighty Rage (it's on the ToDo list), but it should work.

    Known Issues: Barbarian Rage misses an anim_goal :( Yeah I looked at the ToEE function, but gave up about the anim_goal for now. Will need help with the anim_goal I guess.

    The Marshal Class uses a Workaround. As there is no way to mark a feat as a bonus feat only and class features is not implemented yet, the Marshal Class Auras need to be learned via the Radial Menu.

    Known Issue: Aura spell end is not clean. This has no effect on the playing experience.

    Expected Power Level: 1st Level high, but gets weaker every level compared to a Bard as Bards can cast spells.

    The class is not finished, Claw/Bite attack is missing and bonus spells per day are not fully working. If you do not want to have problems with the bonus spells, please limit you build in this beta to a single casting class, either a bard or a sorcerer. Bonus spell per day is skipped on first level atm.
    The Disciple has a experimental Fly ability. You cannot really fly, but you can ignore some ground effects like Grease. You cannot fly indoors. In theory, this could be expanded, Favored Soul, Dragon Shaman and Draconic Flight all would have access to fly. Please give some Feedback and ideas how this could be done.

    Expected Power Level: Due to the required Caster Splash Medium

    A personal fav of mine :) Now I can play a full Half Orc Party :)

    The Class is not fully implemented yet, War Cry is missing, and Howling Rage is not relevant atm, as ToEE allows you the use Bardic Music while raged. This might change in the future though, as I plan to redo BM and then I might block BM while raged. War Cry is scheduled to being done while I redo BM. Still the class works fine.

    Expected Power Level: Best melee Bard/Barbarian Combination as you can keep your caster levels.

    The class is pretty much finished, Untamed Strike is not fully implemented, I think the game handles incorpereal differently than D&D does. So that part is missing for now.

    Please be aware that I implemented all drawbacks from that class!!!! This means if you sleep inside a building you will eventually loose all class abilties. If you feral rage you will de-equipp gloves and boots.

    Known Issues:
    If you can Barbarian Rage and Feral Rage, please do it in that order or Feral Rage will not benefit from a longer duration atm.
    Like Barbarian Rage, Feral Rage currently has no anim_goal :(
    If you wear gloves and boots while feral raging, both will be unequipped, but you will only see the boots in the inventory until you actually try to requip them (or do anything else, that triggers a inventory_update signal). They are not lost. At least not when you re-equip them after combat, I have not tried what happens when you save&quit before you do that. Simply do no use Feral Rage or do not wear Gloves and Boots like a true animal!

    Expected Power Level: High

    All the class gets is bonus feats. On 1 you get Draconic Breath and afterwards you get a bonus Draconi Feat on levels 2,4 and 8. Basically this class gives you the opportunity to play a different sorcerer that concentrates on his "draconic" side.

    Expected Power Level: Lower than a normal sorcerer as she loses two caster levels, but different!

    I've sneaked in the Unseen Seer Prestige Class in the latest push :)
    Guarded Mind is not implemented, but that's not relevant for ToEE anyways :)

    Expected Power Level: Medium to High, it opens up a pretty neat rogue/wizard class combination. Please be aware, that you can enter the class via some unusual routes like Beguiler or Assassin

    As there is no Shield Bashing in the game currently, Shield Charge has its prereq changed to Shield Specialization instead of Improved Shield Bash. In addition, I modified the existing extender Total Defense to work with the new shield feats

    What's not in the beta currently? :(

    I ran out of time to polish the Dragon Shaman and due to this I also decided not to inclued the Draconic Auras (yeah I know no 4 Marshal auras for now).
    All Dragon Lineage Feats are missing. WiP atm
    Missing Draconic Feats: from the Complete Arcane: Claw, Flight and Legacy; from Dragon Magic: Draconic Senses; from Races of the Dragon: Persuasion
    All multiclass options are also missing:
    Dragonfire Assault (Power Attack), Dragonfire Channeling (Turn/Rebuke), Dragonfire Inspiration (Bardic Music), Dragonfire Strike (Sneak/Skirmish/Sudden Strike).

    If you want to give this a shot, please follow the link: https://ci.appveyor.com/project/templeplus/templeplus/builds/42730358/artifacts and download the first zip file.

    If you do, please give me some feedback :)
     
    Last edited: Feb 28, 2022
    Pygmy and August like this.
  2. August

    August Member

    Joined:
    Jun 28, 2006
    Messages:
    29
    Likes Received:
    5
    Shit. Well, there goes my Tuesday evening, I'm rolling a Marshal now.
     
  3. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,523
    Likes Received:
    433
    About eventId: have you checked out blackguard? Has aura of sespair effect.
    About constants.py: note that you can override that too, by using the same relative path.
    There might also be a way to monkey patch it, not 100% sure.
     
  4. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    I think I pretty much do the same as the Blackguard. The blackguard never needs to end the aura, so it stays active all the time. This is what I do atm with the Marshal and the Draconic Auras as well, but I guess I would prefer if I could end them, as the aura of the blackguard always does the same, Marshal and Draconic Auras can switch effects. Though if it's fine, the way I did it, that would be ok too then.
     
  5. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,523
    Likes Received:
    433
    Ah ok, i was going off your remark about destroying objects. So yeah it sounds like object_event_end API is needed. I take it no new persistent AoE spells have been added yet?
     
  6. August

    August Member

    Joined:
    Jun 28, 2006
    Messages:
    29
    Likes Received:
    5
    Sagenlicht doublecheck your copy-paste block, it's missing a # in the line "and below stat_level_marshal = 83:" :)
     
  7. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,523
    Likes Received:
    433
    BTW please no hacky workarounds for caster level / dc. If you just need something for testing, might as well use some constant value. I'll take a look why that happens. Can you provide a save with the proper setup for that?
     
  8. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Nope, I didn't merge any AoE spells into Temple+ yet, didn't consider them simple spells.

    The line shouldn't be added but yeah sorry, will add a # to avoid crashes

    Just to be clear, what do you consider hacky?

    a) Doing this in the pythonActionFrame?
    Code:
        spellPacket.caster_level = attachee.stat_level_get(classEnum)
        spellPacket.dc = 10 + attachee.stat_level_get(classEnum) + ((attachee.stat_level_get(stat_constitution)-10)/2)
        tpactions.register_spell_cast(spellPacket, newSpellId)
        tpactions.trigger_spell_effect(newSpellId)
    
    b) or this in the spell itself?
    Code:
        if spell.caster_level < 1:
            spell.caster_level = spell.caster.stat_level_get(stat_level_marshal)
    
    c) or both?
    I personally consider b) hacky, and I didn't switch the Marshal spells to solution a) (which I should have), but it could be easily switched. Anyways, the caster_level shouldn't be a huge problem, I guess the new class enums are just out of range somewhere.

    What can't be easily changed is the DC problem. The Dragon Breath does not use the normal DC formula (10 + spell level + caster atribute modifier), but instead either uses:

    Dragon Disciple: 10 + Dragon Disciple Level + Con Modifier
    Dragon Shaman: 10 + 1/2 Dragon Shaman level + Con Modifier
    Draconic Breath: 10 + spell slot level given up + Cha Modifier

    which means I do need to set the DC manually in the pythonActionFrame before executing the spell if I want to use a single spell for it. But the DC does not carry over to the spell.

    Attached is a save, ignore the half-orc.
    The blue haired elf can cast two different breath weapons (Dragon Disciple and Draconic Breath) and the
    Human can cast the Dragon Shaman Breath Weapon as well as activate all three auras (Draconic and both Marshal auras).

    EDIT: oh and yeah, if I could get object_event_end, I would rewrite alot of the Marshal and Draconic Aura stuff. Would be awesome :)
     

    Attached Files:

    Last edited: Nov 3, 2021
  9. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    620
    Likes Received:
    47
    Great work. I have encountered a small snag with the Marshal's Minor Aura Determined Caster; I cannot help noticing that the circumstance bonus is applied to every skill and every saving throw.
     
  10. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Wow, is this the only aura behaving strange? If yes I am bit puzzled, if not I messed up somewhere else :)
    Code:
    ### Marshal Minor Aura Determined Caster ###
    marshalMinorAuraDeterminedCaster= PythonModifier("Marshal Minor Aura Determined Caster", 5) #auraSpellId, auraEnum, auraEventId, empty, empty
    marshalMinorAuraDeterminedCaster.AddHook(ET_OnSpellResistanceCheckBonus, EK_NONE, auraAddBonusList, ())
    
    This is what the hook looks like.
     
  11. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    620
    Likes Received:
    47
    I have also tested Watchful eye, Over the Top, Motivate Wisdom and Motivate Strength using a 1st level Aasimar Marshal with 20 CHA and Improved Initiative but not much else. As you can see from Eberk's reflex save when using Motivate Strength, all five auras tested so far have behaved identically

    upload_2021-11-3_11-29-43.png
     
  12. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Ok, so I messed up somewhere else, sry about that. Will look into it asap.
     
  13. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    620
    Likes Received:
    47
    I haven't tested it yet but I notice that both draconic_resistance.py and draconic_toughness.py have draconicResistanceFeat at the start of their last three lines of code; might this be significant?
     
  14. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Yup copy paste error, thanks for finding that as well :)
    Though that won't fix the Minor auras.
     
  15. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    zip in first post has been updated, should be fixed now @Pygmy
     
Our Host!