Exemple #1
0
def orc(point=None, dungeon_level=1):
    #create an orc
    health_component = Health(20)
    ai_component = BasicNPC()

    npc = Character(point,
                    'O',
                    'orc',
                    COLORS.get('orc'),
                    ai=ai_component,
                    species=Species.ORC,
                    health=health_component,
                    act_energy=5)

    npc.add_component(Offence(base_power=10), 'offence')
    npc.add_component(Defence(defence=4), 'defence')
    npc.add_component(Level(xp_value=10), 'level')

    npc.movement.routing_avoid.extend(npc_avoid)

    item = equipment.create_weapon('shortsword')
    item.lootable = False

    npc.inventory.add_item(item)
    npc.equipment.toggle_equip(item)

    return npc
Exemple #2
0
def goblin(point=None, dungeon_level=1):
    #create a goblin
    health_component = Health(20)
    ai_component = BasicNPC()

    npc = Character(point,
                    'G',
                    'goblin',
                    COLORS.get('goblin'),
                    ai=ai_component,
                    species=Species.GOBLIN,
                    health=health_component,
                    act_energy=5)

    npc.add_component(Offence(base_power=5), 'offence')
    npc.add_component(Defence(defence=5), 'defence')
    npc.add_component(Level(xp_value=10), 'level')

    npc.movement.routing_avoid.extend(npc_avoid)

    dagger = equipment.create_weapon('dagger')
    dagger.lootable = False

    npc.inventory.add_item(dagger)
    npc.equipment.toggle_equip(dagger)

    pubsub.pubsub.subscribe(
        pubsub.Subscription(npc, pubsub.PubSubTypes.DEATH,
                            goblin_observed_death))

    return npc
Exemple #3
0
def troll(point=None, dungeon_level=1):
    #create a troll
    health_component = Health(30)
    ai_component = BasicNPC()

    npc = Character(point,
                    'T',
                    'troll',
                    COLORS.get('troll'),
                    ai=ai_component,
                    species=Species.TROLL,
                    health=health_component,
                    act_energy=6)

    npc.add_component(Offence(base_power=12), 'offence')
    npc.add_component(Defence(defence=8), 'defence')
    npc.add_component(Level(xp_value=10), 'level')
    regen = Regeneration()
    npc.add_component(regen, 'regeneration')
    npc.add_component(DamageModifier(fire=1.5), 'damagemodifier')
    regen.start()

    npc.movement.routing_avoid.extend(npc_avoid)

    item = None
    dice = randint(1, 100)
    if dice > 75:
        item = equipment.create_weapon('heavy mace')
        equipment.add_smashing(item)
    else:
        item = equipment.create_weapon('longsword')

    item.lootable = False

    npc.inventory.add_item(item)
    npc.equipment.toggle_equip(item)

    return npc
Exemple #4
0
def warlord(point=None, dungeon_level=1):
    #create a warlord
    ai_component = WarlordNPC()
    health_component = Health(50)

    npc = Character(point,
                    'W',
                    'Warlord',
                    COLORS.get('warlord'),
                    ai=ai_component,
                    species=Species.ORC,
                    death=WarlordDeath(),
                    health=health_component)

    npc.add_component(Offence(base_power=10), 'offence')
    npc.add_component(Defence(defence=4), 'defence')
    npc.add_component(Level(xp_value=10), 'level')

    npc.movement.routing_avoid.extend(npc_avoid)

    npc_level = (dungeon_level - 1) + randint(-1, 1)

    if npc_level > 1:
        npc.level.random_level_up(npc_level - 1)

    item = equipment.create_weapon('longsword')
    item.base_name = item.base_name + " of I'll F*****G Have You"
    item.color = COLORS.get('equipment_epic')
    item.equippable.power = item.equippable.power * 2
    npc.inventory.add_item(item)
    npc.equipment.toggle_equip(item)

    shield = equipment.create_armour('steel shield')
    shield.base_name = shield.base_name + " of Hide and Seek"
    shield.color = COLORS.get('equipment_epic')
    shield.equippable.power = item.equippable.defence * 2
    npc.inventory.add_item(shield)
    npc.equipment.toggle_equip(shield)

    breastplate = equipment.create_armour('breastplate')
    breastplate.base_name = breastplate.base_name + " of Rebounding"
    breastplate.color = COLORS.get('equipment_epic')
    breastplate.equippable.power = item.equippable.defence * 2
    npc.inventory.add_item(breastplate)
    npc.equipment.toggle_equip(breastplate)

    return npc
