# -*- coding: utf-8 -*-
from mob import *

# Eassy = attk · 0.823 , Normal = attk , Hard = attk · 1.5

mimic = Enemy(
                    mob = "skeleton",
                    name = JTxt('Mimic', color = 'gray'),
                    hp = 20,
                    attack_damage = 4,
                    movement_speed = 0.25,
                    follow_range = 26,
                    feet = 'id:"iron_boots",Count:1b',
                    legs = 'id:"iron_leggings",Count:1b',
                    chest = 'id:"iron_chestplate",Count:1b',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;1,1,1,1],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGZkODVhOTY4MzM0ZmZhODc0ZDYzZTgwNjhjNGQxODM1ZTI5YjhkYTE3Y2Y1OGQ4ZGUwYTcxMzM4ZWNiZjYwIn19fQ=="}]}}}')
# F1º
dagger_goblin = Enemy(
                    mob = "zombie",
                    name = JTxt('Dagger Goblin', color = 'dark_green'),
                    silent = True,
                    hp = 9,
                    baby = True,
                    attack_damage = 3.7,
                    movement_speed = 0.22,
                    follow_range = 18,
                    right_hand = 'id:"wooden_sword",Count:1,tag:{CustomModelData:3401}',
                    legs = 'id:"leather_leggings",Count:1',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2,2,2,2],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGJmNTZjNjU0MWMxMjY2ZmZjNDYzNTEwYmRiNTVhZWY5MzE1YWY1NDg4OThjZjVkM2NiYTFiNWI0YzAxIn19fQ=="}]}}}',
                    tags = ["custom_sound","goblin"])
spear_goblin = Enemy(
                    mob = "zombie",
                    name = JTxt('Spear Goblin', color = 'dark_green'),
                    silent = True,
                    hp = 12,
                    baby = True,
                    attack_damage = 2.6,
                    movement_speed = 0.2,
                    follow_range = 18,
                    right_hand = 'id:"wooden_sword",Count:1,tag:{CustomModelData:3504}',
                    legs = 'id:"leather_leggings",Count:1',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;3,3,3,3],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjZiOTcyZTMyZDc2MWIxOTI2MjZlNWQ2ZDAxZWRjMDk0OTQwOTEwMTAzY2VhNWUyZTJkMWYyMzFhZGI3NTVkNSJ9fX0="}]}}}',
                    tags = ["custom_sound","goblin"])
undead_archer = Enemy(
                    mob = "skeleton",
                    name = JTxt('Undead Archer', color = 'red'),
                    hp = 8,
                    attack_damage = -4,
                    follow_range = 11,
                    right_hand = 'id:"bow",Count:1b,tag:{Enchantments:[{id:"punch",lvl:1s}]}',
                    feet = 'id:"chainmail_boots",Count:1b',
                    chest = 'id:"chainmail_chestplate",Count:1b')
undead_archer.icon["item"] = "skeleton_skull"
basic_slime = Slime(
                    name = JTxt('Basic Slime', color = 'green'),
                    hp = 6,
                    attack_damage = 2,
                    movement_speed = 0.23,
                    follow_range = 14,
                    size = 1,
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;999,999,999,999],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODk1YWVlYzZiODQyYWRhODY2OWY4NDZkNjViYzQ5NzYyNTk3ODI0YWI5NDRmMjJmNDViZjNiYmI5NDFhYmU2YyJ9fX0="}]}}}',
                    tags = ["enemy"])
troll = Enemy(
                    mob = "zombie",
                    name = JTxt('Troll', color = 'red'),
                    silent = True,
                    hp = 17,
                    attack_damage = 4,
                    movement_speed = 0.215,
                    follow_range = 18,
                    knockback_resistance = 0.65,
                    right_hand = 'id:"stone_axe",Count:1b,tag:{Enchantments:[{id:"minecraft:knockback",lvl:3s}]}',
                    legs = 'id:"leather_leggings",Count:1b,tag:{display:{color:7886127}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:10916205}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;4,4,4,4],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2E3NzkxNmU4NDc2OWIyYzk1NDc5MzRkZDIxYWViZWRiMTk3Mjc1OGFhNWE3MzliNjEyNzQzNjUzZjZlYSJ9fX0="}]}}}',
                    tags = ["custom_sound"])
