Exemple #1
0
def spell_parse_function(field):
	functions = {
		'school': parse_school,
		'level': parse_level,
		'components': parse_components,
		'component': parse_components,
		'saving throw': parse_saving_throw,
		'saving': parse_saving_throw,
		'save': parse_saving_throw,
		'casting time': parse_casting_time,
		'casting': parse_casting_time,
		'preparation time': default_closure('preparation_time'),
		'range': default_closure('range'),
		'duration': default_closure('duration'),
		'spell resistance': default_closure('spell_resistance'),
		'sr': default_closure('spell_resistance'),
		'effect': effect_closure('Effect'),
		'targets': effect_closure('Targets'),
		'target': effect_closure('Target'),
		'area': effect_closure('Area'),
		'target or area': effect_closure('Target or Area'),
		'area or target': effect_closure('Target or Area'),
		'target or targets': effect_closure('Target or Targets'),
		'target, effect, or area': effect_closure('Target, Effect, or Area'),
		'target, effect, area': effect_closure('Target, Effect, or Area'),
		'target/effect': effect_closure('Target or Effect'),
	}
	return functions[field.lower()]
Exemple #2
0
def spell_parse_function(field):
    functions = {
        'school': parse_school,
        'level': parse_level,
        'components': parse_components,
        'component': parse_components,
        'saving throw': parse_saving_throw,
        'saving': parse_saving_throw,
        'save': parse_saving_throw,
        'casting time': parse_casting_time,
        'casting': parse_casting_time,
        'preparation time': default_closure('preparation_time'),
        'range': default_closure('range'),
        'duration': default_closure('duration'),
        'spell resistance': default_closure('spell_resistance'),
        'sr': default_closure('spell_resistance'),
        'effect': effect_closure('Effect'),
        'targets': effect_closure('Targets'),
        'target': effect_closure('Target'),
        'area': effect_closure('Area'),
        'target or area': effect_closure('Target or Area'),
        'area or target': effect_closure('Target or Area'),
        'target or targets': effect_closure('Target or Targets'),
        'target, effect, or area': effect_closure('Target, Effect, or Area'),
        'target, effect, area': effect_closure('Target, Effect, or Area'),
        'target/effect': effect_closure('Target or Effect'),
    }
    return functions[field.lower()]
Exemple #3
0
def item_parse_function(field, detail):
	functions = {
		'aura': default_closure('aura'),
		'cl': default_closure('cl'),
		'slot': parse_item_slot,
		'price': default_closure('price'),
		'weight': default_closure('weight'),
		'type': default_closure('item_type'),
	}
	if functions.has_key(field.lower()):
		return functions[field.lower()]
	else:
		return parse_item_misc(detail, field)
Exemple #4
0
def parse_creature_descriptors(creature, value):
	real = []
	for tup in value:
		key, val = tup
		if val.startswith('AC'):
			default_closure('ac')(creature, val[2:])
		else:
			real.append(val)
	parse_creature_descriptor(creature, real.pop())
	if len(real) > 0:
		parse_creature_classes(creature, real.pop(0))
	if len(real) > 0:
		raise Exception("Too many descriptors: %s" % value)
def kingdom_resource_parse_function(field):
	functions = {
		'cr': parse_cr,
		'kingdom': default_closure('kingdom'),
		'discount': default_closure('discount'),
		'upgrades from': default_closure('upgrade_from'),
		'upgrade from': default_closure('upgrade_from'),
		'upgrades to': default_closure('upgrade_to'),
		'upgrade to': default_closure('upgrade_to'),
		'magic items': default_closure('magic_items'),
		'settlement': default_closure('settlement'),
		'special': default_closure('special'),
		'limit': default_closure('limit'),
	}
	return functions[field.lower()]
def kingdom_resource_parse_function(field):
    functions = {
        'cr': parse_cr,
        'kingdom': default_closure('kingdom'),
        'discount': default_closure('discount'),
        'upgrades from': default_closure('upgrade_from'),
        'upgrade from': default_closure('upgrade_from'),
        'upgrades to': default_closure('upgrade_to'),
        'upgrade to': default_closure('upgrade_to'),
        'magic items': default_closure('magic_items'),
        'settlement': default_closure('settlement'),
        'special': default_closure('special'),
        'limit': default_closure('limit'),
    }
    return functions[field.lower()]
