def apply_skills(character): character.setdefault('skills', []) for skill in list(character['skills']): pass # character['skills'] = ...... character['points'].setdefault('spent', FlockDict()) character['points'].setdefault('available', FlockDict()) character['points']['spent']['mental'] = lambda: sum( skill.cost for skill in character['skills'] if skill.isMental) character['points']['available']['mental'] = lambda: character['points']['total']['mental'] - \ character['points']['spent']['mental'] character['points']['spent']['physical'] = lambda: sum( skill.cost for skill in character['skills'] if skill.isPhysical) character['points']['available']['physical'] = lambda: character['points']['total']['physical'] - \ character['points']['spent']['physical'] character['points']['spent']['heroic'] = lambda: sum( skill.cost for skill in character['skills'] if skill.isHeroic) character['points']['available']['heroic'] = lambda: character['points']['total']['heroic'] - \ character['points']['spent']['heroic'] character['points']['spent']['universal'] = lambda: -sum( min(0, character['points']['available'][pt_type]) for pt_type in character['points']['available'] if pt_type != 'universal') character['points']['available']['universal'] = lambda: character['points']['total']['universal'] - \ character['points']['spent']['universal']
def apply_level_allotments(character): if 'level' not in character: character['level'] = 1 character.setdefault('points', FlockDict()) character['points'].setdefault('total', FlockDict({'universal': 10})) character['points']['total']['mental'] = lambda: character[ 'level'] * character['bonuses']['Mental Skill Points'] character['points']['total']['physical'] = lambda: character[ 'level'] * character['bonuses']['Phy Skill Points'] character['points']['total']['heroic'] = lambda: character['level'] * ( character['level'] + 1 + character['bonuses']['heroics'])
def setUp(self): super().setUp() self.flock = FlockDict() self.flock['a'] = 'Original Value' self.flock['b'] = {'i': 'Original Value', 'ii': 42} self.flock['c'] = [1, 2, 3] self.flock['d'] = set('ABC')
def apply_racial_bonuses(character): if character["Race"] == "Human": preVal = character["Spirit"] character["Spirit"] = lambda: preVal + 2 character.setdefault('Racial Bonuses', FlockDict()) character['Racial Bonuses']['heroics'] = 1 # print("character bonuses {ct_type} sources {sources} bonuses {rb_type}".format( # ct_type=type(character.promises['bonuses']), rb_type=type(character.promises['Racial Bonuses']), # sources=character.promises['bonuses'].sources)) character.promises['bonuses'].sources.append(character['Racial Bonuses'])
def apply_attribute_table(character): if 'Attribute_Bonuses' not in character: character['Attribute_Bonuses'] = FlockDict() for (attribute, bonus), table in get_attribute_table().items(): character['Attribute_Bonuses'][bonus] = lookup(character, attribute, table) character['base_bonuses'] = {'Spell Points Multiple': {'General': 1}} character['bonuses'] = FlockAggregator( [character['Attribute_Bonuses'], character['base_bonuses']], cross_total)
def test_split_cache(self): self.flock2 = FlockDict() self.flock2['dest'] = reference(self.flock, 'source') self.flock2['nested_dest'] = {'dest': reference(self.flock, 'nested_source', 'source')} self.flock2['jump_dest'] = {'dest': reference(self.flock['nested_source'], 'source')} assert self.flock2['dest'] == self.flock2['nested_dest']['dest'] == 'Original Value' self.flock['source'] = '1st New Value' assert self.flock2['dest'] == '1st New Value' assert self.flock2['nested_dest']['dest'] == self.flock2['jump_dest']['dest'] == 'Original Value' self.flock['nested_source']['source'] = '2nd New Value' assert self.flock2['dest'] == '1st New Value' assert self.flock2['nested_dest']['dest'] == '2nd New Value' assert self.flock2['jump_dest']['dest'] == '2nd New Value'
def load_character(filename): sheet = pickle.load(open(filename, 'rb')) ret = FlockDict(sheet) return apply_rules(ret)
default=None, help="File to read character from.") parser.add_argument("--outfile", type=argparse.FileType('w'), default=None, help="File to read character from.") return parser if __name__ == "__main__": logging.basicConfig() parser = get_parser() opt = parser.parse_args() # char = load_character("Mondavite2.pkl") char = FlockDict() if not opt.infile: char['base_stats'] = { 'Combat Skill': 13, 'Dexterity': 16, 'Health': 11, 'Intelligence': 18, 'Magic': 17, 'Perception': 20, 'Presence': 11, 'Speed': 13, 'Spirit': 10, 'Strength': 10, 'Luck': 10 }
def setUp(self): super().setUp() self.flock = FlockDict() self.flock['x'] = {x: x for x in range(1, 10)} self.flock['y'] = {x: 2 * x for x in range(1, 10)}
def setUp(self): super().setUp() self.flock = FlockDict() self.flock['source'] = 'Original Value' self.flock['nested_source'] = {'source': 'Original Value'}
def setUp(self): super().setUp() self.flock = FlockDict()