def register_zuls_aegis():
    _register_ability()
    register_buff_effect(BUFF_TYPE_STUNNED, StunnedFromAegis)
    item_type = ItemType.ZULS_AEGIS
    effect = ItemEffect()
    register_custom_effect_item(
        item_type=item_type,
        item_level=7,
        ui_icon_sprite=UiIconSprite.ITEM_ZULS_AEGIS,
        sprite=Sprite.ITEM_ZULS_AEGIS,
        image_file_path="resources/graphics/item_zuls_aegis.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Zul's Aegis",
        custom_effect=effect,
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [3]),
            StatModifierInterval(HeroStat.BLOCK_AMOUNT, [6]),
            StatModifierInterval(HeroStat.DAMAGE, [0.12]),
            StatModifierInterval(HeroStat.MANA_ON_KILL, [1])
        ],
        custom_description=[
            "On block: stun attacker for " +
            "{:.1f}".format(STUN_DURATION / 1000) + "s",
            "Active: " + ABILITY_DESCRIPTION
        ],
        is_unique=True,
        active_ability_type=ABILITY_TYPE)
def register_royal_sword_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.ROYAL_SWORD,
        item_level=5,
        ui_icon_sprite=UiIconSprite.ITEM_ROYAL_SWORD,
        sprite=Sprite.ITEM_ROYAL_SWORD,
        image_file_path="resources/graphics/item_royal_sword.png",
        item_equipment_category=ItemEquipmentCategory.MAIN_HAND,
        name="Royal sword",
        stat_modifier_intervals=[StatModifierInterval(HeroStat.PHYSICAL_DAMAGE, interval(0.25, 0.35, 0.01)),
                                 StatModifierInterval(HeroStat.ARMOR, [1])]
    )
def register_skull_sword_item():
    item_type = ItemType.SKULL_SWORD
    register_randomized_stat_modifying_item(
        item_type=item_type,
        item_level=8,
        ui_icon_sprite=UiIconSprite.ITEM_SKULL_SWORD,
        sprite=Sprite.ITEM_SKULL_SWORD,
        image_file_path="resources/graphics/item_skull_sword.png",
        item_equipment_category=ItemEquipmentCategory.MAIN_HAND,
        name="Skull sword",
        stat_modifier_intervals=[StatModifierInterval(HeroStat.PHYSICAL_DAMAGE, interval(0.4, 0.5, 0.01)),
                                 StatModifierInterval(HeroStat.LIFE_STEAL, interval(0.10, 0.15, 0.01))]
    )
def register_sun_shield_item():
    item_type = ItemType.SUN_SHIELD
    register_randomized_stat_modifying_item(
        item_type=item_type,
        item_level=8,
        ui_icon_sprite=UiIconSprite.ITEM_SUN_SHIELD,
        sprite=Sprite.ITEM_SUN_SHIELD,
        image_file_path="resources/graphics/item_sun_shield.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Sun shield",
        stat_modifier_intervals=[StatModifierInterval(HeroStat.ARMOR, [3]),
                                 StatModifierInterval(HeroStat.BLOCK_AMOUNT, [15, 16, 17, 18])]
    )
Beispiel #5
0
def register_fire_gauntlet_item():
    item_type = ItemType.FIRE_GAUNTLET
    register_randomized_stat_modifying_item(
        item_type=item_type,
        item_level=6,
        ui_icon_sprite=UiIconSprite.ITEM_FIRE_GAUNTLET,
        sprite=Sprite.ITEM_FIRE_GAUNTLET,
        image_file_path="resources/graphics/item_fire_gauntlet.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Fire gauntlet",
        stat_modifier_intervals=[StatModifierInterval(HeroStat.DAMAGE, interval(0.15, 0.2, 0.01)),
                                 StatModifierInterval(HeroStat.HEALTH_REGEN, interval(0.2, 0.4, 0.1))]
    )
Beispiel #6
0
def register_wooden_shield():
    register_randomized_stat_modifying_item(
        item_type=ItemType.WOODEN_SHIELD,
        item_level=1,
        ui_icon_sprite=UiIconSprite.ITEM_WOODEN_SHIELD,
        sprite=Sprite.ITEM_WOODEN_SHIELD,
        image_file_path="resources/graphics/item_wooden_shield.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Wooden shield",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [1]),
            StatModifierInterval(HeroStat.BLOCK_AMOUNT, [3])
        ])
def register_staff_of_fire_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.STAFF_OF_FIRE,
        ui_icon_sprite=UiIconSprite.ITEM_STAFF_OF_FIRE,
        sprite=Sprite.ITEM_STAFF_OF_FIRE,
        image_file_path="resources/graphics/item_staff_of_fire.png",
        item_equipment_category=ItemEquipmentCategory.MAIN_HAND,
        name="Staff of the Phoenix",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.MAGIC_DAMAGE, [0.25]),
            StatModifierInterval(HeroStat.MAX_MANA, [10]),
            StatModifierInterval(HeroStat.LIFE_ON_KILL, [1])
        ],
        is_unique=True)