Exemple #7
0
def army_parse_function(field):
    functions = {
        'cr': parse_xp,
        'descriptor': parse_descriptor,
        'hp': default_closure('hp'),
        'acr': default_closure('acr'),
        'dv': default_closure('dv'),
        'om': default_closure('om'),
        'special': default_closure('special'),
        'speed': default_closure('speed'),
        'consumption': default_closure('consumption'),
        'tactics': default_closure('tactics'),
        'note': default_closure('note'),
        'resources': default_closure('resources'),
    }
    return functions[field.lower()]
def affliction_parse_function(field):
	functions = {
		'type': parse_affliction_type,
		'addiction': parse_addiction,
		'price': default_closure('price'),
		'damage': default_closure('damage'),
		'save': default_closure('save'),
		'frequency': default_closure('frequency'),
		'effect': default_closure('effect'),
		'effects': default_closure('effect'),
		'cure': default_closure('cure'),
		'onset': default_closure('onset'),
		'initial effect': default_closure('initial_effect'),
		'secondary effect': default_closure('secondary_effect'),
	}
	return functions[field.lower()]
Exemple #9
0
def affliction_parse_function(field):
    functions = {
        'type': parse_affliction_type,
        'addiction': parse_addiction,
        'price': default_closure('price'),
        'damage': default_closure('damage'),
        'save': default_closure('save'),
        'frequency': default_closure('frequency'),
        'effect': default_closure('effect'),
        'effects': default_closure('effect'),
        'cure': default_closure('cure'),
        'onset': default_closure('onset'),
        'initial effect': default_closure('initial_effect'),
        'secondary effect': default_closure('secondary_effect'),
    }
    return functions[field.lower()]
Exemple #10
0
def army_parse_function(field):
	functions = {
		'cr': parse_xp,
		'descriptor': parse_descriptor,
		'hp': default_closure('hp'),
		'acr': default_closure('acr'),
		'dv': default_closure('dv'),
		'om': default_closure('om'),
		'special': default_closure('special'),
		'speed': default_closure('speed'),
		'consumption': default_closure('consumption'),
		'tactics': default_closure('tactics'),
		'note': default_closure('note'),
		'resources': default_closure('resources'),
	}
	return functions[field.lower()]
Exemple #11
0
def parse_creature_descriptor(creature, value):
    if value.startswith('AC'):
        default_closure('ac')(creature, value[2:])
        return
    bsb = None
    if value.find('(but see below) ') > -1:
        value = value.replace('(but see below) ', '')
        bsb = " (but see below)"
    any_al = None
    if value.find('Any alignment (same as creator)') > -1:
        any_al = 'Any alignment (same as creator)'
        value = value.replace(any_al, 'Any')
    descsplit = value.split("(")
    if len(descsplit) > 1:
        value = descsplit.pop(0)
        subtype = ''.join(descsplit)
        subtype = subtype.replace(')', '')
        creature['creature_subtype'] = subtype
    values = value.split()
    if len(values) == 2:
        creature['alignment'] = values.pop(0)
        creature['creature_type'] = cap_words(values.pop(0))
    elif len(values) >= 3:
        creature['alignment'] = values.pop(0)
        if any_al:
            creature['alignment'] = any_al
        if values[0] == 'alignment':
            creature['alignment'] = creature['alignment'] + " " + values.pop(0)
        if bsb:
            creature['alignment'] = creature['alignment'] + bsb
        if values[0] == 'or':
            alignment = creature['alignment']
            alignment = alignment + " " + values.pop(0)
            alignment = alignment + " " + values.pop(0)
            creature['alignment'] = alignment
        creature['size'] = values.pop(0)
        creature['creature_type'] = cap_words(values.pop(0))
    if len(values) > 0:
        if values[0] in ['beast', 'humanoid']:
            creature[
                'creature_type'] = creature['creature_type'] + " " + cap_words(
                    values.pop(0))
    if len(values) > 0:
        raise Exception('well f**k: %s' % (values))
