Stormlord PrC

Discussion in 'General Modification' started by Sagenlicht, Apr 30, 2021.

Remove all ads!
  1. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Hey @Pygmy, thanks for your Feedback :)

    Just to be sure, that I understand your post correctly.

    You tried to take your first level of Stormlord(your modified version) at level 6 and you did already fulfill all requirements (feats, alignment, spell levels) and you weren't able to take the level.

    But after you did add the feat (again?) with the dm console you could take it?
     
  2. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,627
    Likes Received:
    538
  3. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    My bad :( will fix it today evening.
     
    Pygmy likes this.
  4. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Fix is pushed.

    @Pygmy, here is the fix, so you can use it locally for your version.

    Code:
    def ObjMeetsPrereqs( obj ):
        requiredFeats = [feat_weapon_focus_halfspear, feat_weapon_focus_shortspear, feat_weapon_focus_longspear, feat_weapon_focus_javelin]
        if obj.divine_spell_level_can_cast() < 3:
            return 0
        elif obj.stat_level_get(stat_save_fortitude) < 4:
            return 0
    #    elif not obj.has_feat(feat_endurance): #not in the game currently
    #        return 0
        elif not obj.has_feat(feat_great_fortitude):
            return 0
        elif not any(obj.has_feat(feat) for feat in requiredFeats):
            return 0
        return 1
     
    Pygmy likes this.
  5. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    766
    Likes Received:
    83
    Thanks all working perfectly now. I must say shocking morningstar looks rather like a van der Graaff generator (not rock band with one f).
     
  6. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,627
    Likes Received:
    538
    Hmm, speaking of erythul. Do you think the weapon proficiency should be generally altered so it matches the patron deity? (Being that there is no Talos in ToWE)
     
  7. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    I had simar thoughts as well Sitra. I am just unsure to what Deity it should be adapted as there is not a 100% fitting one.
    I fully agree that if it gets adopted to a different deity, it should match its fav weapon.
     
  8. Endarire

    Endarire Ronald Rynnwrathi

    Joined:
    Jan 7, 2004
    Messages:
    987
    Likes Received:
    122
    What about making a new deity?
     
  9. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,627
    Likes Received:
    538
    I was thinking of automatically adapting the requirements (and benefits?) to your character's deity for maximum flexibility. You can get that info from the engine IIRC, see Favored Soul.
     
  10. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Just to be sure we are on the same page, keep the alignment restrictions (CE, CN, NE) and then open it for all deities tha qualifiy for those alignments (cleric deity is allowed to be one step away from the cleric alignment).

    I've allready looked into the favored weapon thing with the spell Weapon of the Deity, though I stopped working on that spell as I had no chance to do item enchantments back then and postponed it. Though I still hope, I somehow get an item.condition.remove for this ;)

    The changes are pretty simple. I would keep the Javelin thing, if everyone agrees.
    Code:
        objDeity = obj.get_deity()
        deityFavWeapon = game.get_deity_favored_weapon(objDeity)
        wfFavWeapon = feat_weapon_focus_gauntlet + deityFavWeapon
        wfList = [feat_weapon_focus_javelin, wfFavWeapon]
        if obj.divine_spell_level_can_cast() < 3:
            return 0
        elif obj.stat_level_get(stat_save_fortitude) < 4:
            return 0
    #    elif not obj.has_feat(feat_endurance): #not in the game currently
    #        return 0
        elif not obj.has_feat(feat_great_fortitude):
            return 0
        elif not any(obj.has_feat(feat) for feat in wfList):
            return 0
        return 1
    
    Though Fav Soul uses
    Code:
    omg = obj.obj_get_int(obj_f_critter_deity)
    unsure if get_deity() was implemented afterwards or obj_get_int is preferable

    and in the stormlord.py:
    replace the function:
    Code:
    ## Define Stormlord Weapons; list can be extended if ever necessary ##
    def stormlordWeapons():
        weaponList = [wt_javelin, wt_longspear, wt_shortspear, wt_spear]
        return weaponList
    
    With
    Code:
    def stormlordWeapons():
        stormlordDeity = attachee.get_deity()
        deityFavWeapon = game.get_deity_favored_weapon(stormlordDeity)
        weaponList = [wt_javelin, deityFavWeapon]
        return weaponList
    
     
    Pygmy and anatoliy like this.
  11. Pygmy

    Pygmy Established Member Supporter

    Joined:
    Oct 8, 2010
    Messages:
    766
    Likes Received:
    83
    This looks really great Sagenlicht. I can quite understand what you say about keeping the javelin stuff as is; on a personal basis I have chosen otherwise, but am prepared to accept the untidyness of the caption of the class to hit bonus still referencing javelin as it involves a specific named feat.
     
  12. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,627
    Likes Received:
    538
    Pretty much. Though maybe it'd be more correct to enforce CE deity.
    About fav weapon, is it spear for Talos? I couldn't find any info on him for 3.5ed.

    Also the last function needs attachee arg.

    Not sure get_deity is any different than getting obj_f_deity but usually it's better to use the more abstract API.
     
  13. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    I think so, https://forgottenrealms.fandom.com/wiki/Talos lists as fav Weapon a bunch of Spears

    Fixed
    oki.
    Will push the changes after lunch :)

    Edit: Hmm over read the CE Part.
     
  14. Sagenlicht

    Sagenlicht Established Member

    Joined:
    Apr 14, 2004
    Messages:
    338
    Likes Received:
    119
    Oki about the CE part. I don't think that deity alignment is exposed to python atm (correct me if I am wrong).

    Which means the only solution that works right now would be a hard coded list. If this is fine, I'll add it :)

    This is ofc no problem as long as no new deities or pantheons are added.

    Edit:
    Code:
    def ObjMeetsPrereqs( obj ):
        objDeity = obj.get_deity()
        deityFavWeapon = game.get_deity_favored_weapon(objDeity)
        wfFavWeapon = feat_weapon_focus_gauntlet + deityFavWeapon
        wfList = [feat_weapon_focus_javelin, wfFavWeapon]
        deityList = [DEITY_ERYTHNUL, DEITY_GRUUMSH]
        if obj.divine_spell_level_can_cast() < 3:
            return 0
        elif obj.stat_level_get(stat_save_fortitude) < 4:
            return 0
    #    elif not obj.has_feat(feat_endurance): #not in the game currently
    #        return 0
        elif not obj.has_feat(feat_great_fortitude):
            return 0
        elif not any(obj.has_feat(feat) for feat in wfList):
            return 0
        elif not objDeity in deityList:
            return 0
        return 1
     
    Last edited: Jun 10, 2021
  15. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,627
    Likes Received:
    538
    No, I definitely don't want to hardcode the deities, this should be retrieved from the game engine. Should be easy to add.
     
    anatoliy likes this.
Our Host!