def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	
	#Turn undead or rebuke undead feat
	if not (char_editor.has_feat(feat_turn_undead) or char_editor.has_feat(feat_rebuke_undead)):
		return 0
		
	return 1
示例#2
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	
	#Many Shot, Point Blank Shot and Rapid Shot are required either standard feats or from the ranger class
	if char_editor.has_feat(feat_manyshot) or char_editor.has_feat(feat_ranger_manyshot):
		if char_editor.has_feat(feat_rapid_shot) or char_editor.has_feat(feat_ranger_rapid_shot):
			if char_editor.has_feat(feat_point_blank_shot): 
				return 1
	
	return 0
示例#3
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    if char_editor.has_feat(feat_sneak_attack):
        return 1

    if char_editor.has_feat("Skirmish"):
        return 1

    return 0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Str requirement enforced by the engine

    if not char_editor.has_feat(
            feat_two_weapon_fighting) and not char_editor.has_feat(
                feat_two_weapon_fighting_ranger):
        return 0

    return 1
示例#5
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	if char_editor.has_feat(feat_weapon_focus_light_crossbow):
		return 1
	
	if char_editor.has_feat(feat_weapon_focus_heavy_crossbow):
		return 1
	
	if char_editor.has_feat(feat_weapon_focus_hand_crossbow):
		return 1
		
	return 0
示例#6
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Req 1, turn undead feat
    if not (char_editor.has_feat(feat_turn_undead)
            or char_editor.has_feat(feat_rebuke_undead)):
        return 0

    #Req2, shield proficency
    if not char_editor.has_feat(feat_shield_proficiency):
        return 0

    return 1
示例#7
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Req 1, turn undead feat
    if not (char_editor.has_feat(feat_turn_undead)
            or char_editor.has_feat(feat_rebuke_undead)):
        return 0

    #Req2, Divine Caster Level 5
    if attachee.highest_divine_caster_level >= 5:
        return 1

    return 0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Req 1, turn undead or rebuke undead feat
    if not (char_editor.has_feat(feat_turn_undead)
            or char_editor.has_feat(feat_rebuke_undead)):
        return 0

    #Req2, Cast First Level Divine Spells
    if attachee.divine_spell_level_can_cast() > 0:
        return 1

    return 0
示例#9
0
def CheckPrereq(attachee, classLeveled, abilityScoreRaised):

    if not char_editor.has_feat(feat_shield_proficiency):
        return 0

    if not char_editor.has_feat(feat_combat_casting):
        return 0

    concentration_level = char_editor.skill_ranks_get(skill_concentration)
    if concentration_level < 5:
        return 0

    return 1
示例#10
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	
	#BAB +11 or greater enforced by the engine
	
	#Must have two-weapon fighting
	if not char_editor.has_feat(feat_two_weapon_fighting) and not char_editor.has_feat(feat_two_weapon_fighting_ranger):
		return 0
	
	#Dex 15+
	if char_editor.stat_level_get(stat_dexterity) < 15:
		return 0
		
	return 1
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Wild Shape Check
    if not char_editor.has_feat(feat_wild_shape):
        return 0

    return 1
示例#12
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    # BAB requirement is enforced via the feat requirement field (266, 4) to reflect updated BAB value
    #if attachee.get_base_attack_bonus() < 4:
    #	return 0

    if char_editor.has_feat(feat_power_attack) == 0:
        return 0

    #Check for any favored enemy feat
    for i in range(feat_favored_enemy_aberration,
                   feat_favored_enemy_humanoid_human):
        if char_editor.has_feat(i):
            return 1

    return 0
示例#13
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Barbarian Rage Check
    if not char_editor.has_feat(feat_barbarian_rage):
        return 0

    return 1
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Dex and BAB requirements enforced by the engine

    if not char_editor.has_feat(feat_two_weapon_defense):
        return 0

    if not char_editor.has_feat(
            feat_two_weapon_fighting) and not char_editor.has_feat(
                feat_two_weapon_fighting_ranger):
        return 0

    if not char_editor.has_feat("Improved Two-Weapon Defense"):
        return 0

    return 1
示例#15
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Shield proficency required
    if not char_editor.has_feat(feat_shield_proficiency):
        return 0

    return 1
示例#16
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Bardic Music Check
    if not char_editor.has_feat(feat_bardic_music):
        return 0

    return 1
示例#17
0
def LevelupGetBonusFeats( obj ):
	bonFeatInfo = []
	feat = ""
	newLvl = obj.stat_level_get( classEnum ) + 1
	#Find the normal feat for each level
	if newLvl == 7:
		feat = "Sudden Empower"
	elif newLvl == 10:
		feat = "Sudden Enlarge"
	elif newLvl == 15:
		feat = "Sudden Widen"
	elif newLvl == 20:
		feat = "Sudden Maximize"
	else:
		return #No bonus feat this level
	
	#The only option will be the normal feat if the chracter does not have it
	if not char_editor.has_feat(feat):
		featInfo = char_editor.FeatInfo(feat)
		featInfo.feat_status_flags |= 4 # always pickable
		bonFeatInfo.append(featInfo)
	else:
		#Any metamagic feat can be selected if the character does not have the normal feat
		bonus_feats = tpdp.get_metamagic_feats()
		
		#If the character already has the feat, he can select any metamagic feat
		for feat in bonus_feats:
			bonFeatInfo.append(char_editor.FeatInfo(feat))
	
	char_editor.set_bonus_feats(bonFeatInfo)
	return
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
    #BAB +6 enforced by engine

    #Must have sneak attack
    if not char_editor.has_feat(feat_sneak_attack):
        return 0

    return 1