Exemple #12
0
def parse_creature_descriptor(creature, value):
	print "%s: %s" %(creature, value)
	if value.startswith('AC'):
		default_closure('ac')(creature, value[2:])
		return
	bsb = None
	if value.find('(but see below) ') > -1:
		value = value.replace('(but see below) ', '')
		bsb = " (but see below)"
	any_al = None
	if value.find('Any alignment (same as creator)') > -1:
		any_al = 'Any alignment (same as creator)'
		value = value.replace(any_al, 'Any')
	descsplit = value.split("(")
	if len(descsplit) > 1:
		value = descsplit.pop(0)
		subtype = ''.join(descsplit)
		subtype = subtype.replace(')', '')
		creature['creature_subtype'] = subtype
	values = value.split()
	if len(values) == 2:
		creature['alignment'] = values.pop(0)
		creature['creature_type'] = cap_words(values.pop(0))
	elif len(values) >= 3:
		creature['alignment'] = values.pop(0)
		if any_al:
			creature['alignment'] = any_al
		if values[0] == 'alignment':
			creature['alignment'] = creature['alignment'] + " " + values.pop(0)
		if bsb:
			creature['alignment'] = creature['alignment'] + bsb
		if values[0] == 'or':
			alignment = creature['alignment']
			alignment = alignment + " " + values.pop(0)
			alignment = alignment + " " + values.pop(0)
			creature['alignment'] = alignment
		creature['size'] = values.pop(0)
		creature['creature_type'] = cap_words(values.pop(0))
	if len(values) > 0:
		if values[0] in ['beast', 'humanoid']:
			creature['creature_type'] = creature['creature_type'] + \
				" " + cap_words(values.pop(0))
	if len(values) > 0:
		raise Exception('well f**k: %s' %(values))
Exemple #13
0
def animal_companion_parse_function(field):
	functions = {
		'ac': default_closure('ac'),
		'cmd': default_closure('cmd'),
		'attack': default_closure('attack'),
		'ability scores': default_closure('ability_scores'),
		'special qualities': default_closure('special_qualities'),
		'special attacks': default_closure('special_attacks'),
		'size': default_closure('size'),
		'speed': default_closure('speed')
	}
	return functions[field.lower()]
Exemple #14
0
def item_parse_function(field):
    functions = {
        'aura': default_closure('aura'),
        'cl': default_closure('cl'),
        'slot': parse_item_slot,
        'price': default_closure('price'),
        'skill': default_closure('skill'),
        'weight': default_closure('weight'),
        'requirements': default_closure('requirements'),
        'cr increase': default_closure('cr_increase'),
        'cost': default_closure('cost'),
    }
    return functions[field.lower()]
Exemple #15
0
def item_parse_function(field):
    functions = {
        "aura": default_closure("aura"),
        "cl": default_closure("cl"),
        "slot": parse_item_slot,
        "price": default_closure("price"),
        "skill": default_closure("skill"),
        "weight": default_closure("weight"),
        "requirements": default_closure("requirements"),
        "cr increase": default_closure("cr_increase"),
        "cost": default_closure("cost"),
    }
    return functions[field.lower()]
Exemple #16
0
def trap_parse_function(field):
    functions = {
        'type': default_closure('trap_type'),
        'perception': default_closure('perception'),
        'disable device': default_closure('disable_device'),
        'duration': default_closure('duration'),
        'effect': default_closure('effect'),
        'trigger': default_closure('trigger'),
        'reset': default_closure('reset'),
    }
    return functions[field.lower()]
Exemple #17
0
def trap_parse_function(field):
    functions = {
        "type": default_closure("trap_type"),
        "perception": default_closure("perception"),
        "disable device": default_closure("disable_device"),
        "duration": default_closure("duration"),
        "effect": default_closure("effect"),
        "trigger": default_closure("trigger"),
        "reset": default_closure("reset"),
    }
    return functions[field.lower()]
Exemple #18
0
def animal_companion_parse_function(field):
    functions = {
        'ac': default_closure('ac'),
        'attack': default_closure('attack'),
        'ability scores': default_closure('ability_scores'),
        'special qualities': default_closure('special_qualities'),
        'special attacks': default_closure('special_attacks'),
        'size': default_closure('size'),
        'speed': default_closure('speed')
    }
    return functions[field.lower()]
