def createConsumable(quality):
    """Chooses a consumable"""
    consumable_weights = (10, 2)
    choice = weighted_choice_sub(consumable_weights)
    if choice == 0:
        return items.SmallHealthPotion()
    elif choice == 1:
        return items.SmallExperienceBoost()
Beispiel #2
0
 def getEnemy(self):
     """Create an enemy and return it"""
     minimum = round(self.z_dr * .75)
     maximum = round(self.z_dr * 1.25)
     random_value = random.randint(minimum, maximum)
     stats = self.z_enemy_list[weighted_choice_sub(
         [x[1] for x in self.z_enemy_list])]
     return characters.Enemy(stats[0], stats[2], random_value)
def createConsumable(quality):
    """Chooses a consumable"""
    consumable_weights = (10, 2)
    choice = weighted_choice_sub(consumable_weights)
    if choice == 0:
        return items.SmallHealthPotion()
    elif choice == 1:
        return items.SmallExperienceBoost()
Beispiel #4
0
 def getEnemy(self):
     """Create an enemy and return it"""
     minimum = round(self.z_dr * .75)
     maximum = round(self.z_dr * 1.25)
     random_value = random.randint(minimum, maximum)
     stats = self.z_enemy_list[weighted_choice_sub(
                              [x[1] for x in self.z_enemy_list])]
     return characters.Enemy(stats[0], stats[2], random_value)
def createArmor(quality, armor_slot=""):
    """Creates a piece of armor"""
    stats = []

    if armor_slot == "":
        slot = random.choice(armor_slots)
    else:
        slot = armor_slot
    prefix = armor_prefixes[quality]
    suffix = suffixes[weighted_choice_sub([x[1][0] for x in suffixes])]
    name = prefix[0] + slot + suffix[0]
    for i in range(4):
        stats.append(prefix[1][i] + suffix[1][1][i])
    return items.Armor(name, slot, stats)
def createArmor(quality, armor_slot=""):
    """Creates a piece of armor"""
    stats = []

    if armor_slot == "":
        slot = random.choice(armor_slots)
    else:
        slot = armor_slot
    prefix = armor_prefixes[quality]
    suffix = suffixes[weighted_choice_sub([x[1][0] for x in suffixes])]
    name = prefix[0] + slot + suffix[0]
    for i in range(4):
        stats.append(prefix[1][i] + suffix[1][1][i])
    return items.Armor(name, slot, stats)
def createWeapon(quality, weapon_type=""):
    """Creates a weapon"""
    stats = []
    if weapon_type == "":
        w_type = random.choice(weapon_types)
    else:
        w_type = weapon_type
    prefix = weapon_prefixes[weighted_choice_sub([x[1] for x in weapon_prefixes])]
    name = prefix[0] + w_type[0]
    for i in range(4):
        stats.append((prefix[2][i] + w_type[2][i]) * (1 + quality))
    if w_type[0] == "Sword":
        return items.Sword(name, stats)
    if w_type[0] == "Mace":
        return items.Mace(name, stats)
    if w_type[0] == "Dagger":
        return items.Dagger(name, stats)
def Loot(level):
    """Decides loot given for the kill"""
    gold = random.randint(0, 10) * level + 10
    quality = level // 4
    item_type_list = [("None", 2), ("Armor", 10), ("Weapon", 7), ("Consumable", 7), ("Rare", 1)]
    item_type = item_type_list[weighted_choice_sub([x[1] for x in item_type_list])][0]
    if item_type == "Consumable":
        item = createConsumable(quality)
    elif item_type == "Armor":
        item = createArmor(quality)
    elif item_type == "Weapon":
        item = createWeapon(quality)
    elif item_type == "Rare":
        item = createUnique(quality)
    else:
        item = None
    return (gold, item)
def createWeapon(quality, weapon_type=""):
    """Creates a weapon"""
    stats = []
    if weapon_type == "":
        w_type = random.choice(weapon_types)
    else:
        w_type = weapon_type
    prefix = weapon_prefixes[weighted_choice_sub(
                            [x[1] for x in weapon_prefixes])]
    name = prefix[0] + w_type[0]
    for i in range(4):
        stats.append((prefix[2][i] + w_type[2][i]) * (1 + quality))
    if w_type[0] == "Sword":
        return items.Sword(name, stats)
    if w_type[0] == "Mace":
        return items.Mace(name, stats)
    if w_type[0] == "Dagger":
        return items.Dagger(name, stats)
def Loot(level):
    """Decides loot given for the kill"""
    gold = random.randint(0, 10) * level + 10
    quality = level // 4
    item_type_list = [("None", 2), ("Armor", 10), ("Weapon", 7),
                      ("Consumable", 7), ("Rare", 1)]
    item_type = item_type_list[weighted_choice_sub([x[1] for x
                                                    in item_type_list])][0]
    if item_type == "Consumable":
        item = createConsumable(quality)
    elif item_type == "Armor":
        item = createArmor(quality)
    elif item_type == "Weapon":
        item = createWeapon(quality)
    elif item_type == "Rare":
        item = createUnique(quality)
    else:
        item = None
    return (gold, item)
Beispiel #11
0
 def getAction(self):
     """Decide if an encounter happens or not"""
     return self.z_actions[weighted_choice_sub(
         [x[1] for x in self.z_actions])][0]
Beispiel #12
0
 def initLevel(self, level):
     for _ in range(level - 1):
         tmp_index = weighted_choice_sub(self.stat_weights)
         self.stat_list[tmp_index] += 1
 def initLevel(self, level):
     for _ in range(level - 1):
         tmp_index = weighted_choice_sub(self.stat_weights)
         self.stat_list[tmp_index] += 1
Beispiel #14
0
 def getAction(self):
     """Decide if an encounter happens or not"""
     return self.z_actions[weighted_choice_sub(
                          [x[1] for x in self.z_actions])][0]