示例#1
0
文件: player.py 项目: nadako/pyrogue
 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']
示例#2
0
文件: player.py 项目: nadako/pyrogue
 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']
示例#3
0
文件: player.py 项目: nadako/pyrogue
 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())
示例#4
0
文件: player.py 项目: bthcode/pyrogue
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