zeldia_knight = Enemy(
                    mob = 'skeleton',
                    name = JTxt('Zeldia Knight', color = 'gray'),
                    hp = 8,
                    attack_damage = 3.8,
                    movement_speed = 0.22,
                    follow_range = 20,
                    right_hand = 'id:"iron_sword",Count:1b',
                    left_hand = 'id:"shield",Count:1b',
                    feet = 'id:"iron_boots",Count:1b',
                    legs = 'id:"iron_leggings",Count:1b',
                    chest = 'id:"iron_chestplate",Count:1b',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;5,5,5,5],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2M5ZDcyNjNhMTNhMzhmYTdkNDc3MzhjMmY2ZWFmMDgzYTNkNDU5MmI5N2U1MjZjYjExMWM4NjExMGNjYyJ9fX0="}]}}}',
                    tags = ["zeldian"])
zeldia_leader = Enemy(
                    mob = 'skeleton',
                    name = JTxt('Zeldia Knight Leader', color = 'gold'),
                    hp = 14,
                    attack_damage = 4,
                    movement_speed = 0.23,
                    follow_range = 18,
                    right_hand = 'id:"iron_sword",Count:1b',
                    left_hand = 'id:"shield",Count:1b,tag:{BlockEntityTag:{Patterns:[{Color:3,Pattern:"sc"},{Color:11,Pattern:"mc"},{Color:11,Pattern:"flo"},{Color:4,Pattern:"flo"}]}}',
                    feet = 'id:"golden_boots",Count:1b',
                    legs = 'id:"golden_leggings",Count:1b',
                    chest = 'id:"golden_chestplate",Count:1b',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;6,6,6,6],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmM4NTg3ZDA5N2ZjM2U2ZWFiODAyYzZiNTVjOGJkNzIzMTZiZDY4ZmQ4MzUyODFjNDI3MjQ4YzdhOTZmM2MifX19"}]}}}',
                    tags = ["can_attack","zeldian"])

e_floor_1 = [dagger_goblin, spear_goblin, undead_archer, basic_slime, troll, zeldia_knight, zeldia_leader]

# F2
elf_assassin = Enemy(
                    mob = "zombie",
                    name = JTxt('Elf Assassin', color = 'green'),
                    hp = 15,
                    attack_damage = 5.5,
                    movement_speed = 0.26,
                    follow_range = 20,
                    silent = True,
                    right_hand = 'id:"wooden_sword",Count:1,tag:{CustomModelData:3401}',
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:5522464}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:4811533}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:1338123}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;7,7,7,7],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmE3NjkzMzUzYTZhZTU3N2I1NzQ0ODdiMzkwZTMzNjYxNWU0ZDdlNGM2MjdkYThmM2U5MzRkMzg5YWM2NWMifX19"}]}}}',
                    tags = ["can_attack","attacking"])
stone_guardian = Enemy(
                    mob = 'zombie',
                    silent = True,
                    hp = 23,
                    attack_damage = 3,
                    movement_speed = 0.2,
                    knockback_resistance = 0.75,
                    follow_range = 17,
                    name = JTxt('Stone Guardian', color = 'gray'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:11130038}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:11126703}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:10340255}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;8,8,8,8],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTIxYjczYjE4MWExZTY5ZDIwMTYyNThhZWRkMzI4MjJkYmU0MTcwYjcxN2QwYzQzZDM2MGE3YThhYjRjZmJmNSJ9fX0="}]}}}',
                    tags = ["can_attack","custom_sound","sg"])
half_stone_guardian = Enemy(
                    mob = 'zombie',
                    silent = True,
                    hp = 12,
                    attack_damage = 3.5,
                    baby = True,
                    movement_speed = 0.21,
                    knockback_resistance = 0.5,
                    follow_range = 17,
                    name = JTxt('Half Stone Guardian', color = 'gray'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:11130038}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:11126703}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:10340255}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;8,8,8,8],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTIxYjczYjE4MWExZTY5ZDIwMTYyNThhZWRkMzI4MjJkYmU0MTcwYjcxN2QwYzQzZDM2MGE3YThhYjRjZmJmNSJ9fX0="}]}}}',
                    tags = ["custom_sound","sg"])
ent = Enemy(
                    mob = 'zombie',
                    hp = 16,
                    attack_damage = 4.4,
                    movement_speed = 0.22,
                    follow_range = 20,
                    name = JTxt('Ent', color = 'green'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:5522464}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:10578715}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:8541485}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;9,9,9,9],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTZlODVlMzJiNzVlOTcyZTEwYjI1NmQ1NDk2NGUxOWYxYThiMzk0MDk1YWQ5ZjMzMWI4ODg0MDlkZTIifX19"}]}}}',
                    tags = ["can_attack"])
elder_ent = Enemy(
                    mob = 'zombie',
                    hp = 22,
                    attack_damage = 4.8,
                    movement_speed = 0.22,
                    knockback_resistance = 0.1,
                    follow_range = 18,
                    name = JTxt('Elder Ent', color = 'dark_green'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:5522464}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:4811533}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:8541485}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;10,10,10,10],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjA1MGM3ODJhMzQ1NTA0YTE1YjcxNWE0ZDg2YzM1OWMwZDhlYjQ2YjI4YWFhMzRlZjg5ZWJlZmE1NTNmOCJ9fX0="}]}}}',
                    tags = ["can_attack"])