def register_blessed_shield_item():
    register_custom_effect_item(
        item_type=ITEM_TYPE,
        item_level=3,
        ui_icon_sprite=UiIconSprite.ITEM_BLESSED_SHIELD,
        sprite=Sprite.ITEM_BLESSED_SHIELD,
        image_file_path="resources/graphics/item_blessed_shield.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Blessed shield",
        custom_description=["On block: gain " + str(HEALING_AMOUNT) + " health"],
        stat_modifier_intervals=[StatModifierInterval(HeroStat.ARMOR, [2]),
                                 StatModifierInterval(HeroStat.BLOCK_AMOUNT, [5, 6, 7])],
        custom_effect=ItemEffect()
    )
def register_noble_defender():
    item_type = ItemType.NOBLE_DEFENDER
    register_randomized_stat_modifying_item(
        item_type=item_type,
        item_level=6,
        ui_icon_sprite=UiIconSprite.ITEM_NOBLE_DEFENDER,
        sprite=Sprite.ITEM_NOBLE_DEFENDER,
        image_file_path="resources/graphics/item_noble_defender.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Lion shield",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [4]),
            StatModifierInterval(HeroStat.BLOCK_AMOUNT, [8, 9, 10]),
            StatModifierInterval(HeroStat.BLOCK_CHANCE, [0.04, 0.05])
        ])
Beispiel #10
0
def register_lich_armor_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.LICH_ARMOR,
        item_level=7,
        ui_icon_sprite=UiIconSprite.ITEM_LICH_ARMOR,
        sprite=Sprite.ITEM_LICH_ARMOR,
        image_file_path="resources/graphics/item_lich_armor.png",
        item_equipment_category=ItemEquipmentCategory.CHEST,
        name="Lich armor",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [1]),
            StatModifierInterval(HeroStat.MAX_MANA, [40]),
            StatModifierInterval(HeroStat.MAGIC_RESIST_CHANCE, [0.05])
        ],
        is_unique=True)
Beispiel #11
0
def register_lich_armor_item():
    _register_ability()
    register_custom_effect_item(
        item_type=ItemType.LICH_ARMOR,
        item_level=8,
        ui_icon_sprite=UiIconSprite.ITEM_LICH_ARMOR,
        sprite=Sprite.ITEM_LICH_ARMOR,
        image_file_path="resources/graphics/item_lich_armor.png",
        item_equipment_category=ItemEquipmentCategory.CHEST,
        name=ITEM_NAME,
        custom_description=["25% of damage taken is instead drained from your mana",
                            "Active: " + ABILITY_DESCRIPTION],
        custom_effect=ItemEffect(),
        stat_modifier_intervals=[StatModifierInterval(HeroStat.MAX_MANA, [30]),
                                 StatModifierInterval(HeroStat.MAGIC_RESIST_CHANCE, [0.05])],
        is_unique=True,
        active_ability_type=ABILITY_TYPE
    )
def register_thiefs_mask_item():
    register_custom_effect_item(
        item_type=ItemType.THIEFS_MASK,
        ui_icon_sprite=UiIconSprite.ITEM_THIEFS_MASK,
        sprite=Sprite.ITEM_THIEFS_MASK,
        image_file_path="resources/graphics/item_thiefs_mask.png",
        item_equipment_category=ItemEquipmentCategory.HEAD,
        name="Mask of Thieves",
        custom_description=[
            "On dodge: gain " + str(MANA_ON_DODGE_AMOUNT) + " mana"
        ],
        custom_effect=ItemEffect(),
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.DODGE_CHANCE, [0.09]),
            StatModifierInterval(HeroStat.DAMAGE, [0.12]),
            StatModifierInterval(HeroStat.MANA_REGEN, [0.05])
        ],
        is_unique=True)
Beispiel #13
0
def register_leather_cowl_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.LEATHER_COWL,
        item_level=1,
        ui_icon_sprite=UiIconSprite.ITEM_LEATHER_COWL,
        sprite=Sprite.ITEM_LEATHER_COWL,
        image_file_path="resources/graphics/item_leather_cowl.png",
        item_equipment_category=ItemEquipmentCategory.HEAD,
        name="Leather cowl",
        stat_modifier_intervals=[StatModifierInterval(HeroStat.ARMOR, [1])])
