Exemple #1
0
    def __init__(self,
                 use_function=None,
                 uses=-99,
                 item_type=ItemType.NONE,
                 equip_effects=None,
                 strength=0,
                 defense=0,
                 price=0,
                 description="",
                 **kwargs):
        self.use_function = use_function
        self.uses = uses
        self.function_kwargs = kwargs
        self.item_type = item_type
        self.equip_effects = equip_effects
        self.price = price
        self.description = description

        if strength != 0:
            ammo = kwargs['ammo'] if 'ammo' in kwargs else 0
            self.weapon = Weapon(strength, ammo)
        else:
            self.weapon = None

        if defense != 0:
            self.armor = Armor(defense)
        else:
            self.armor = None
def build_leather_hood():
    _item = Item(
        uid="hood",
        name="hood",
        description="A leather hood.",
        display=Display(Colors.DARK_GRAY, Colors.BLACK_COLOR, "!"),
    )
    _item.register_component(data.python_templates.material.Leather.copy())
    _item.register_component(Stats(health=10, size=Size.Medium, weight=2))
    _item.register_component(
        Armor(base_armor_class=2,
              armor_category=item_enums.ArmorCategory.Medium,
              wearable_body_parts_uid=["humanoid_head"],
              worn_layer=item_enums.WornLayer.Outer))

    return _item
def build_boot():
    _boot = Item(
        uid="boot",
        name="Boot",
        description="An iron boot",
        display=Display(Colors.DARK_GRAY, Colors.BLACK_COLOR, "!"),
    )
    _boot.register_component(data.python_templates.material.Iron.copy())
    _boot.register_component(Stats(health=10, size=Size.Medium, weight=0.5))
    _boot.register_component(
        Armor(base_armor_class=0.5,
              armor_category=item_enums.ArmorCategory.Medium,
              wearable_body_parts_uid=["humanoid_foot"],
              worn_layer=item_enums.WornLayer.Outer,
              maximum_dexterity_bonus=2))

    return _boot
def build_leather_pants():
    # TODO Some items need to take two slots rather than one.
    item = Item(
        uid="pants",
        name="pants",
        description="Leather pants",
        display=Display(Colors.DARK_GRAY, Colors.BLACK_COLOR, "!"),
    )
    item.register_component(data.python_templates.material.Leather.copy())
    item.register_component(Stats(health=10, size=Size.Medium, weight=0.5))
    item.register_component(
        Armor(base_armor_class=1,
              armor_category=item_enums.ArmorCategory.Medium,
              wearable_body_parts_uid=["humanoid_leg"],
              worn_layer=item_enums.WornLayer.Outer,
              maximum_dexterity_bonus=2))

    return item