Exemple #19
0
def haunt_parse_function(field):
    functions = {
        'xp': parse_xp,
        'caster level': default_closure('caster_level'),
        'notice': default_closure('notice'),
        'hp': default_closure('hp'),
        'trigger': default_closure('trigger'),
        'reset': default_closure('reset'),
        'effect': default_closure('effect'),
        'destruction': default_closure('destruction'),
    }
    return functions[field.lower()]
Exemple #20
0
def trap_parse_function(field):
	functions = {
		'cr': parse_cr,
		'type': default_closure('trap_type'),
		'perception': default_closure('perception'),
		'disable device': default_closure('disable_device'),
		'duration': default_closure('duration'),
		'effect': default_closure('effect'),
		'trigger': default_closure('trigger'),
		'reset': default_closure('reset'),
	}
	return functions[field.lower()]
Exemple #21
0
def haunt_parse_function(field):
    functions = {
        "xp": parse_xp,
        "caster level": default_closure("caster_level"),
        "notice": default_closure("notice"),
        "hp": default_closure("hp"),
        "trigger": default_closure("trigger"),
        "reset": default_closure("reset"),
        "effect": default_closure("effect"),
        "destruction": default_closure("destruction"),
    }
    return functions[field.lower()]
Exemple #22
0
def vehicle_parse_function(field):
	functions = {
		'descriptor': parse_vehicle_descriptor,
		'squares': default_closure('squares'),
		'cost': default_closure('squares'),
		'ac': default_closure('ac'),
		'hardness': default_closure('hardness'),
		'hp': default_closure('hp'),
		'base save': default_closure('base_save'),
		'maximum speed': default_closure('maximum_speed'),
		'acceleration': default_closure('acceleration'),
		'cmb': default_closure('cmb'),
		'cmd': default_closure('cmd'),
		'ramming damage': default_closure('ramming_damage'),
		'propulsion': default_closure('propulsion'),
		'driving check': default_closure('driving_check'),
		'forward facing': default_closure('forward_facing'),
		'driving device': default_closure('driving_device'),
		'driving space': default_closure('driving_space'),
		'decks': default_closure('decks'),
		'deck': default_closure('decks'),
		'weapons': default_closure('weapons'),
		'crew': default_closure('crew'),
		'passengers': default_closure('passengers'),
	}
	return functions[field.lower()]