Beispiel #14
0
def register_skull_shield_item():
    item_type = ItemType.SKULL_SHIELD
    register_custom_effect_item(
        item_type=item_type,
        item_level=5,
        ui_icon_sprite=UiIconSprite.ITEM_SKULL_SHIELD,
        sprite=Sprite.ITEM_SKULL_SHIELD,
        image_file_path="resources/graphics/item_skull_shield.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Skull shield",
        custom_description=[
            "On block: deal " + str(DAMAGE_AMOUNT) +
            " magic damage to attacker"
        ],
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [2]),
            StatModifierInterval(HeroStat.BLOCK_AMOUNT, [6, 7, 8])
        ],
        custom_effect=(ItemEffect()))
Beispiel #15
0
def register_practice_sword_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.PRACTICE_SWORD,
        ui_icon_sprite=UiIconSprite.ITEM_PRACTICE_SWORD,
        sprite=Sprite.ITEM_PRACTICE_SWORD,
        image_file_path="resources/graphics/item_practice_sword.png",
        item_equipment_category=ItemEquipmentCategory.MAIN_HAND,
        name="Practice sword",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.PHYSICAL_DAMAGE, [0.03])
        ])
Beispiel #16
0
def register_winged_helmet_item():
    _register_buff()
    _register_ability()

    register_custom_effect_item(
        item_type=ItemType.WINGED_HELMET,
        ui_icon_sprite=UiIconSprite.ITEM_WINGED_HELMET,
        sprite=Sprite.ITEM_WINGED_HELMET,
        image_file_path="resources/graphics/item_winged_helmet.png",
        item_equipment_category=ItemEquipmentCategory.HEAD,
        name=ITEM_NAME,
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [3]),
            StatModifierInterval(HeroStat.MOVEMENT_SPEED, [0.18])
        ],
        custom_effect=AbstractItemEffect(),
        custom_description=["Active: " + ABILITY_DESCRIPTION],
        item_level=6,
        is_unique=True,
        active_ability_type=ABILITY_TYPE)
Beispiel #17
0
def register_warlords_armor_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.WARLORDS_ARMOR,
        item_level=7,
        ui_icon_sprite=UiIconSprite.ITEM_WARLORDS_ARMOR,
        sprite=Sprite.ITEM_WARLORDS_ARMOR,
        image_file_path="resources/graphics/item_warlords_armor.png",
        item_equipment_category=ItemEquipmentCategory.CHEST,
        name="Warlord's armor",
        stat_modifier_intervals=[StatModifierInterval(HeroStat.ARMOR, [4])],
    )
Beispiel #18
0
def register_candle_item():
    _register_buff()
    _register_ability()

    register_custom_effect_item(
        item_type=ItemType.CANDLE,
        ui_icon_sprite=UiIconSprite.ITEM_CANDLE,
        sprite=Sprite.ITEM_CANDLE,
        image_file_path="resources/graphics/item_candle.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name=ITEM_NAME,
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.MAGIC_RESIST_CHANCE, [0.12]),
            StatModifierInterval(HeroStat.MAX_MANA, [10]),
            StatModifierInterval(HeroStat.MANA_REGEN, [0.1])
        ],
        custom_effect=AbstractItemEffect(),
        custom_description=["Active: " + ABILITY_DESCRIPTION],
        item_level=3,
        is_unique=True,
        active_ability_type=ABILITY_TYPE)
Beispiel #19
0
def register_whip_item():
    _register_buff()
    _register_ability()

    register_custom_effect_item(
        item_type=ItemType.WHIP,
        ui_icon_sprite=UiIconSprite.ITEM_WHIP,
        sprite=Sprite.ITEM_WHIP,
        image_file_path="resources/graphics/item_whip.png",
        item_equipment_category=ItemEquipmentCategory.MAIN_HAND,
        name=ITEM_NAME,
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.PHYSICAL_DAMAGE, [0.18]),
            StatModifierInterval(HeroStat.LIFE_STEAL, [0.07]),
            StatModifierInterval(HeroStat.LIFE_ON_KILL, [1])
        ],
        custom_effect=AbstractItemEffect(),
        custom_description=["Active: " + ABILITY_DESCRIPTION],
        item_level=5,
        is_unique=True,
        active_ability_type=ABILITY_TYPE)
def register_blood_amulet():
    _register_buff()
    item_type = ItemType.BLOOD_AMULET

    register_custom_effect_item(
        item_type=item_type,
        item_level=4,
        ui_icon_sprite=UiIconSprite.ITEM_BLOOD_AMULET,
        sprite=Sprite.ITEM_BLOOD_AMULET,
        image_file_path="resources/graphics/item_blood_amulet.png",
        item_equipment_category=ItemEquipmentCategory.NECK,
        name=ITEM_NAME,
        custom_effect=ItemEffect(),
        stat_modifier_intervals=[StatModifierInterval(HeroStat.HEALTH_REGEN, [0.2]),
                                 StatModifierInterval(HeroStat.MAX_MANA, [7]),
                                 StatModifierInterval(HeroStat.MAX_HEALTH, [9])],
        custom_description=[str(int(PROC_CHANCE * 100)) + "% on kill: gain +" + str(
            int(BUFF_LIFE_STEAL_BONUS * 100)) + "% lifesteal and " + str(
            int(BUFF_DAMAGE * 100)) + " attack power for " + "{:.0f}".format(DURATION / 1000) + "s."],
        is_unique=True
    )
