def __init__(self, pc): armor = items.random_armor(-2, items.Jerkin, nospecial=True) pc.inventory.Pickup(armor) pc.Equip(armor, silent=True) weapon = items.random_melee_weapon(0, items.Dagger, nospecial=True) pc.inventory.Pickup(weapon) pc.Equip(weapon, silent=True) Archetype.__init__(self, pc) pc.stats = creatures.Stats(8, 11, 5) self.stat_gains = ['dex', 'any', 'dex', 'str']
def __init__(self, pc): armor = items.random_armor(-2, items.ChainShirt, nospecial=True) pc.inventory.Pickup(armor) pc.Equip(armor, silent=True) weapon = items.random_melee_weapon(0, items.LongSword, nospecial=True) pc.inventory.Pickup(weapon) pc.Equip(weapon, silent=True) Archetype.__init__(self, pc) pc.stats = creatures.Stats(11, 8, 5) self.stat_gains = ['str', 'dex', 'any', 'str']
def __init__(self, pc): armor = items.random_armor(-2, items.Jerkin, nospecial=True) pc.inventory.Pickup(armor) pc.Equip(armor, silent=True) weapon = items.random_melee_weapon(0, items.Dagger, nospecial=True) pc.inventory.Pickup(weapon) pc.Equip(weapon, silent=True) Archetype.__init__(self, pc) pc.stats = creatures.Stats(7, 7, 10) self.stat_gains = ['int', 'any'] pc.spells.append(magic.AgilitySpell())
def build_archetype(race_choice, class_choice, pc): ''' Build starting stats for a race/class pair Params ------ race_choice : Params Params with name and race dict class_choice : Params Params with name and class dict pc : PlayerCharacter PlayerCharacher object - this will fill out some of its fields (for now) Returns ------- Archetype: default character settings for race/class pair ''' log( 'Building Archetype for {0}, {1}'.format(race_choice.name, class_choice.name)) A = Archetype(pc) A.name = '{0} {1}'.format(race_choice.name, class_choice.name) A.cname = A.name A.desc = '' A.race_choice = race_choice A.class_choice = class_choice # Items should come from character def armor = items.random_armor(-2, items.ChainShirt, nospecial=True) pc.inventory.Pickup(armor) pc.Equip(armor, silent=True) weapon = items.random_melee_weapon(0, items.LongSword, nospecial=True) pc.inventory.Pickup(weapon) pc.Equip(weapon, silent=True) # Dict of info from config file comes in through params member class_params = class_choice.params race_params = race_choice.params # Basic stats class_stats = class_params['stats'] # str, int, wis, dex, con race_stats = class_params['stats'] # str, int, wis, dex, con pc.str = 10 + class_stats['str'] + race_stats['str'] pc.dex = 10 + class_stats['dex'] + race_stats['dex'] pc.int = 10 + class_stats['int'] + race_stats['int'] pc.con = 10 + class_stats['con'] + race_stats['con'] pc.wis = 10 + class_stats['con'] + race_stats['con'] A.stat_gains = ['str', 'dex', 'any', 'str'] # Experience rate class_info = class_params['info'] race_info = race_params['info'] A.mhp = class_info['mhp'] A.hitdie = race_info['hitdie'] A.expbase = race_info['expbase'] # percent A.class_xp_factor = class_info['exp'] A.xp_factor = A.class_xp_factor + A.expbase log('mhp={0},class_xp_factor={1},hitdie={2},expbase={3}'.format(A.mhp,A.class_xp_factor,A.hitdie,A.expbase)) # TODO default items # TODO multiple attacks / attack speed # TODO dexterity bonuses to ac # TODO strength bonuses to damage # TODO constitution and hp # TODO intelligence and mana, no mana for warriors, no mana until first spell return A