Skip to content

Commit

Permalink
Help file updated
Browse files Browse the repository at this point in the history
Added Storm of Elemental Fury (deactivated for now)
  • Loading branch information
Sagenlicht committed May 14, 2021
1 parent 3808cfe commit b1e1337
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 16 deletions.
Binary file removed overrides.zip
Binary file not shown.
18 changes: 10 additions & 8 deletions overrides/mes/help/stormlord_help.tab
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
TAG_STORMLORDS TAG_PRESTIGE_CLASSES Stormlords Stormlords often live as brigands, indulging their personal desires for wealth, food, luxury items, and wanton behavior as they crave random, spectacular acts of violence. Most Stormlords are cleric, druids, or cleric/sorcerers, although other class combinations, particulalry those including fighter or even barbarian are not unknown. Hit Die: d8 Requirements: To qualify to become a Stormlord, a character must fulfill all the following criteria. Alignment: Chaotic or Neutral Evil or Chaotic Neutral. Feats: ~Great Fortitude~[TAG_GREAT_FORT], ~Weapon Focus~[TAG_WEAPON_FOCUS](any spear or javelin). Base Save Bonus: ~Fortitude~[TAG_FORTITUDE] +4 Spells: Able to cast 3rd-level divine spells. Omitted: Feat Endurance(not in the game) Patron: Talos Special: The character must have been hit by a bolt of lightning, whether a natural bolt or one created by magic, and survived. Base Attack and Base Save Bonuses: see ~table~[TAG_CLASS_FEATURES_STORMLORD_TABLES] Class Skills: TBD Skill Points at Each Level: 2 + Int modifier Class Features: [CMD_CHILDREN]
TAG_CLASS_FEATURES_STORMLORD_SPELLS_PER_DAY TAG_STORMLORDS Stormlord Spells per Day At each stormlord level, the character gains new spells per day (and spells known, if applicable) as if he had also gained a level in a divine spellcasting class to which he belonged before adding the prestige class level. He does not, however, gain any other benefit a character of that class would have gained (improved chance of turning or destroying undead, additional favored enemies, and so on). If the character had more than one divine spellcasting class before becoming a stormlord, the player must decide to which class to add each stormlord level for the purpose of determining spells per day and spells known.
TAG_CLASS_FEATURES_STORMLORD_GRANTED_PROFICIENCIES TAG_STORMLORDS Stormlord Weapon and Armor Proficiency Stormlords gain no weapon or armor proficiencies.
TAG_CLASS_FEATURES_STORMLORD_ENHANCED_JAVELINS TAG_STORMLORDS Stormlord Enhanced Javelins Any javelin thrown by a stormlord counts as a +1 magic weapon. This bonus increases at 6th level to +2 and at 10th level to +3.
TAG_CLASS_FEATURES_STORMLORD_RESISTANCE_TO_ELECTRICITY TAG_STORMLORDS Stormlord Resistance to Electricity As a stormlord gains levels in this prestige class, he becomes increasingly ~resistant~[TAG_SPECIAL_ABILITIES_RESISTANCE_TO_ENERGY] to electrical energy, starting at 1st level with resistance to electricity 5. This bonus increases at 4th and 7th level by an additional 5.
TAG_CLASS_FEATURES_STORMLORD_SHOCK_WEAPONS TAG_STORMLORDS Stormlord Shock Weapons Any spear or javelin used by a stormlord of 2nd level or higher is treated as a shock weapon (dealing an extra 1d6 points of electricity damage). The weapon loses this ability when leaving the hand of the stormlord. For a stormlord of 8th level or higher, any spear or javelin he uses is instead treated as a shocking burst weapon.
TAG_CLASS_FEATURES_STORMLORD_THUNDERING_WEAPONS TAG_STORMLORDS Stormlords Thundering Weapons For a stormlord of 5th level or higher, any spear or javelin he uses is treated as a thundering weapon. The weapon loses this ability when leaving the hand of the stormlord. This effect stacks with that of the stormlord's shock weapon ability.
TAG_CLASS_FEATURES_STORMLORD_IMMUNITY_TO_ELECTRICITY_TAG_STORMLORDS Stormlords Immunity to Electricity At 9th level, a stormlord gains immunity to electricity. (Not yet implemented!)
TAG_STORMLORDS TAG_PRESTIGE_CLASSES Stormlords Stormlords often live as brigands, indulging their personal desires for wealth, food, luxury items, and wanton behavior as they crave random, spectacular acts of violence. Most Stormlords are cleric, druids, or cleric/sorcerers, although other class combinations, particulalry those including fighter or even barbarian are not unknown. Hit Die: d8 Requirements: To qualify to become a Stormlord, a character must fulfill all the following criteria. Alignment: Chaotic or Neutral Evil or Chaotic Neutral. Feats: ~Great Fortitude~[TAG_GREAT_FORT], ~Weapon Focus~[TAG_WEAPON_FOCUS](any spear or javelin). Base Save Bonus: ~Fortitude~[TAG_FORTITUDE] +4 Spells: Able to cast 3rd-level divine spells. Omitted: Feat Endurance(not in the game) Patron: Talos Special: The character must have been hit by a bolt of lightning, whether a natural bolt or one created by magic, and survived. Base Attack and Base Save Bonuses: see ~table~[TAG_CLASS_FEATURES_STORMLORD_TABLES] Class Skills: ~Concentration(Con)~[TAG_CONCENTRATION], Disguise(Cha), ~Gather Information(Cha)~[TAG_GATHER_INFORMATION], ~Intimidate(Cha)~[TAG_INTIMIDATE], Knowledge (nature)(Int), Knowledge (religion)(Int), ~Survival(Wis)~[TAG_SURVIVAL], Swim(Str) Skill Points at Each Level: 2 + Int modifier Class Features: [CMD_CHILDREN]
TAG_CLASS_FEATURES_STORMLORD_TABLES TAG_STORMLORDS Stormlord Base Attack & Base Save Bonuses Level ~BAB~[TAG_LEVEL_BONUSES] ~Fort.~[TAG_FORTITUDE] ~Reflex~[TAG_REFLEX] ~Will~[TAG_WILL] 1 +0 +2 +0 +2 2 +1 +3 +0 +3 3 +2 +3 +1 +3 4 +3 +3 +1 +3 5 +3 +4 +1 +4 6 +4 +5 +2 +5 7 +5 +5 +2 +5 8 +6 +6 +2 +6 9 +6 +6 +3 +6 10 +7 +7 +3 +7
TAG_CLASS_FEATURES_STORMLORD_SPELLS_PER_DAY TAG_STORMLORDS Stormlord Spells per Day At each stormlord level, the character gains new spells per day (and spells known, if applicable) as if he had also gained a level in a divine spellcasting class to which he belonged before adding the prestige class level. He does not, however, gain any other benefit a character of that class would have gained (improved chance of turning or destroying undead, additional favored enemies, and so on). If the character had more than one divine spellcasting class before becoming a stormlord, the player must decide to which class to add each stormlord level for the purpose of determining spells per day and spells known.
TAG_CLASS_FEATURES_STORMLORD_GRANTED_PROFICIENCIES TAG_STORMLORDS Stormlord Weapon and Armor Proficiency Stormlords gain no weapon or armor proficiencies.
TAG_CLASS_FEATURES_STORMLORD_ENHANCED_JAVELINS TAG_STORMLORDS Stormlord Enhanced Javelins Any javelin thrown by a stormlord counts as a +1 magic weapon. This bonus increases at 6th level to +2 and at 10th level to +3.
TAG_CLASS_FEATURES_STORMLORD_RESISTANCE_TO_ELECTRICITY TAG_STORMLORDS Stormlord Resistance to Electricity As a stormlord gains levels in this prestige class, he becomes increasingly ~resistant~[TAG_SPECIAL_ABILITIES_RESISTANCE_TO_ENERGY] to electrical energy, starting at 1st level with resistance to electricity 5. This bonus increases at 4th and 7th level by an additional 5.
TAG_CLASS_FEATURES_STORMLORD_SHOCK_WEAPONS TAG_STORMLORDS Stormlord Shock Weapons Any spear or javelin used by a stormlord of 2nd level or higher is treated as a shock weapon (dealing an extra 1d6 points of electricity damage). The weapon loses this ability when leaving the hand of the stormlord. For a stormlord of 8th level or higher, any spear or javelin he uses is instead treated as a shocking burst weapon.
TAG_CLASS_FEATURES_STORMLORD_THUNDERING_WEAPONS TAG_STORMLORDS Stormlords Thundering Weapons For a stormlord of 5th level or higher, any spear or javelin he uses is treated as a thundering weapon. The weapon loses this ability when leaving the hand of the stormlord. This effect stacks with that of the stormlord's shock weapon ability.
TAG_CLASS_FEATURES_STORMLORD_IMMUNITY_TO_ELECTRICITY_TAG_STORMLORDS Stormlords Immunity to Electricity At 9th level, a stormlord gains immunity to electricity.
TAG_CLASS_FEATURES_STORMLORD_STORM_OF_ELEMENTAL_FURY TAG_STORMLORDS Stormlords Storm of Elemental Fury At 10th level, a stormlord can summon a storm of great magnitude and power. Once per day, a stormlord can use storm of elemental fury as if he were a 17th-level cleric. Deactivated until Spell Compendium is merged to temple+
7 changes: 6 additions & 1 deletion overrides/mes/stat_ext.mes
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@