def register_messengers_hat_item():
    register_randomized_stat_modifying_item(
        item_type=ItemType.MESSENGERS_HAT,
        item_level=4,
        ui_icon_sprite=UiIconSprite.ITEM_MESSENGERS_HAT,
        sprite=Sprite.ITEM_MESSENGERS_HAT,
        image_file_path="resources/graphics/item_messengers_hat.png",
        item_equipment_category=ItemEquipmentCategory.HEAD,
        name="Messenger hat",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.MOVEMENT_SPEED, [0.2])
        ])
Beispiel #22
0
def register_noble_defender():
    item_type = ItemType.NOBLE_DEFENDER
    register_custom_effect_item(
        item_type=item_type,
        item_level=6,
        ui_icon_sprite=UiIconSprite.ITEM_NOBLE_DEFENDER,
        sprite=Sprite.ITEM_NOBLE_DEFENDER,
        image_file_path="resources/graphics/item_noble_defender.png",
        item_equipment_category=ItemEquipmentCategory.OFF_HAND,
        name="Noble defender",
        custom_description=[
            "When you are attacked, your movement speed is slowed by {:.0f}".
            format(SLOW_AMOUNT * 100) + "% for " +
            "{:.1f}".format(SLOW_DURATION / 1000) + "s"
        ],
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.ARMOR, [4]),
            StatModifierInterval(HeroStat.BLOCK_AMOUNT, [8, 9, 10])
        ],
        custom_effect=ItemEffect())

    register_buff_effect(BUFF_TYPE_SLOWED, SlowedFromNobleDefender)
Beispiel #23
0
def register_wizards_cowl():
    item_type = ItemType.WIZARDS_COWL
    register_randomized_stat_modifying_item(
        item_type=item_type,
        item_level=5,
        ui_icon_sprite=UiIconSprite.ITEM_WIZARDS_COWL,
        sprite=Sprite.ITEM_WIZARDS_COWL,
        image_file_path="resources/graphics/item_wizards_cowl.png",
        item_equipment_category=ItemEquipmentCategory.HEAD,
        name="Wizard cowl",
        stat_modifier_intervals=[
            StatModifierInterval(HeroStat.MANA_ON_KILL, [2, 3])
        ],
    )
Beispiel #24
0
def register_cleaver_item():
    register_custom_effect_item(
        item_type=ITEM_TYPE,
        item_level=7,
        ui_icon_sprite=UiIconSprite.ITEM_CLEAVER,
        sprite=Sprite.ITEM_CLEAVER,
        image_file_path="resources/graphics/item_cleaver.png",
        item_equipment_category=ItemEquipmentCategory.MAIN_HAND,
        name="The Cleaver",
        custom_effect=ItemEffect(),
        custom_description=[str(
            int(PROC_CHANCE * 100)) + "% on hit: cause enemy to bleed, taking " + str(TOTAL_DAMAGE) + \
                            " physical damage over " + "{:.0f}".format(BUFF_DURATION / 1000) + "s"],
        stat_modifier_intervals=[StatModifierInterval(HeroStat.PHYSICAL_DAMAGE, [0.41])],
        is_unique=True
    )
    register_buff_effect(BUFF_TYPE, BuffEffect)
Beispiel #25
0
def register_necklace_of_suffering_item():
    register_custom_effect_item(
        item_type=ITEM_TYPE,
        item_level=6,
        ui_icon_sprite=UiIconSprite.ITEM_NECKLACE_OF_SUFFERING,
        sprite=Sprite.ITEM_NECKLACE_OF_SUFFERING,
        image_file_path="resources/graphics/item_necklace_of_suffering.png",
        item_equipment_category=ItemEquipmentCategory.NECK,
        name="Necklace of Domination",
        custom_description=[
            "Any time you lose health, gain +" + str(int(BUFF_DAMAGE * 100)) +
            "% damage for " + "{:.0f}".format(BUFF_DURATION / 1000) + "s"
        ],
        custom_effect=ItemEffect(),
        stat_modifier_intervals=[StatModifierInterval(HeroStat.DAMAGE, [0.1])],
        is_unique=True)
    register_buff_effect(BUFF_TYPE, BuffEffect)