Exemple #23
0
def creature_parse_function(field):
	functions = {
		'cr': parse_cr,
		'size': default_closure('size'),
		'hit dice': default_closure('hit_dice'),
		'natural armor': default_closure('natural_armor'),
		'breath weapon': default_closure('breath_weapon'),

		'init': default_closure('init'),
		'senses': default_closure('senses'),
		'perception': perception_fix,
		'aura': default_closure('aura'),

		'ac': default_closure('ac'),
		'hp': default_closure('hp'),
		'fort': default_closure('fortitude'),
		'ref': default_closure('reflex'),
		'will': default_closure('will'),
		'defensive abilities': default_closure('defensive_abilities'),
		'defensive ability': default_closure('defensive_abilities'),
		'dr': default_closure('dr'),
		'immune': default_closure('immune'),
		'resist': default_closure('resist'),
		'sr': default_closure('sr'),
		'weaknesses': default_closure('weaknesses'),
		'vulnerability': default_closure('weaknesses'),
		'weakness': default_closure('weaknesses'),
		'sq': default_closure('special_qualities'),
		'special qualities': default_closure('special_qualities'),

		'speed': default_closure('speed'),
		'melee': default_closure('melee'),
		'ranged': default_closure('ranged'),
		'special attacks': default_closure('special_attacks'),
		'special attack': default_closure('special_attacks'),
		'attacks': default_closure('special_attacks'),

		'spell-like abilities': creature_spell_closure('spell-like abilities'),
		'spell-lilke abilities': creature_spell_closure('spell-like abilities'),
		'spell-like ability': creature_spell_closure('spell-like abilities'),
		'bloodline spell-like ability': creature_spell_closure('bloodline spell-like ability'),
		'bloodline spell-like abilities': creature_spell_closure('bloodline spell-like abilities'),
		'bloodline': creature_spell_closure('bloodline'),
		'arcane spell-like abilities': creature_spell_closure('arcane spell-like abilities'),
		'arcane school spell-like abilities': creature_spell_closure('arcane school spell-like abilities'),
		'domain spell-like abilities': creature_spell_closure('domain spell-like abilities'),
		'ifrit spell-like abilities': creature_spell_closure('ifrit spell-like abilities'),
		'gnome spell-like abilities': creature_spell_closure('gnome spell-like abilities'),
		'sorcerer spell-like abilities': creature_spell_closure('sorcerer spell-like abilities'),
		'paladin spell-like abilities': creature_spell_closure('paladin spell-like abilities'),
		'rogue spell-like abilities': creature_spell_closure('rogue spell-like abilities'),
		'conjurer spell-like abilities': creature_spell_closure('conjurer spell-like abilities'),
		'transmuter spell-like abilities': creature_spell_closure('transmuter spell-like abilities'),
		'enchanter spell-like abilities': creature_spell_closure('enchanter spell-like abilities'),
		'evoker spell-like abilities': creature_spell_closure('evoker spell-like abilities'),
		'dragon disciple spell-like abilities': creature_spell_closure('dragon disciple spell-like abilities'),
		'shadowdancer spell-like abilities': creature_spell_closure('shadowdancer spell-like abilities'),

		'spells prepared': creature_spell_closure('spells prepared'),
		'adept spells prepared': creature_spell_closure('adept spells prepared'),
		'bard spells prepared': creature_spell_closure('bard spells prepared'),
		'cleric spells prepared': creature_spell_closure('cleric spells prepared'),
		'conjurer spells prepared': creature_spell_closure('conjurer spells prepared'),
		'druid spells prepared': creature_spell_closure('druid spells prepared'),
		'paladin spells prepared': creature_spell_closure('paladin spells prepared'),
		'ranger spells prepared': creature_spell_closure('ranger spells prepared'),
		'witch spells prepared': creature_spell_closure('witch spells prepared'),
		'wizard spells prepared': creature_spell_closure('wizard spells prepared'),
		'necromancer spells prepared': creature_spell_closure('necromancer spells prepared'),
		'enchanter spells prepared': creature_spell_closure('enchanter spells prepared'),
		'diviner spells prepared': creature_spell_closure('diviner spells prepared'),
		'transmuter spells prepared': creature_spell_closure('transmuter spells prepared'),
		'evoker spells prepared': creature_spell_closure('evoker spells prepared'),
		'illusionist spells prepared': creature_spell_closure('illusionist spells prepared'),
		'abjurer spells prepared': creature_spell_closure('abjurer spells prepared'),

		'spells known': creature_spell_closure('spells known'),
		'bard spells known': creature_spell_closure('bard spells known'),
		'sorcerer spells known': creature_spell_closure('sorcerer spells known'),

		'opposition schools': creature_spell_closure('opposition schools'),
		'prohibited schools': creature_spell_closure('prohibited schools'),
		'd': creature_spell_closure('d'),
		'domains': creature_spell_closure('domains'),

		'str': default_closure('strength'),
		'dex': default_closure('dexterity'),
		'con': default_closure('constitution'),
		'int': default_closure('intelligence'),
		'wis': default_closure('wisdom'),
		'cha': default_closure('charisma'),
		'base atk': default_closure('base_attack'),
		'atk': default_closure('base_attack'),
		'cmb': default_closure('cmb'),
		'cmd': default_closure('cmd'),
		'feats': default_closure('feats'),
		'skills': default_closure('skills'),
		'racial modifiers': default_closure('racial_modifiers'),
		'racial modifier': default_closure('racial_modifiers'),
		'languages': default_closure('languages'),
		'language': default_closure('languages'),
		'gear': default_closure('gear'),
		'combat gear': default_closure('combat_gear'),
		'other gear': default_closure('other_gear'),
		'boon': default_closure('boon'),

		'space': default_closure('space'),
		'reach': default_closure('reach'),

		'environment': default_closure('environment'),
		'environment any': parse_broken_environment,
		'organization': default_closure('organization'),
		'treasure': default_closure('treasure'),
		'base': noop,
		'special': noop,
		'descriptor': parse_creature_descriptor
	}
	if field.lower().startswith('xp'):
		return xp_closure('field')
	return functions[field.lower()]