//
{82}{Fochlucan Lyrist}
{83}{Marshal}
{84}{Hexblade}


{300}{Psi Points} // max
{301}{Psi Points} // cur
Expand All @@ -86,7 +89,7 @@
{1031}{Sdwd}
{1032}{Thmg}

{1033}{Wrlk}
{1033}{Wlk}
{1034}{Fvrd}
{1035}{}
{1036}{}
Expand Down Expand Up @@ -137,6 +140,7 @@
{1080}{Rkvn}
{1081}{Ssnj}
{1082}{Foch}
{1083}{Mrshl}



Expand Down Expand Up @@ -321,6 +325,7 @@ Alignment: Neutral good, neutral, chaotic neutral, or neutral evil.
Spells: Casts 1st-level arcane and divine spells.
Special: Bardic knowledge, Speak Language (Druidic) and evasion abilities.
}
{13076}Marshal{Sometimes it is not enough to be a conquering warrior, a champion of all that's right, an experienced sellsword, or an elite foot soldier. Sometimes the circumstances require a solid commander of soldiers and situations. Sometimes the circumstances demand a marshal.}

// Cannot Pick Class Short Help Goes in the range of 20007+
{20007} Arcane Archer{Arcane Archer requirements:
Expand Down
27 changes: 27 additions & 0 deletions overrides/rules/d20_actions/action03801_stormlord_storm_sla.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from toee import *
import tpactions


def GetActionName():
return "Stormlord Storm SLA"


def GetActionDefinitionFlags():
return D20ADF_MagicEffectTargeting | D20ADF_Breaks_Concentration | D20ADF_QueryForAoO


def GetTargetingClassification():
return D20TC_CastSpell


def GetActionCostType():
return D20ACT_Full_Round_Action


def AddToSequence(d20action, action_seq, tb_status):
action_seq.add_action(d20action)
return AEC_OK

def ModifyPicker( picker_args ):
picker_args.set_mode_target_flag(tpactions.ModeTarget.Area) #PickOrigin
return 1
45 changes: 40 additions & 5 deletions overrides/scr/tpModifiers/stormlord.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from toee import *
import tpdp
import char_class_utils
import tpactions

###################################################

Expand All @@ -15,8 +16,13 @@ def GetSpellCasterConditionName():

classEnum = stat_level_stormlord
classSpecModule = __import__('class038_stormlord')

###################################################

########## Python Action ID's ##########
pythonActionStormId = 3801
########################################


#### standard callbacks - BAB and Save values
def OnGetToHitBonusBase(attachee, args, evt_obj):
Expand Down Expand Up @@ -46,12 +52,14 @@ def OnGetSaveThrowWill(attachee, args, evt_obj):
classSpecObj.AddHook(ET_OnSaveThrowLevel, EK_SAVE_REFLEX, OnGetSaveThrowReflex, ())
classSpecObj.AddHook(ET_OnSaveThrowLevel, EK_SAVE_WILL, OnGetSaveThrowWill, ())

## Stormlord Feats
#### Stormlord Feats ####

## Define Stormlord Weapons; list can be extended if ever necessary ##
def stormlordWeapons():
weaponList = [wt_javelin, wt_longspear, wt_shortspear, wt_spear]
return weaponList

## Enhanced Javelins ##
def featEnhancedJavelinsToHit(attachee, args, evt_obj):
usedWeapon = evt_obj.attack_packet.get_weapon_used()
if usedWeapon.obj_get_int(obj_f_weapon_type) == wt_javelin:
Expand Down Expand Up @@ -86,6 +94,7 @@ def featEnhancedJavelinsDamage(attachee, args, evt_obj):
enhancedJavelins.AddHook(ET_OnToHitBonus2, EK_NONE, featEnhancedJavelinsToHit, ())
enhancedJavelins.AddHook(ET_OnDealingDamage, EK_NONE, featEnhancedJavelinsDamage, ())

## Resistance to Electricity ##
def featResistanceToElectricity(attachee, args, evt_obj):
classLevel = attachee.stat_level_get(classEnum)
if classLevel >= 9:
Expand All @@ -103,6 +112,8 @@ def featResistanceToElectricity(attachee, args, evt_obj):
electricityResistance.MapToFeat("Stormlord Resistance to Electricity")
electricityResistance.AddHook(ET_OnTakingDamage , EK_NONE, featResistanceToElectricity, ())

## Shock Weapon ##
## Should not stack with existing shock property on weapon but can't be queried at the moment ##
def featShockWeapon(attachee, args, evt_obj):
usedWeapon = evt_obj.attack_packet.get_weapon_used()
weaponList = stormlordWeapons()
Expand All @@ -118,26 +129,24 @@ def featShockWeapon(attachee, args, evt_obj):
if critMultiplier > 3: #unsure if needed; D20SRD description ends at x4
critMultiplier = 3
bonusDiceBurst.number = critMultiplier
print "bonusDiceBurst: {}".format(bonusDiceBurst)
evt_obj.damage_packet.add_dice(bonusDiceBurst, D20DT_ELECTRICITY, 100) #ID 100 in damage.mes is Weapon
return 0

shockWeapon = PythonModifier("Stormlord Shock Weapon Feat", 0)
shockWeapon.MapToFeat("Stormlord Shock Weapon")
shockWeapon.AddHook(ET_OnDealingDamage, EK_NONE, featShockWeapon, ())

## Thundering Weapon ##
## Should not stack with existing thundering property on weapon but can't be queried at the moment ##
def featThunderingWeaponDamage(attachee, args, evt_obj):
usedWeapon = evt_obj.attack_packet.get_weapon_used()
weaponList = stormlordWeapons()
target = evt_obj.attack_packet.target
if not usedWeapon.obj_get_int(obj_f_weapon_type) in weaponList:
return 0
print "passed weapon test"
if evt_obj.attack_packet.get_flags() & D20CAF_CRITICAL:
print "passed crit flag"
bonusDice = dice_new('1d8')
critMultiplier = evt_obj.damage_packet.critical_multiplier
print "critMultiplier: {}".format(critMultiplier)
if critMultiplier > 3: #unsure if needed; D20SRD description ends at x4
critMultiplier = 3
bonusDice.number = critMultiplier
Expand All @@ -155,6 +164,7 @@ def featThunderingWeaponDamage(attachee, args, evt_obj):
thunderingWeapon.MapToFeat("Stormlord Thundering Weapon")
thunderingWeapon.AddHook(ET_OnDealingDamage, EK_NONE, featThunderingWeaponDamage, ())

## Immunity to Electricity ##
def featImmunityToElectricity(attachee, args, evt_obj):
evt_obj.damage_packet.add_mod_factor(0.0, D20DT_ELECTRICITY, 132) #ID 132 in damage.mes is Immunity
return 0
Expand All @@ -163,6 +173,31 @@ def featImmunityToElectricity(attachee, args, evt_obj):
electricityImmunity.MapToFeat("Stormlord Immunity to Electricity")
electricityImmunity.AddHook(ET_OnTakingDamage , EK_NONE, featImmunityToElectricity, ())


## Storm of Elemental Fury ##
## Deactivated until Storm is merged into temple+ ##
#def radialStormOfElementalFury(attachee, args, evt_obj):
# stormSpellStore = PySpellStore(spell_storm_of_elemental_fury, 137, 7)
# stormSlaId = tpdp.RadialMenuEntryPythonAction(stormSpellStore, D20A_PYTHON_ACTION, pythonActionStormId, 1171, "TAG_CLASS_FEATURES_MARSHAL_STORM_OF_ELEMENTAL_FURY")
# stormSlaId.add_child_to_standard(attachee, tpdp.RadialMenuStandardNode.Class)
# return 0

def pythonActionPerformStorm(attachee, args, evt_obj):
currentSequence = tpactions.get_cur_seq()
spellPacket = currentSequence.spell_packet
newSpellId = tpactions.get_new_spell_id()
#evt_obj.d20a.spell_id = newSpellId
spellPacket.caster_level = 17 #set caster level manually, SLA is cast as a level 17 cleric
tpactions.register_spell_cast(spellPacket, newSpellId)
tpactions.trigger_spell_effect(evt_obj.d20a.spell_id)
return 0

#stormlordSLA = PythonModifier("Stormlord Storm of Elemental Fury SLA", 0)
#stormlordSLA.MapToFeat("Stormlord Storm of Elemental Fury")
#stormlordSLA.AddHook(ET_OnBuildRadialMenuEntry , EK_NONE, radialStormOfElementalFury, ())
#stormlordSLA.AddHook(ET_OnD20PythonActionPerform, pythonActionStormId, pythonActionPerformStorm, ())


##### Spell casting

# configure the spell casting condition to hold the highest Divine classs
Expand Down
9 changes: 7 additions & 2 deletions readme.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Stormlord Prestige Class for ToEE
Temple+ required

Work in Progress
Fully working
Ingame help included

What is working?
What's currently missing?
Storm Walk not implemented
Storm of Elemental Fury deactivated until the spell is merged to temple+

Storm Ride is not implemented as there is no fly spell in ToEE

0 comments on commit b1e1337

Please sign in to comment.