Exemple #5
0
def convert_to_archer(npc):
    bow = equipment.create_weapon('short bow')
    npc.inventory.add_item(bow)
    npc.equipment.toggle_equip(bow)
    npc.base_name = f"Archer {npc.base_name}"
    npc.add_component(ArcherNPC(bow.equippable.reach - 1), 'ai')
Exemple #6
0
def create_player():
    #create object representing the player
    health_component = Health(30)

    player = Character(None,
                       '@',
                       'player',
                       COLORS.get('player'),
                       death=PlayerDeath(),
                       health=health_component,
                       species=Species.PLAYER,
                       act_energy=4)

    player.add_component(Offence(base_power=6), 'offence')
    player.add_component(Defence(defence=6), 'defence')
    player.add_component(Level(), 'level')
    player.add_component(FOV(), 'fov')

    #initial equipment: a dagger
    dagger = equipment.create_weapon('dagger')

    player.inventory.add_item(dagger)
    player.equipment.toggle_equip(dagger)

    armour = equipment.create_armour('leather shirt')
    player.inventory.add_item(armour)
    player.equipment.toggle_equip(armour)

    if CONFIG.get('debug'):
        player.level.random_level_up(30)
        weapon = equipment.random_magic_weapon()
        player.inventory.add_item(weapon)
        player.equipment.toggle_equip(weapon)

        armour = equipment.random_armour()
        #equipment.add_damage_aura(armour)
        player.inventory.add_item(armour)
        player.equipment.toggle_equip(armour)

        ring = equipment.random_ring()
        player.inventory.add_item(ring)
        player.equipment.toggle_equip(ring)

        potion = equipment.healing_potion()
        player.inventory.add_item(potion)

        potion2 = equipment.power_potion()
        potion2.identifiable.identified = True
        player.inventory.add_item(potion2)

        potion3 = equipment.defence_potion()
        potion3.identifiable.identified = True
        player.inventory.add_item(potion3)

        potion4 = equipment.speed_potion()
        potion4.identifiable.identified = True
        player.inventory.add_item(potion4)

        scroll1 = equipment.lighting_scroll()
        scroll1.identifiable.identified = True
        player.inventory.add_item(scroll1)

        scroll2 = equipment.fireball_scroll()
        scroll2.identifiable.identified = True
        player.inventory.add_item(scroll2)

        scroll3 = equipment.confusion_scroll()
        scroll3.identifiable.identified = True
        player.inventory.add_item(scroll3)

        scroll4 = equipment.identify_scroll()
        scroll4.identifiable.identified = True
        player.inventory.add_item(scroll4)

        scroll5 = equipment.speed_scroll()
        scroll5.identifiable.identified = True
        player.inventory.add_item(scroll5)

        scroll6 = equipment.teleport_scroll()
        scroll6.identifiable.identified = True
        player.inventory.add_item(scroll6)

        scroll7 = equipment.map_scroll()
        scroll7.identifiable.identified = True
        player.inventory.add_item(scroll7)

        scroll8 = equipment.chain_lightning_scroll()
        scroll8.identifiable.identified = True
        player.inventory.add_item(scroll8)

    pubsub.pubsub.subscribe(
        pubsub.Subscription(player, pubsub.PubSubTypes.EARNEDXP,
                            earn_quest_xp))

    return player