Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dragon Discipile WIP #619

Draft
wants to merge 44 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
54ec304
Dragon Disciple WIP
Sagenlicht Sep 16, 2021
0312673
Updated Dragon Disciple
Sagenlicht Sep 17, 2021
b9d12de
Update dragon_disciple.py
Sagenlicht Sep 17, 2021
6e6b68f
Merge branch 'master' into DragonDisciple
Sagenlicht Sep 20, 2021
783606e
Added Ability Boost
Sagenlicht Sep 20, 2021
0cb6e91
Fixed Heritage bug
Sagenlicht Sep 20, 2021
809df43
Fixed Cone Breath Weapon
Sagenlicht Sep 20, 2021
1ad5cfa
Further progress for the DD
Sagenlicht Sep 21, 2021
6e4d1e0
Finished help file for DD
Sagenlicht Sep 22, 2021
7fcad2c
DD: Dropped Blindsense, fixed fire smoke
Sagenlicht Sep 23, 2021
d02b5fb
Added Flying Toggle (Nonfunctional yet)
Sagenlicht Sep 30, 2021
e641ab5
Moved Flying to seperate condtion
Sagenlicht Oct 1, 2021
2ebb5a7
added Darley Wings Mesh as Wings for the DD
Sagenlicht Oct 14, 2021
f77c9dc
Merge branch 'master' into DragonDisciple
Sagenlicht Oct 26, 2021
d8ae0ec
Merge branch 'master' into DragonDisciple
Nov 21, 2021
7ec38ee
String fixes: DD requirements fit inside scroll box; feat descrition …
Nov 22, 2021
b085be2
Added PyObjHndl method anim_goal_throw_spell_w_cast_anim to properly …
Nov 22, 2021
9696b90
DD fixes Breath weapon
Nov 22, 2021
d1daf13
Merge branch 'DragonDisciple' of https://github.com/GrognardsFromHell…
Sagenlicht Nov 22, 2021
1aabeb1
Update to DD Draconic Heritage Handling
Sagenlicht Nov 23, 2021
2d2d8cb
First Draft of Bonus Spells Feature
Sagenlicht Nov 24, 2021
fbbfe61
Merge branch 'master' into DragonDisciple
Sagenlicht Nov 24, 2021
4099c50
Merge branch 'master' into DragonDisciple
Nov 24, 2021
67e6a9e
Merge branch 'DragonDisciple' of https://github.com/GrognardsFromHell…
Nov 24, 2021
a43fa6a
Forgot to merge the draconic_heritage feat to the DD
Sagenlicht Nov 25, 2021
8f9182e
Added new error codes
Sagenlicht Dec 6, 2021
1586499
Condition hashtable init replacement; added log message for when it o…
Dec 22, 2021
96c76ef
Merge branch 'DragonDisciple' of https://github.com/GrognardsFromHell…
Dec 22, 2021
b43a73d
reflex throw will now use SpellSaveThrow when used for spell actions,…
Dec 22, 2021
e21d766
Added get_caster_class method to python EventObjSpellsPerDay
Dec 22, 2021
05c1d8e
Renamed chargeAfterPicker for more accurate meaning
Dec 23, 2021
5fe70c7
Minor magic number cleanup from natural attacks review
Dec 24, 2021
370c30b
Changed Bonus Spells per Day
Sagenlicht Jan 18, 2022
422d1c4
Update dragon_disciple.py
Sagenlicht Jan 18, 2022
69a037a
Merge pull request #701 from GrognardsFromHell/bugfixes
DudeMcDude Sep 6, 2022
e590df5
Fixes animation script particle errors on map load
Sep 7, 2022
0a2315f
Merge pull request #702 from GrognardsFromHell/bugfixes
DudeMcDude Sep 7, 2022
fdb94bf
Minor wiki help errors
Sep 7, 2022
bb602d2
Merge branch 'bugfixes' into develop
Sep 9, 2022
b750dd0
Scribe scroll - automated infrastructure instead of the old manual pr…
Sep 9, 2022
9b6d579
Fixes crash issue when AI party member casts Dominate Monster (aka 'S…
Sep 10, 2022
9eefcb0
Fixes #682
Sep 10, 2022
d1b2858
Fixed error in targeting.py will_kos
Sep 10, 2022
c4ef9bd
Merge from develop
Sep 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Updated Dragon Disciple
  • Loading branch information
Sagenlicht committed Sep 17, 2021
commit 03126730533a0e19c4a1168bfda7968b7549e204
2 changes: 2 additions & 0 deletions tpdata/templeplus/lib/templeplus/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -3357,6 +3357,8 @@
spell_new_slot_lvl_8 = 1613
spell_new_slot_lvl_9 = 1614

spell_dragon_disciple_cone_breath = 3231
spell_dragon_disciple_line_breath = 3232

stat_strength = 0
stat_dexterity = 1
Expand Down
6 changes: 0 additions & 6 deletions tpdatasrc/tpgamefiles/mes/help/dragon_discipile_help.tab

This file was deleted.

11 changes: 11 additions & 0 deletions tpdatasrc/tpgamefiles/mes/help/dragon_disciple_help.tab
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
TAG_DRAGON_DISCIPLE TAG_PRESTIGE_CLASSES Dragon Disciple Dragon Disciple Short Description - TBD!. Most Dragon Disciples are barbarian, fighters, or rangers who have dabbed as bards or sorcerers. Occasionally, a serious spellcaster explores the path to further a goal of finding out more about his draconic heritage. Hit Die: d12 Requirements: To qualify to become a Dragon Disciple, a character must fulfill all the following criteria. Race: Any non dragon (cannot be already a half-dragon). Skills: Knowledge(Arcana) 8 ranks (not implemented). Languages: Draconic (not implemented). Spellcasting: Ability to cast arcane spells without preparation. Special: The player chooses a dragon variety when taking the first level in this prestige class. Base Attack and Base Save Bonuses: see ~table~[TAG_CLASS_FEATURES_DRAGON_DISCIPLES_TABLES] Class Skills: ~Concentration(Con)~[TAG_CONCENTRATION], Craft(Int), ~Diplomacy(Cha)~[TAG_DIPLOMACY], Escape Artist(Dex), ~Gather Information(Cha)~[TAG_GATHER_INFORMATION], Knowledge(all skills), ~Listen(Wis)~[TAG_LISTEN], Profession(Wis), ~Search(Int)~[TAG_SEARCH], Speak Language(None), ~Spellcraft(Int)~[TAG_SPELLCRAFT], and ~Spot(Wis)~[TAG_SPOT]. Skill Points at Each Level: 2 + Int modifier Class Features: [CMD_CHILDREN]
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_TABLES TAG_DRAGON_DISCIPLE Dragon Disciple Base Attack & Base Save Bonuses - TBD! 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_DRAGON_DISCIPLES_SPELLS_PER_DAY TAG_DRAGON_DISCIPLE Dragon Disciple Bonus Spells - TBD! 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_DRAGON_DISCIPLES_GRANTED_PROFICIENCIES TAG_DRAGON_DISCIPLE Dragon Disciple Weapon and Armor Proficiency Dragon Disciples gain no weapon or armor proficiencies.
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_HERITAGE TAG_DRAGON_DISCIPLE Dragon Disciple Heritage The player chooses a dragon variety when taking the first level in this prestige class. TBD!
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_NATURAL_ARMOR_INCREASE TAG_DRAGON_DISCIPLE Dragon Disciple Natural Armor Increase A dragon disciple gains an increase to the character's existing natural armor (if any). At 1st level +1, at 4th level +2, and at 7th level +3. As his skin thickens, a dragon disciple takes on more and more of his progenitor's physical aspect.
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_CLAWS_AND_BITE TAG_DRAGON_DISCIPLE Dragon Disciple Claws and Bite At 2nd level, a dragon disciple gains claw and bite attacks if he does not already have them. Use the values below or the disciple’s base claw and bite damage values, whichever are greater. A dragon disciple is considered proficient with these attacks. When making a full attack, a dragon disciple uses his full base attack bonus with his bite attack but takes a -5 penalty on claw attacks. The Multiattack feat reduces this penalty to only -2. Size Bite Damage Claw Damage Small 1d4 1d3 Medium 1d6 1d4 Large 1d8 1d6
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_BREATH_WEAPON TAG_DRAGON_DISCIPLE Dragon Disciple Breath Weapon At 3rd level, a dragon disciple gains a minor breath weapon. The type and shape depend on the dragon variety whose heritage he enjoys (see below). Regardless of the ancestor, the breath weapon deals 2d8 points of damage of the appropriate energy type. At 7th level, the damage increases to 4d8, and when a disciple attains dragon apotheosis at 10th level it reaches its full power at 6d8. Regardless of its strength, the breath weapon can be used only once per day. Use all the rules for dragon breath weapons except as specified here. Dragon Heritage Breath Weapon Black Line of acid Blue Line of lightning Green Cone of acid Red Cone of fire White Cone of Cold Brass Line of Fire Bronze Line of Lightning Copper Line of acid Gold Cone of Fire Silver Cone of cold The DC of the breath weapon is 10 + class level + Con modifier. A line-shaped breath weapon is 5 feet high, 5 feet wide, and 60 feet long. A cone-shaped breath weapon is 30 feet long.
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_BLINDSENSE TAG_DRAGON_DISCIPLE Dragon Disciple Blindsense At 5th level, the dragon disciple gains blindsense with a range of 30 feet. Using nonvisual senses the dragon disciple notices things it cannot see. He usually does not need to make Spot or Listen checks to notice and pinpoint the location of creatures within range of his blindsense ability, provided that he has line of effect to that creature. Any opponent the dragon disciple cannot see still has total concealment against him, and the dragon disciple still has the normal miss chance when attacking foes that have concealment. Visibility still affects the movement of a creature with blindsense. A creature with blindsense is still denied its Dexterity bonus to Armor Class against attacks from creatures it cannot see. At 10th level, the range of this ability increases to 60 feet.
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_WINGS TAG_DRAGON_DISCIPLE Dragon Disciple Wings At 9th level, a dragon disciple grows a set of draconic wings. He may now fly at a speed equal to his normal land speed, with average maneuverability. Not implemented in ToEE as there is flight in ToEE!
TAG_CLASS_FEATURES_DRAGON_DISCIPLES_DRAGON_APOTHEOSIS TAG_DRAGON_DISCIPLE Dragon Disciple Dragon Apotheosis At 10th level, a dragon disciple takes on the half-dragon template. His breath weapon reaches full strength (as noted above), and he gains +4 to Strength and +2 to Charisma. His natural armor bonus increases to +4, and he acquires low-light vision, 60-foot darkvision, immunity to sleep and paralysis effects, and immunity to the energy type used by his breath weapon.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{3231} {Dragon Disciple Cone Breath}
34 changes: 21 additions & 13 deletions tpdatasrc/tpgamefiles/rules/char_class/class023_dragon_disciple.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ def GetClassHelpTopic():


class_feats = {
1: ("Dragon Disciple Natural Armor",),
1: ("Dragon Disciple Heritage", "Dragon Disciple Natural Armor",),
2: ("Dragon Disciple Claws and Bite",),
3: ("Dragon Disciple Breath Weapon",),
5: ("Dragon Disciple Blindsense",),
10: ("Dragon Disciple Dragon Apotheosis",)
}

bonus_feats = ["Dragon Disciple Heritage"]
#bonus_feats = ["Dragon Disciple Heritage"]

class_skills = (skill_alchemy, skill_concentration, skill_craft, skill_diplomacy, skill_escape_artist, skill_gather_information, skill_knowledge_all, skill_listen, skill_profession, skill_search, skill_spellcraft, skill_spot)

Expand Down Expand Up @@ -88,27 +88,35 @@ def KnowledgeArcanaCheck( obj ):
return 0
return 1

def DragonRaceCheck(obj):
#Can't check if character is half-dragon; it does not exist in ToEE
if obj.is_category_type(mc_type_dragon):
return 1
return 0

def ObjMeetsPrereqs(obj):
if not KnowledgeArcanaCheck(obj):
return 0
elif not CanCastInnateArcane(obj):
return 0
elif not SpeaksDraconic(obj):
return 0
#elif DragonRaceCheck:
# return 0
return 1


# Levelup
def IsSelectingFeatsOnLevelup(obj):
newLvl = obj.stat_level_get( classEnum ) + 1
if newLvl == 1:
return 1
return 0
#def IsSelectingFeatsOnLevelup(obj):
# newLvl = obj.stat_level_get( classEnum ) + 1
# if newLvl == 1:
# return 1
# return 0

def LevelupGetBonusFeats(obj):
#def LevelupGetBonusFeats(obj):
#Lazy copy + paste from fighter; could be cleaned up as it is only one feat
bonFeatInfo = []
for ft in bonus_feats:
bonFeatInfo.append(char_editor.FeatInfo(ft))
char_editor.set_bonus_feats(bonFeatInfo)
return
# bonFeatInfo = []
# for ft in bonus_feats:
# bonFeatInfo.append(char_editor.FeatInfo(ft))
# char_editor.set_bonus_feats(bonFeatInfo)
# return
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from toee import *
import tpactions

def GetActionName():
return "Dragon Disciple Select Heritage"

def GetActionDefinitionFlags():
return D20ADF_None

def GetTargetingClassification():
return D20TC_Target0

def GetActionCostType():
return D20ACT_NULL

def AddToSequence(d20action, action_seq, tb_status):
action_seq.add_action(d20action)
return AEC_OK
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from toee import *
import tpactions
import tpdp


def GetActionName():
return "Dragon Disciple Breath Attack"


def GetActionDefinitionFlags():
return D20ADF_MagicEffectTargeting | D20ADF_QueryForAoO


def GetTargetingClassification():
return D20TC_CastSpell


def GetActionCostType():
return D20ACT_Standard_Action


def AddToSequence(d20action, action_seq, tb_status):
print "Dragon Disciple Breath Weapon Add to Sequence"
if d20action.performer.d20_query(Q_Prone):
d20aGetup = d20action
d20aGetup.action_type = tpdp.D20ActionType.StandUp
action_seq.add_action(d20aGetup)
action_seq.add_action(d20action)
return AEC_OK

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Dragon Disciple Heritage
flags: 524288
prereqs: 23 1
flags: 8
prereqs:
description: The player chooses a dragon variety when taking the first level in this prestige class.
prereq descr: Dragon Disciple level 1
12 changes: 12 additions & 0 deletions tpdatasrc/tpgamefiles/rules/partsys/dragon_disciple_partsys.tab
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
sp-Dragon Disciple Cone Breath Acid smoke emit 10 20 600 Object YPR Sprite Same as Emitter Polar Cartesian fire-sprite 120 Blend 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0?30 0 -30?30 30?330 5?40 0 0 0?360 0 0 0,16,0 255 255 255 100
sp-Dragon Disciple Cone Breath Acid 30 100 Object YPR Sprite Same as Emitter Polar flare-big 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 64,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 20?60 0 0 0?720 0 0 0 0 128 255 20
sp-Dragon Disciple Cone Breath Acid 30 50 Object YPR Sprite Same as Emitter Polar flare-1 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 255,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3, 0 0 0,360 0 0 0 255 255 255 100
sp-Dragon Disciple Cone Breath Cold smoke emit 10 20 600 Object YPR Sprite Same as Emitter Polar Cartesian fire-sprite 120 Blend 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0?30 0 -30?30 30?330 5?40 0 0 0?360 0 0 0,16,0 255 255 255 100
sp-Dragon Disciple Cone Breath Cold 30 100 Object YPR Sprite Same as Emitter Polar flare-big 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 64,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 20?60 0 0 0?720 0 0 0 0 128 255 20
sp-Dragon Disciple Cone Breath Cold 30 50 Object YPR Sprite Same as Emitter Polar flare-1 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 255,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3, 0 0 0,360 0 0 0 255 255 255 100
sp-Dragon Disciple Cone Breath Electricity smoke emit 10 20 600 Object YPR Sprite Same as Emitter Polar Cartesian fire-sprite 120 Blend 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0?30 0 -30?30 30?330 5?40 0 0 0?360 0 0 0,16,0 255 255 255 100
sp-Dragon Disciple Cone Breath Electricity 30 100 Object YPR Sprite Same as Emitter Polar flare-big 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 64,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 20?60 0 0 0?720 0 0 0 0 128 255 20
sp-Dragon Disciple Cone Breath Electricity 30 50 Object YPR Sprite Same as Emitter Polar flare-1 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 255,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3, 0 0 0,360 0 0 0 255 255 255 100
sp-Dragon Disciple Cone Breath Fire smoke emit 10 20 600 Object YPR Sprite Same as Emitter Polar Cartesian fire-sprite 120 Blend 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0?30 0 -30?30 30?330 5?40 0 0 0?360 0 0 0,16,0 255 255 255 100
sp-Dragon Disciple Cone Breath Fire 30 100 Object YPR Sprite Same as Emitter Polar flare-big 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 64,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 20?60 0 0 0?720 0 0 0 0 128 255 20
sp-Dragon Disciple Cone Breath Fire 30 50 Object YPR Sprite Same as Emitter Polar flare-1 30 Add 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0 0 255,0 0 0 0 0 0 0 0 0 0 -30?30 0 0,360 1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3,1,30,20,25,6,26,15,2,28,3, 0 0 0,360 0 0 0 255 255 255 100
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
School: None
Casting Time: 1 action
Range: Specified 30
Saving Throw: Reflex
Spell Resistance: No
Projectile: No
flags_Target: Range
flags_Target: Degrees
flags_Target: Fixed-radius
inc_flags_Target: Other
exc_flags_Target: Self
exc_flags_Target: Dead
exc_flags_Target: Non-critter
mode_Target: Cone
radius_Target: 60
degrees_Target: 90
ai_type: ai_action_offensive
Loading