frog = Enemy(
                    mob = 'zombie',
                    baby = True,
                    silent = True,
                    hp = 11,
                    attack_damage = 4,
                    movement_speed = 0.22,
                    follow_range = 16,
                    name = JTxt('Frog', color = 'green'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:6733126}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:6604602}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:6283320}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;12,12,12,12],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWRjNTY5Y2M2MjBiMWUyMDZlYWY5ZmZkOTYzYTliNGYwMTE1NDM2MGQyNzkyZmY1ZGNkNjUwYjNjZjc1NTVkIn19fQ=="}]}}}',
                    tags = ["can_attack","custom_sound"],
                    commands = ["effect give @e[tag=frog,tag=init,sort=nearest,limit=1] minecraft:jump_boost 999999 1 true"])
angry_panda = Panda(
                    hp = 16,
                    attack_damage = 4.8,
                    movement_speed = 0.23,
                    follow_range = 20,
                    name = JTxt('Angry Panda', color = 'dark_red'),
                    gene = "aggressive",
                    tags = ["enemy"],
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;13,13,13,13],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODNmZTFlNzgyYWU5NmEzMDMzNmEwM2VmNzQ2ODFjZTNhNjkwNWZjYzY3M2ZhNTZjMDQ2YWFlZTZhYTI4MzA3ZCJ9fX0="}]}}}',
                    commands = ["execute as @e[tag=angry_panda,tag=init,sort=nearest,limit=1] run function enemies:angry_panda/trigger_angger"])
spider = Enemy(
                    mob = 'spider',
                    hp = 14,
                    attack_damage = 4.5,
                    movement_speed = 0.24,
                    follow_range = 15,
                    name = JTxt('Spider', color = 'gray'),
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;14,14,14,14],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzg3YTk2YThjMjNiODNiMzJhNzNkZjA1MWY2Yjg0YzJlZjI0ZDI1YmE0MTkwZGJlNzRmMTExMzg2MjliNWFlZiJ9fX0="}]}}}')
venomous_spider = Enemy(
                    mob = 'cave_spider',
                    hp = 10,
                    attack_damage = 2,
                    movement_speed = 0.22,
                    follow_range = 10,
                    name = JTxt('Venomous Spider', color = 'dark_red'),
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;15,15,15,15],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjA0ZDVmY2IyODlmZTY1YjY3ODY2ODJlMWM3MzZjM2Y3YjE2ZjM5ZDk0MGUzZDJmNDFjZjAwNDA3MDRjNjI4MiJ9fX0="}]}}}')

e_floor_2 = [ elf_assassin, stone_guardian, half_stone_guardian, ent, elder_ent, frog, angry_panda, spider, venomous_spider ]


# F3
minibot = Enemy(
                    mob = 'zombie',
                    name = JTxt('Mini Bot', color = 'gray'),
                    baby = True,
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:8088957}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:10391674}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:10587541}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;11,11,11,11],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTBlMTZiOWM2M2FjNTQ3ZmY5MzdhMmNiZjgwZTk1MTczNmExNDkyZDdlZmYzZWZhMDIxNmEzYmNjZTZjYTJlYyJ9fX0="}]}}}')
mummy = Enemy(
                    mob = 'zombie',
                    name = JTxt('Mummy', color = 'gray'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:15790815}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:15790815}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:15790815}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;13,13,13,13],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2U5MWU5NTgyMmZlOThjYzVhNTY1OGU4MjRiMWI4Y2YxNGQ0ZGU5MmYwZTFhZjI0ODE1MzcyNDM1YzllYWI2In19fQ=="}]}}}')
undead_pirate = Enemy(
                    mob = 'husk',
                    name = JTxt('Undead Pirate', color = 'gray'),
                    feet = 'id:"leather_boots",Count:1,tag:{display:{color:15790815}}',
                    legs = 'id:"leather_leggings",Count:1,tag:{display:{color:15790815}}',
                    chest = 'id:"leather_chestplate",Count:1,tag:{display:{color:15790815}}',
                    head = 'id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;14,14,14,14],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzUxNWQ4OTM5Yzc1NWFiNDQwNDNkNzVlNGExZmIwZmVjMmIzNTc1M2QwYjFjNzljMTVjNDVkZGJlZWI3MjRiIn19fQ=="}]}}}')

e_others = [mimic]



enemies = e_floor_1 + e_floor_2 + e_others
