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()
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()
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)
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]
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
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]