Sagenlicht Beta: Draconic Feats and more

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

Remove all ads!
  1. sigofmugmort

    sigofmugmort Established Member Supporter

    Joined:
    Aug 18, 2015
    Messages:
    328
    Likes Received:
    66
    What about the Dragon Samurai class?
     
  2. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    At the moment, I actually can't add anything more to Temple+ as I (and I actually think maybe @_doug_ as well without noticing it) busted the condition limit. :(

    When Pygmy reported the issue I started to look how much I actually need to remove and nocied that the my Beta already cuts off alot of conditions (Sudden Enlarge is the cutoff point at the moment, when you head into the scr/tpmodifier) folder. This is without any non merged spells from me, which means chances are actually pretty high, Doug my have also cutoffs already.

    Easiest way to (at least to my knowledge) verify if you have cutoffs is to open the game and use the dm console. Open up the modifier section of any party member and try to add a new condition. Browse to the bottom (that's wizard) and browse up until you find the first condition from tpModifiers and cross check with the last condition in that folder.

    Once that is fixed I gladly add more stuff to Temple+ I considered adding the Samurai Base Class already, so is the Dragon Samurai class much different?

    *Fingers crossed* that @Sitra Achara finds some time to fix this :)

    EDIT: found the class, its actually a prestice class from the WoTC website:
    http://archive.wizards.com/default.asp?x=dnd/ex/20030906c
    Would be fitting to the other Breath Weapon related implementations I did :)
     
    Last edited: Dec 20, 2021
  3. sigofmugmort

    sigofmugmort Established Member Supporter

    Joined:
    Aug 18, 2015
    Messages:
    328
    Likes Received:
    66
    OOPS, Forgot to mention It's A Miniatures handbook Prestige class
     
  4. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    Got a couple days off so looking into this now...
    At least in the Dragon Disciple branch, there are currently about 930 conditions, so it shouldn't impact the next release at least (or previous ones for that matter).

    I've also noticed that Power Critical is very wasteful in this regard - instead of using an arg for weapon type like the other weapon feats, it spawns a new condition for each one. Naughty @_doug_! It's too late to change now since it may be used in existing savegames already, but for future reference please do not do this.

    I haven't seen any issues when raising the capacity to 2023, but I'll keep it at 1000 for the next release. You should be able to increase it in your branch easily now (make sure to merge from Dragon Disciple branch)
     
    anatoliy and Sagenlicht like this.
  5. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    I think if you don't use reflex_save_and_damage it will bypass stuff that operates on reflex throws, e.g. Evasion/Improved Evasion. So you should probably check your spells for that.

    It should be easy to fix reflex_save_and_damage to add the spell descriptor stuff however.
     
  6. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Oh Sitra you're the best!

    I've merged the DD into the Sagenlicht Beta tree and here you go, now the overflow is logged :)

    Code:
    [2021-12-22 12:39:41.918] [core] [error] Condition hashtable over capacity (1000)! Trying to add Sudden Extend Feat
    [2021-12-22 12:39:41.926] [core] [info] Python: Registering Sudden Maximize
    [2021-12-22 12:39:41.926] [core] [info] Python:
    [2021-12-22 12:39:41.926] [core] [error] Condition hashtable over capacity (1000)! Trying to add Sudden Maximize Feat
    [2021-12-22 12:39:41.934] [core] [info] Python: Registering Sudden Quicken
    [2021-12-22 12:39:41.934] [core] [info] Python:
    [2021-12-22 12:39:41.934] [core] [error] Condition hashtable over capacity (1000)! Trying to add Sudden Quicken Feat
    [2021-12-22 12:39:41.942] [core] [info] Python: Registering Sudden Silent
    [2021-12-22 12:39:41.942] [core] [info] Python:
    [2021-12-22 12:39:41.942] [core] [error] Condition hashtable over capacity (1000)! Trying to add Sudden Silent Feat
    [2021-12-22 12:39:41.950] [core] [info] Python: Registering Sudden Still
    [2021-12-22 12:39:41.950] [core] [info] Python:
    [2021-12-22 12:39:41.950] [core] [error] Condition hashtable over capacity (1000)! Trying to add Sudden Still Feat
    [2021-12-22 12:39:41.958] [core] [info] Python: Registering Sudden Widen
    [2021-12-22 12:39:41.958] [core] [info] Python:
    [2021-12-22 12:39:41.958] [core] [error] Condition hashtable over capacity (1000)! Trying to add Sudden Widen Feat
    [2021-12-22 12:39:41.976] [core] [info] Python: Registering race: Svirfneblin
    [2021-12-22 12:39:41.976] [core] [info] Python:
    [2021-12-22 12:39:41.976] [core] [error] Condition hashtable over capacity (1000)! Trying to add Svirfneblin
    [2021-12-22 12:39:41.985] [core] [info] Python: Registering Swashbuckler
    [2021-12-22 12:39:41.985] [core] [info] Python:
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Grace
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Insightful Strike
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Dodge
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Acrobatic Charge
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Improved Flanking
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Lucky
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Acrobatic Skill Mastery
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Weakening Critical
    [2021-12-22 12:39:42.005] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swashbuckler Wounding Critical
    [2021-12-22 12:39:42.013] [core] [info] Python: Registering Swift Ambusher
    [2021-12-22 12:39:42.013] [core] [info] Python:
    [2021-12-22 12:39:42.013] [core] [error] Condition hashtable over capacity (1000)! Trying to add Swift Ambusher
    [2021-12-22 12:39:42.030] [core] [info] Python: Registering race: Tallfellow (Halfling)
    [2021-12-22 12:39:42.030] [core] [info] Python:
    [2021-12-22 12:39:42.030] [core] [error] Condition hashtable over capacity (1000)! Trying to add Tallfellow
    [2021-12-22 12:39:42.037] [core] [info] Python: Registering Telling Blow
    [2021-12-22 12:39:42.038] [core] [info] Python:
    [2021-12-22 12:39:42.038] [core] [error] Condition hashtable over capacity (1000)! Trying to add Telling Blow
    [2021-12-22 12:39:42.055] [core] [error] Condition hashtable over capacity (1000)! Trying to add Tiefling
    [2021-12-22 12:39:42.063] [core] [info] Python: Registering Total Defense extender
    [2021-12-22 12:39:42.063] [core] [info] Python:
    [2021-12-22 12:39:42.071] [core] [info] Python: Registering Tripping Bite
    [2021-12-22 12:39:42.071] [core] [info] Python:
    [2021-12-22 12:39:42.071] [core] [error] Condition hashtable over capacity (1000)! Trying to add Tripping Bite
    [2021-12-22 12:39:42.088] [core] [info] Python: Registering race: Troll
    [2021-12-22 12:39:42.088] [core] [info] Python:
    [2021-12-22 12:39:42.088] [core] [error] Condition hashtable over capacity (1000)! Trying to add Troll
    [2021-12-22 12:39:42.095] [core] [info] Python: Registering Turn Undead extender
    [2021-12-22 12:39:42.096] [core] [info] Python:
    [2021-12-22 12:39:42.104] [core] [info] Python: Registering Two-Weapon Rend
    [2021-12-22 12:39:42.104] [core] [info] Python:
    [2021-12-22 12:39:42.104] [core] [error] Condition hashtable over capacity (1000)! Trying to add Two-Weapon Rend
    [2021-12-22 12:39:42.121] [core] [info] Python: Registering Unseen Seer
    [2021-12-22 12:39:42.121] [core] [info] Python:
    [2021-12-22 12:39:42.142] [core] [error] Condition hashtable over capacity (1000)! Trying to add Unseen Seer
    [2021-12-22 12:39:42.143] [core] [error] Condition hashtable over capacity (1000)! Trying to add Unseen Seer Spellcasting
    [2021-12-22 12:39:42.151] [core] [info] Python: Registering Versatile Unarmed Strike
    [2021-12-22 12:39:42.151] [core] [info] Python:
    [2021-12-22 12:39:42.151] [core] [error] Condition hashtable over capacity (1000)! Trying to add Versatile Unarmed Strike Feat
    [2021-12-22 12:39:42.151] [core] [error] Condition hashtable over capacity (1000)! Trying to add Versatile Unarmed Strike
    [2021-12-22 12:39:42.159] [core] [info] Python: Registering Vexing Flanker
    [2021-12-22 12:39:42.159] [core] [info] Python:
    [2021-12-22 12:39:42.159] [core] [error] Condition hashtable over capacity (1000)! Trying to add Vexing Flanker Feat
    [2021-12-22 12:39:42.168] [core] [info] Python: Registering Warmage
    [2021-12-22 12:39:42.168] [core] [info] Python:
    [2021-12-22 12:39:42.183] [core] [error] Condition hashtable over capacity (1000)! Trying to add Warmage
    [2021-12-22 12:39:42.183] [core] [error] Condition hashtable over capacity (1000)! Trying to add Light Shield Proficiency
    [2021-12-22 12:39:42.183] [core] [error] Condition hashtable over capacity (1000)! Trying to add Warmage Edge
    [2021-12-22 12:39:42.183] [core] [error] Condition hashtable over capacity (1000)! Trying to add Warmage Edge Damage
    [2021-12-22 12:39:42.183] [core] [error] Condition hashtable over capacity (1000)! Trying to add Warmage Armored Mage
    [2021-12-22 12:39:42.191] [core] [info] Python: Adding Berserker Weapon
    [2021-12-22 12:39:42.191] [core] [info] Python:
    [2021-12-22 12:39:42.191] [core] [error] Condition hashtable over capacity (1000)! Trying to add Weapon Berserker
    [2021-12-22 12:39:42.225] [core] [info] Python: Adding Hunting Weapon
    [2021-12-22 12:39:42.225] [core] [info] Python:
    [2021-12-22 12:39:42.225] [core] [error] Condition hashtable over capacity (1000)! Trying to add Weapon Hunting
    [2021-12-22 12:39:42.232] [core] [info] Python: Adding Precise Weapon
    [2021-12-22 12:39:42.232] [core] [info] Python:
    [2021-12-22 12:39:42.233] [core] [error] Condition hashtable over capacity (1000)! Trying to add Weapon Precise
    [2021-12-22 12:39:42.241] [core] [info] Python: Adding Warning Weapon
    [2021-12-22 12:39:42.241] [core] [info] Python:
    [2021-12-22 12:39:42.241] [core] [error] Condition hashtable over capacity (1000)! Trying to add Weapon Warning
    [2021-12-22 12:39:42.258] [core] [info] Python: Registering race: Wild Elf
    [2021-12-22 12:39:42.258] [core] [info] Python:
    [2021-12-22 12:39:42.258] [core] [error] Condition hashtable over capacity (1000)! Trying to add Wild Elf
    [2021-12-22 12:39:42.266] [core] [info] Python: Registering wildshape extender
    [2021-12-22 12:39:42.266] [core] [info] Python:
    [2021-12-22 12:39:42.275] [core] [info] Python: Registering Wizard Spellcasting
    [2021-12-22 12:39:42.275] [core] [info] Python:
    [2021-12-22 12:39:42.303] [core] [info] Python: Registering Wolverine's Rage
    [2021-12-22 12:39:42.303] [core] [info] Python:
    [2021-12-22 12:39:42.303] [core] [error] Condition hashtable over capacity (1000)! Trying to add Wolverine Rage Feat
    [2021-12-22 12:39:42.303] [core] [error] Condition hashtable over capacity (1000)! Trying to add Wolverine Rage Effect
    [2021-12-22 12:39:42.321] [core] [info] Python: Registering race: Wood Elf
    [2021-12-22 12:39:42.321] [core] [info] Python:
    [2021-12-22 12:39:42.321] [core] [error] Condition hashtable over capacity (1000)! Trying to add Wood Elf
    [2021-12-22 12:39:42.329] [core] [info] Python: Registering Zen Archery
    [2021-12-22 12:39:42.329] [core] [info] Python:
    [2021-12-22 12:39:42.329] [core] [error] Condition hashtable over capacity (1000)! Trying to add Zen Archery Feat
    [2021-12-22 12:39:42.329] [core] [info] Python: tpModifiers import finished
    How do you want me to raise it for testing purpose?
    Increase VANILLA_COND_CAP or create a new one like
    const int INCREASED_COND_CAP = 1500 and return that one?
     
  7. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    Yeah, the 2nd option. You can up it to 2047 since internally it'll round up to the next closest power of 2 anyway.
     
  8. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    Should be fixed now.
     
    anatoliy likes this.
  9. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    First tests confirm this, ty :)

    @Pygmy, @August and anyone else interested in testing around a bit. I did push a new Sagenlicht_Beta. This version contains all fixes from Sitra above, which means no condition is lost anymore :)

    In addition to the above changes in the Beta, I also sneaked in a new PrC, the Unseen Seer :) and a few spells, that go along nicely with the Battle Howler and the Unseen Seer from the Spell Compendium-

    I've updated the first post, so you can easily find the all beta content in one post.

    You can grab the latest beta (3271) here: https://ci.appveyor.com/project/templeplus/templeplus/builds/41983570/artifacts

    If you have an old Sagenlicht_Beta folder in your overrides, please remove it.

    Enjoy and please report any bugs you find :)
     
    Last edited: Dec 22, 2021
    Pygmy likes this.
  10. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,613
    Likes Received:
    537
    So, about natural attacks for Dragon Disciple (or any other class/effect it may concern):
    @anatoliy mentioned over at Github that currently in ToEE you cannot mix natural attacks and weapon attacks. I thought it was a minor issue at first, since they seemed like meh compared to proper magical weapons, but I only just realized you are supposed to be able to use them as extra secondary attacks.

    For example, a DD using a single-handed weapon and making a Full Attack at BAB 6 should get 4 attacks:
    Weapon +6 / Weapon +1 / Bite +1 / Claw +1

    Also, a character using unarmed attacks (e.g. Monk) should even be able to utilize both claws in addition to the unarmed strikes (since unarmed attacks could use any body part, not just hands; conveniently, DD Monks all practice Tae Kwon-Do).

    I don't see much of a point adding the natural attacks without supporting this, so I'll see if I can properly straighten it out (while also respecting all the existing monsters).

    Just to make sure I haven't missed anything, can I get a confirmation that's how it should work? Are there any additional nuances that I should be aware of in that respect?
    One hairy issue that comes to mind is stacking natural attacks from multiple sources; e.g. a Troll Dragon Disciple should not get 2 bites and 4 claws, heh. So I guess it shouldn't stack, going by attack type, unless it is specifically stated that it does (e.g. if some effect explicitly grants a new appendage).

    Some references:
    https://taking10.blogspot.com/2016/03/natural-attacks-can-turn-your.html
    https://forums.giantitp.com/showthr...actured-Weapon-Attacks-With-Iterative-Attacks
    https://www.d20srd.org/srd/prestigeClasses/dragonDisciple.htm

    BTW IMO the various Dragon Disciple topics deserve a topic of their own, this thread is busy enough as it is. (and here I thought it would be straightforward to implement...)
     
    anatoliy likes this.
  11. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    674
    Likes Received:
    71
    @Sagenlicht as 'copying is the sincerest form of flattery' I have combined your fantastic work in the Battle Howler with @Doug's fantastic work on the Fochlucan Lyrist to transpose most of the Green Whisperer (also from Dragon 311) to the equivalent position you have published for the Battle Howler - that is "Sooth the Savage Beast" and "Green Ear" are as yet undone. I believe every party will want access to Green Ear when they meet Zuggtmoy's fungi.

    Although the Fochlucan Lyrist is probably my favourite PRC, the Green Whisperer (if allowed) is essential for all the best Lyrist builds

    As you can see, I have used 110 for my own implementation (attached below) but if you are interested in the class I can change to whatever number you suggest.

    incidentally, I had to adjust
    elif classLvl >= 5:
    return 0

    to

    elif classLvl > 5:
    return 0

    in order to complete the Green Whisperer level 5 levelup and suspect the same may be necessary with Battle Howler as I lifted the code from there.
     

    Attached Files:

  12. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    674
    Likes Received:
    71
    Merry Christmas everybody. Having tested Fascinate/Suggestion on an Ochre Jelly I can confirm that all bards, incorrectly, have the Green Ear ability
     
  13. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    674
    Likes Received:
    71
    The DR x/cold associated with Fey Skin appears to be an elemental resistance and as such provides no protection against beer (unlike other armour type damage resistances). In the absence of cold iron I have replaced DR x/cold iron with DR x/mithril
     
  14. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Fey Skin actually adds Cold Iron DR, D20DAP_COLD is actually Cold Iron. I discussed this already a couple of times. It seems that D20DAP_COLD wasn't completly implemented (a demon has actually this DR) and should be called D20DAP_COLD_IRON and in the .mes file as well. I know this is confusing. Take a look at the the D20DAP and D20DT types:

    D20DAP_NORMAL = 0x0
    D20DAP_UNSPECIFIED = 0x1
    D20DAP_SILVER = 0x2
    D20DAP_MAGIC = 0x4
    D20DAP_HOLY = 0x8
    D20DAP_UNHOLY = 0x10
    D20DAP_CHAOS = 0x20
    D20DAP_LAW = 0x40
    D20DAP_ADAMANTIUM = 0x80
    D20DAP_BLUDGEONING = 0x100
    D20DAP_PIERCING = 0x200
    D20DAP_SLASHING = 0x400
    D20DAP_MITHRIL = 0x800
    D20DAP_COLD = 0x1000
    D20DAP has no elemental types, it is meant to have the DR breaking types. This is the reason why they are not simply integers as you can have mutliple DR breaking properties on one weapon (like holy + adamantine).

    D20DT_UNSPECIFIED = -1
    D20DT_BLUDGEONING = 0
    D20DT_PIERCING = 1
    D20DT_SLASHING = 2
    D20DT_BLUDGEONING_AND_PIERCING = 3
    D20DT_PIERCING_AND_SLASHING = 4
    D20DT_SLASHING_AND_BLUDGEONING = 5
    D20DT_SLASHING_AND_BLUDGEONING_AND_PIERCING = 6
    D20DT_ACID = 7
    D20DT_COLD = 8
    D20DT_ELECTRICITY = 9
    D20DT_FIRE = 10
    D20DT_SONIC = 11
    D20DT_NEGATIVE_ENERGY = 12
    D20DT_SUBDUAL = 13
    D20DT_POISON = 14
    D20DT_POSITIVE_ENERGY = 15
    D20DT_FORCE = 16
    D20DT_BLOOD_LOSS = 17
    D20DT_MAGIC = 18
    D20DT contains damage types for weapons and spells like all elemental types, including D20DT_COLD for cold/water

    Yes, there are currently no DR/Cold Iron breaking weapons in the game and this means if your character has DR Cold Iron it is the same as DR/- but I hope modders will add cold iron weapons to the game. This is actually a pretty important thing to note, as for example the Warlock class also would get Cold Iron DR.

    You may ofc keep your local change Pygmy, but it is not a bug on my end :)
     
    Last edited: Dec 28, 2021
  15. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Sorry for my late reply Sita, kids holidays :)

    Yeah, your approach would be great, I actually added the Fist of the Forest in my last Beta, that would get while Feral Tranced an extra bite attack if she is doing a full attack, also a Draconic Feat would allow you to make a claw attack when you cast a spell. So if extra natural attacks could be triggered this would open up things for me.

    I think you summarized the topic pretty well, I have nothing to add :)

    EDIT: The Fist of the Forest would get the attack at her highest bonus though: https://srd.dndtools.org/srd/classes/prestigeCChamp/fistOfTheForest.html
     
    Last edited: Dec 28, 2021
Our Host!