示例#19
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #BAB +2 checked by engine

    #Stunning Fist Check
    if not char_editor.has_feat(feat_stunning_fist):
        return 0

    return 1
示例#20
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Sneak Attack Check
    if not char_editor.has_feat(feat_sneak_attack):
        return 0
    if char_editor.stat_level_get(
            stat_level_paladin
    ) > 1:  #workaround until I figure out how to check for immunity to fear
        return 0
    return 1
示例#21
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Barbarian Rage Check
    if not char_editor.has_feat(feat_barbarian_rage):
        return 0

    #Constitution greater than 13
    if char_editor.stat_level_get(stat_constitution) < 13:
        return 0

    return 1
示例#22
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	
	#Wildshape feat
	if not (char_editor.has_feat(feat_wild_shape)):
		return 0
	
	#Dextarity 13 or greater
	if char_editor.stat_level_get(stat_dexterity) < 13:
		return 0
	
	return 1
示例#23
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	
	#Must have the quicken feat
	if not char_editor.has_feat(feat_quicken_spell):
		return 0
		
	#Must have the sudden extend feat
	if not char_editor.has_feat("Sudden Extend"):
		return 0
		
	#Must have the sudden maximize feat
	if not char_editor.has_feat("Sudden Maximize"):
		return 0
		
	#Must have the sudden empower feat
	if not char_editor.has_feat("Sudden Empower"):
		return 0
		
	#Must have the sudden still feat
	if not char_editor.has_feat("Sudden Still"):
		return 0
		
	#Must have the sudden silent feat
	if not char_editor.has_feat("Sudden Silent"):
		return 0

	return 1
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    # BAB enforced via prefeq properties
    #if attachee.get_base_attack_bonus() < 5:
    #	return 0

    #Check for any favored enemy feat
    for i in range(feat_favored_enemy_aberration,
                   feat_favored_enemy_humanoid_human):
        if char_editor.has_feat(i):
            return 1

    return 0
示例#25
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #BAB +4 or greater enforced by the engine

    #Must be medium size or larger (this should get the base size)
    size = attachee.obj_get_int(obj_f_size)

    if (size < STAT_SIZE_MEDIUM):
        return 0

    #Powerful Charge Check
    if not char_editor.has_feat("Powerful Charge"):
        return 0

    return 1
示例#26
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):

    #Perform 4 ranks
    spellcraft_level = char_editor.skill_ranks_get(skill_spellcraft)
    if spellcraft_level < 4:
        return 0

    #Spellcraft 4 ranks
    perform_level = char_editor.skill_ranks_get(skill_perform)
    if perform_level < 4:
        return 0

    #bardic music class feature
    if not char_editor.has_feat(feat_bardic_music):
        return 0

    return 1
示例#27
0
def ObjMeetsPrereqs( obj ):
	
	#Maximum number of levels is 5
	classLvl = obj.stat_level_get(classEnum)
	if classLvl >= 5:
		return 0

	if obj.arcane_spell_level_can_cast() < 1:
		return 0
	if obj.get_base_attack_bonus() < 5:
		return 0
	if not obj.has_feat(feat_combat_casting):
		return 0
		
	#Can Cast 1st level or greater abjuration
	can_cast_abjuration = false
	known_spells = obj.spells_known
	for knSp in known_spells:
		if knSp.spell_level > 0:
			spell_entry = tpdp.SpellEntry(knSp.spell_enum)
			if spell_entry.spell_school_enum == Abjuration:
				can_cast_abjuration = true
				break
			
	if not can_cast_abjuration:
		return 0
		
	#Check for martial weapon proficiency
	if obj.has_feat(feat_martial_weapon_proficiency_all):
		return 1
			
	has_martial_feat = false
	for i in range (feat_martial_weapon_proficiency_throwing_axe , feat_martial_weapon_proficiency_composite_longbow):
		if char_editor.has_feat(i):
			has_martial_feat = true
	return has_martial_feat
示例#28
0
def CheckPrereq(attachee, classLevelled, abilityScoreRaised):
	# BAB enforced via prefeq properties
	#if attachee.get_base_attack_bonus() < 4:
	#	return 0
	
	#Paladin Smite Evil Check
	if char_editor.has_feat(feat_smite_evil):
		return 1
	
	#Destruction Domain Check
	domain_1 = attachee.obj_get_int(obj_f_critter_domain_1)
	domain_2 = attachee.obj_get_int(obj_f_critter_domain_2)
	if domain_1 == destruction or domain_2 == destruction:
		return 1
	
	#Blackguard Smite for level 2 or greater black guards
	if char_editor.stat_level_get(stat_level_blackguard) >= 2:
		return 1
	
	#Blackguard Smite for level 1 with at least one paladin level
	if char_editor.stat_level_get(stat_level_blackguard) == 1 and char_editor.stat_level_get(stat_level_paladin) >= 1:
		return 1
	
	return 0