def mythic_spell_parse_function(field):
	functions = {
		'source': default_closure('spell_source'),
	}
	return functions[field.lower()]
Exemple #25
0
def talent_parse_function(field):
	functions = {
		'element': default_closure('element'),
		'elements': default_closure('elements'),
		'type': default_closure('talent_type'),
		'level': default_closure('level'),
		'burn': default_closure('burn'),
		'blast type': default_closure('blast_type'),
		'damage': default_closure('damage'),
		'prerequisite': default_closure('prerequisites'),
		'prerequisites': default_closure('prerequisites'),
		'associated blasts': default_closure('associated_blasts'),
		'saving throw': default_closure('saving_throw'),
		'spell resistance': default_closure('spell resistance'),
		'': default_closure(''),
	}
	return functions[field.lower()]
Exemple #26
0
def vehicle_parse_function(field):
    functions = {
        'descriptor': parse_vehicle_descriptor,
        'squares': default_closure('squares'),
        'cost': default_closure('squares'),
        'ac': default_closure('ac'),
        'hardness': default_closure('hardness'),
        'hp': default_closure('hp'),
        'base save': default_closure('base_save'),
        'maximum speed': default_closure('maximum_speed'),
        'acceleration': default_closure('acceleration'),
        'cmb': default_closure('cmb'),
        'cmd': default_closure('cmd'),
        'ramming damage': default_closure('ramming_damage'),
        'propulsion': default_closure('propulsion'),
        'driving check': default_closure('driving_check'),
        'forward facing': default_closure('forward_facing'),
        'driving device': default_closure('driving_device'),
        'driving space': default_closure('driving_space'),
        'decks': default_closure('decks'),
        'deck': default_closure('decks'),
        'weapons': default_closure('weapons'),
        'crew': default_closure('crew'),
        'passengers': default_closure('passengers'),
    }
    return functions[field.lower()]
Exemple #27
0
def creature_parse_function(field):
	functions = {
		'init': default_closure('init'),
		'senses': default_closure('senses'),
		'perception': perception_fix,
		'aura': default_closure('aura'),

		'ac': default_closure('ac'),
		'hp': default_closure('hp'),
		'fort': default_closure('fortitude'),
		'ref': default_closure('reflex'),
		'will': default_closure('will'),
		'defensive abilities': default_closure('defensive_abilities'),
		'defensive ability': default_closure('defensive_abilities'),
		'dr': default_closure('dr'),
		'immune': default_closure('immune'),
		'resist': default_closure('resist'),
		'sr': default_closure('sr'),
		'weaknesses': default_closure('weaknesses'),
		'vulnerability': default_closure('weaknesses'),
		'weakness': default_closure('weaknesses'),
		'sq': default_closure('special_qualities'),
		'special qualities': default_closure('special_qualities'),

		'speed': default_closure('speed'),
		'melee': default_closure('melee'),
		'ranged': default_closure('ranged'),
		'special attacks': default_closure('special_attacks'),
		'special attack': default_closure('special_attacks'),
		'attacks': default_closure('special_attacks'),

		'spell-like abilities': creature_spell_closure('spell-like abilities'),
		'spell-lilke abilities': creature_spell_closure('spell-like abilities'),
		'spell-like ability': creature_spell_closure('spell-like abilities'),
		'bloodline spell-like ability': creature_spell_closure('bloodline spell-like ability'),
		'ifrit spell-like abilities': creature_spell_closure('ifrit spell-like abilities'),
		'arcane school spell-like abilities': creature_spell_closure('arcane school spell-like abilities'),
		'spells prepared': creature_spell_closure('spells prepared'),
		'cleric spells prepared': creature_spell_closure('cleric spells prepared'),
		'ranger spells prepared': creature_spell_closure('ranger spells prepared'),
		'witch spells prepared': creature_spell_closure('witch spells prepared'),
		'spells known': creature_spell_closure('spells known'),
		'sorcerer spells known': creature_spell_closure('sorcerer spells known'),
		'opposition schools': creature_spell_closure('opposition schools'),
		'd': creature_spell_closure('d'),
		'domains': creature_spell_closure('domains'),
		'domain spell-like abilities': creature_spell_closure('domain spell-like abilities'),
		'conjurer spells prepared': creature_spell_closure('conjurer spells prepared'),
		'sorcerer spell-like abilities': creature_spell_closure('sorcerer spell-like abilities'),
		'bloodline': creature_spell_closure('bloodline'),

		'str': default_closure('strength'),
		'dex': default_closure('dexterity'),
		'con': default_closure('constitution'),
		'int': default_closure('intelligence'),
		'wis': default_closure('wisdom'),
		'cha': default_closure('charisma'),
		'base atk': default_closure('base_attack'),
		'atk': default_closure('base_attack'),
		'cmb': default_closure('cmb'),
		'cmd': default_closure('cmd'),
		'feats': default_closure('feats'),
		'skills': default_closure('skills'),
		'racial modifiers': default_closure('racial_modifiers'),
		'racial modifier': default_closure('racial_modifiers'),
		'languages': default_closure('languages'),
		'language': default_closure('languages'),
		'gear': default_closure('gear'),

		'space': default_closure('space'),
		'reach': default_closure('reach'),

		'environment': default_closure('environment'),
		'environment any': parse_broken_environment,
		'organization': default_closure('organization'),
		'treasure': default_closure('treasure'),
		'base': noop,
		'special': noop,
		'descriptor': parse_creature_descriptor
	}
	if field.lower().startswith('xp'):
		return xp_closure('field')
	return functions[field.lower()]
