Skip to content

Commit

Permalink
Merge pull request #413 from doug1234/master
Browse files Browse the repository at this point in the history
Add improved skirmish feat.
  • Loading branch information
doug1234 authored Aug 14, 2020
2 parents 6173d87 + c0a2151 commit 03ef626
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 2 deletions.
Binary file modified tpdata/co8infra.dat
Binary file not shown.
Binary file modified tpdata/tpgamefiles.dat
Binary file not shown.
2 changes: 1 addition & 1 deletion tpdatasrc/tpgamefiles/rules/char_class/class046_scout.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def GetClassHelpTopic():
feat_skill_focus_jump, feat_skill_focus_knowledge, feat_skill_focus_listen, feat_skill_focus_move_silently, feat_skill_focus_open_lock,
feat_skill_focus_performance, feat_skill_focus_slight_of_hand, feat_skill_focus_profession, feat_skill_focus_read_lips, feat_skill_focus_ride,
feat_skill_focus_scry, feat_skill_focus_search, feat_skill_focus_sense_motive, feat_skill_focus_speak_language, feat_skill_focus_spellcraft, feat_skill_focus_spot,
feat_skill_focus_swim, feat_skill_focus_tumble, feat_skill_focus_use_magic_device, feat_skill_focus_use_rope, feat_skill_focus_survival, "Swift Ambusher"
feat_skill_focus_swim, feat_skill_focus_tumble, feat_skill_focus_use_magic_device, feat_skill_focus_use_rope, feat_skill_focus_survival, "Swift Ambusher", "Improved Skirmish"
]

class_skills = (skill_alchemy, skill_balance, skill_climb, skill_craft, skill_disable_device, skill_escape_artist, skill_hide, skill_jump, skill_knowledge_nature, skill_listen, skill_move_silently, skill_ride, skill_search, skill_sense_motive, skill_spot, skill_wilderness_lore, skill_swim, skill_tumble, skill_use_rope)
Expand Down
5 changes: 5 additions & 0 deletions tpdatasrc/tpgamefiles/rules/feats/improved skirmish.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: Improved Skirmish
flags: 12582912
prereqs:
description: If you move at least 20 feet away from where you were at the start of your turn, your skirmish damage increases by 2d6 and your competence bonus to AC from skirmish improves by 2. A scout can select Improved Skirmish as one of his scout bonus feats.
prereq descr: Skirmish +2d6/+1 AC
13 changes: 13 additions & 0 deletions tpdatasrc/tpgamefiles/scr/feats/feat - Improved Skirmish.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from toee import *
import char_editor

def CheckPrereq(attachee, classLeveled, abilityScoreRaised):

#Skirmish +2D6, +1 AC
scoutLevel = attachee.stat_level_get(stat_level_scout)
if classLeveled == stat_level_scout:
scoutLevel = scoutLevel + 1
if scoutLevel < 5:
return 0

return 1
66 changes: 66 additions & 0 deletions tpdatasrc/tpgamefiles/scr/tpModifiers/improved_skirmish.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
from templeplus.pymod import PythonModifier
from toee import *
import tpdp
import math

#Improved Skirmish: Complete Scoundrel, p. 78

print "Registering Improved Skirmish"

# Global variables for keeping track of the location of the scout at the beginning of the round
# They do not need to be persistent except during a scout's turn
improved_skimish_start_position_x = 0.0
improved_skimish_start_position_y = 0.0
improved_skimish_start_location = long()

#Determine if skrimish is enabled based on if the scout has moved 10 feet
def ImprovedSkirmishMovedDistance(attachee, args, evt_obj):
#Keep track of how far the scout as moved from their initial position (not total distance moved)
global improved_skimish_start_location
global improved_skimish_start_position_x
global improved_skimish_start_position_y

#The distance needs to location at the beginning of the round needs to be adjusted by the radius (which is in inches)
moveDistance = int(attachee.distance_to(improved_skimish_start_location, improved_skimish_start_position_x, improved_skimish_start_position_y) + (attachee.radius / 12.0))

args.set_arg(0, moveDistance)

return 0

def ImprovedSkirmishReset(attachee, args, evt_obj):
global improved_skimish_start_location
global improved_skimish_start_position_x
global improved_skimish_start_position_y

#Save the initial position for the scout and the distance moved for the round
improved_skimish_start_position_x = attachee.off_x
improved_skimish_start_position_y = attachee.off_y
improved_skimish_start_location = attachee.location

#Zero out the total distance moved from the start position
args.set_arg(0, 0)
return 0

def ImprovedSkirmishACBonus(attachee, args, evt_obj):
distance = args.get_arg(0)

#20 foot move required for the bonus
if distance >= 20:
evt_obj.return_val += 2
return 0

def ImprovedSkirmishBonusDice(attachee, args, evt_obj):
distance = args.get_arg(0)

#20 foot move required for the bonus
if distance >= 20:
evt_obj.return_val += 2
return 0

daringOutlaw = PythonModifier("Improved Skirmish", 4) # distance, spare, spare, spare
daringOutlaw.MapToFeat("Improved Skirmish")
daringOutlaw.AddHook(ET_OnD20Signal, EK_S_Combat_Critter_Moved, ImprovedSkirmishMovedDistance, ())
daringOutlaw.AddHook(ET_OnBeginRound, EK_NONE, ImprovedSkirmishReset, ())
daringOutlaw.AddHook(ET_OnD20PythonQuery, "Skirmish Additional AC", ImprovedSkirmishACBonus, ())
daringOutlaw.AddHook(ET_OnD20PythonQuery, "Skirmish Additional Dice", ImprovedSkirmishBonusDice, ())

4 changes: 4 additions & 0 deletions tpdatasrc/tpgamefiles/scr/tpModifiers/scout.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,17 @@ def GetSkirmishACBonus(obj):
scoutBonusLevels = obj.d20_query("Skrimish Level Bonus")
scoutLevel = scoutLevel + scoutBonusLevels
bonusValue = int((scoutLevel + 1.0) / 4.0)
skirmishExtraAC = obj.d20_query("Skirmish Additional AC")
bonusValue += skirmishExtraAC
return bonusValue

def GetSkirmishDamageDice(obj):
scoutLevel = float(obj.stat_level_get(stat_level_scout))
scoutBonusLevels = obj.d20_query("Skrimish Level Bonus")
scoutLevel = scoutLevel + scoutBonusLevels
bonusValue = int((scoutLevel - 1)/ 4.0 + 1)
skirmishExtraDice = obj.d20_query("Skirmish Additional Dice")
bonusValue += skirmishExtraDice
bonusDice = str(bonusValue) + "d6"
return bonusDice

Expand Down
2 changes: 1 addition & 1 deletion tpdatasrc/tpgamefiles/scr/tpModifiers/swift_ambusher.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

#Swift Ambusher: Complete Scoundrel, p. 81

print "Registering Complete Scoundrel"
print "Registering Swift Ambusher"

def SkirmishBonusLevels(attachee, args, evt_obj):
rogueLevel = attachee.stat_level_get(stat_level_rogue)
Expand Down

0 comments on commit 03ef626

Please sign in to comment.