def __init__(self, base_type: BaseType, masteries = None): self.str_base = Attribute.attribute_or_none(base_type.attributes[CharAttributes.STREINGTH]) self.end_base = Attribute.attribute_or_none(base_type.attributes[CharAttributes.ENDURANCE]) self.prc_base = Attribute.attribute_or_none(base_type.attributes[CharAttributes.PERCEPTION]) self.agi_base = Attribute.attribute_or_none(base_type.attributes[CharAttributes.AGILITY]) self.int_base = Attribute.attribute_or_none(base_type.attributes[CharAttributes.INTELLIGENCE]) self.cha_base = Attribute.attribute_or_none(base_type.attributes[CharAttributes.CHARISMA]) self.readiness = 0 self.disabled = False self.masteries = masteries or Masteries(base_type.xp) self.type_name = base_type.type_name self.actives = base_type.actives self.unarmed_damage_type = base_type.unarmed_damage_type self.unarmed_chances = base_type.unarmed_chances self.resists = Resistances(base_type.resists) self.natural_armor = Armor(base_type.armor_base, base_type.armor_dict) self.inventory = Inventory(base_type.inventory_capacity, self) self.equipment :Equipment = base_type.equipment_cls(self) self.abilities = [] self.buffs = [] self.alive = True self.is_obstacle = False self.last_damaged_by = None self.icon = base_type.icon for active in std_attacks: self.give_active(active) for active in std_movements: self.give_active(active)
def __init__(self, name, school, targeting_cls, complexity, cost, amount, duration, precision_factor, distance, radius, resolve_callback, targeting_cond=None): super().__init__(name, ItemTypes.SPELL_CONCEPT) self.school = school self.targeting_cls = targeting_cls self.targeting_cond = targeting_cond self.complexity_base = Attribute.attribute_or_none(complexity) self.mana_cost_base = Attribute.attribute_or_none(cost.mana) self.stamina_cost_base = Attribute.attribute_or_none(cost.stamina) self.health_cost_base = Attribute.attribute_or_none(cost.health) self.readiness_cost_base = Attribute.attribute_or_none(cost.readiness) self.amount_base = Attribute.attribute_or_none(amount) self.duration_base = Attribute.attribute_or_none(duration) self.precision_factor_base = Attribute.attribute_or_none(precision_factor) self.distance_base = Attribute.attribute_or_none(distance) self.radius_base = Attribute.attribute_or_none(radius) self.resolve_callback = resolve_callback self.runes = None