Exemple #28
0
def resource_parse_function(field):
    functions = {
        'benefit': default_closure('benefit'),
        'create': default_closure('create'),
        'earnings': default_closure('earnings'),
        'rooms': default_closure('rooms'),
        'size': default_closure('size'),
        'skills': default_closure('skills'),
        'teams': default_closure('teams'),
        'time': default_closure('time'),
        'upgrades from': default_closure('upgrade_from'),
        'upgrade from': default_closure('upgrade_from'),
        'upgrades to': default_closure('upgrade_to'),
        'upgrade to': default_closure('upgrade_to'),
        'wage': default_closure('wage'),
    }
    return functions[field.lower()]
Exemple #29
0
def resource_parse_function(field):
	functions = {
		'benefit': default_closure('benefit'),
		'create': default_closure('create'),
		'earnings': default_closure('earnings'),
		'rooms': default_closure('rooms'),
		'size': default_closure('size'),
		'skills': default_closure('skills'),
		'teams': default_closure('teams'),
		'time': default_closure('time'),
		'upgrades from': default_closure('upgrade_from'),
		'upgrade from': default_closure('upgrade_from'),
		'upgrades to': default_closure('upgrade_to'),
		'upgrade to': default_closure('upgrade_to'),
		'wage': default_closure('wage'),
	}
	return functions[field.lower()]
Exemple #30
0
def settlement_parse_function(field):
	functions = {
		'descriptor': parse_settlement_descriptor,
		'corruption': default_closure('corruption'),
		'crime': default_closure('crime'),
		'economy': default_closure('economy'),
		'law': default_closure('law'),
		'lore': default_closure('lore'),
		'society': default_closure('society'),
		'qualities': default_closure('qualities'),
		'danger': default_closure('danger'),
		'disadvantages': default_closure('disadvantages'),
		'government': default_closure('government'),
		'population': default_closure('population'),
		'notable npcs': noop,
		'base value': default_closure('base_value'),
		'purchase limit': default_closure('purchase_limit'),
		'spellcasting': default_closure('spellcasting'),
		'minor items': default_closure('minor_items'),
		'medium items': default_closure('medium_items'),
		'major items': default_closure('major_items'),
	}
	return functions[field.lower()]
Exemple #31
0
def mythic_spell_parse_function(field):
    functions = {
        'source': default_closure('spell_source'),
    }
    return functions[field.lower()]