import Sprite from '../sprite';
import resources from '../resources';

export class Dungeon extends Sprite {
	constructor() {
		super(resources.getImage('dungeon'));

		this.define('floor_1', 16, 64, 16, 16);
		this.define('floor_2', 32, 64, 16, 16);
		this.define('floor_3', 48, 64, 16, 16);
		this.define('floor_4', 16, 80, 16, 16);
		this.define('floor_5', 32, 80, 16, 16);
		this.define('floor_6', 48, 80, 16, 16);
		this.define('floor_7', 16, 96, 16, 16);
		this.define('floor_8', 32, 96, 16, 16);

		this.define('wall_top_left', 16, 0, 16, 16);
		this.define('wall_top_mid', 32, 0, 16, 16);
		this.define('wall_top_right', 48, 0, 16, 16);
		this.define('wall_left', 16, 16, 16, 16);
		this.define('wall_mid', 32, 16, 16, 16);
		this.define('wall_right', 48, 16, 16, 16);
		this.define('wall_side_top_left', 0, 112, 16, 16);
		this.define('wall_side_top_right', 16, 112, 16, 16);
		this.define('wall_side_mid_left', 0, 128, 16, 16);
		this.define('wall_side_mid_right', 16, 128, 16, 16);
		this.define('wall_side_front_left', 0, 144, 16, 16);
		this.define('wall_side_front_right', 16, 144, 16, 16);
		this.define('wall_corner_top_left', 32, 112, 16, 16);
		this.define('wall_corner_top_right', 48, 112, 16, 16);
		this.define('wall_corner_left', 32, 128, 16, 16);
		this.define('wall_corner_right', 48, 128, 16, 16);
		this.define('wall_corner_bottom_left', 32, 144, 16, 16);
		this.define('wall_corner_bottom_right', 48, 144, 16, 16);
		this.define('wall_corner_front_left', 32, 160, 16, 16);
		this.define('wall_corner_front_right', 48, 160, 16, 16);
		this.define('wall_inner_corner_l_top_left', 80, 128, 16, 16);
		this.define('wall_inner_corner_l_top_rigth', 64, 128, 16, 16);
		this.define('wall_inner_corner_mid_left', 80, 144, 16, 16);
		this.define('wall_inner_corner_mid_rigth', 64, 144, 16, 16);
		this.define('wall_inner_corner_t_top_left', 80, 160, 16, 16);
		this.define('wall_inner_corner_t_top_rigth', 64, 160, 16, 16);
		this.define('edge', 96, 128, 16, 16);
		this.define('hole', 96, 144, 16, 16);
		this.define('doors_all', 16, 221, 64, 35);
		this.define('doors_frame_left', 16, 224, 16, 32);
		this.define('doors_frame_top', 32, 221, 32, 3);
		this.define('doors_frame_righ', 63, 224, 16, 32);
		this.define('doors_leaf_closed', 32, 224, 32, 32);
		this.define('doors_leaf_open', 80, 224, 32, 32);
		this.define('chest_empty_open_anim', 304, 288, 16, 16);
		this.define('chest_full_open_anim', 304, 304, 16, 16);
		this.define('chest_mimic_open_anim', 304, 320, 16, 16);

		this.define('flask_big_red', 288, 224, 16, 16);
		this.define('flask_big_blue', 304, 224, 16, 16);
		this.define('flask_big_green', 320, 224, 16, 16);
		this.define('flask_big_yellow', 336, 224, 16, 16);
		this.define('flask_red', 288, 240, 16, 16);
		this.define('flask_blue', 304, 240, 16, 16);
		this.define('flask_green', 320, 240, 16, 16);
		this.define('flask_yellow', 336, 240, 16, 16);
		this.define('skull', 288, 320, 16, 16);
		this.define('crate', 288, 298, 16, 22);
		this.define('coin_anim', 288, 272, 8, 8);

		this.define('ui_heart_full', 288, 256, 16, 16);
		this.define('ui_heart_half', 304, 256, 16, 16);
		this.define('ui_heart_empty', 320, 256, 16, 16);
		this.define('weapon_knife', 293, 18, 6, 13);
		this.define('weapon_rusty_sword', 307, 26, 10, 21);
		this.define('weapon_regular_sword', 323, 26, 10, 21);
		this.define('weapon_red_gem_sword', 339, 26, 10, 21);
		this.define('weapon_big_hammer', 291, 42, 10, 37);
		this.define('weapon_hammer', 307, 55, 10, 24);
		this.define('weapon_baton_with_spikes', 323, 57, 10, 22);
		this.define('weapon_mace', 339, 55, 10, 24);
		this.define('weapon_katana', 293, 82, 6, 29);
		this.define('weapon_saw_sword', 307, 86, 10, 25);
		this.define('weapon_anime_sword', 322, 81, 12, 30);
		this.define('weapon_axe', 341, 90, 9, 21);
		this.define('weapon_machete', 294, 121, 5, 22);
		this.define('weapon_cleaver', 310, 124, 8, 19);
		this.define('weapon_duel_sword', 325, 113, 9, 30);
		this.define('weapon_knight_sword', 339, 114, 10, 29);
		this.define('weapon_golden_sword', 291, 153, 10, 22);
		this.define('weapon_lavish_sword', 307, 145, 10, 30);
		this.define('weapon_red_magic_staff', 324, 145, 8, 30);
		this.define('weapon_green_magic_staff', 340, 145, 8, 30);
		this.define('weapon_spear', 293, 177, 6, 30);
		this.define('weapon_arrow', 308, 186, 7, 21);
		this.define('weapon_bow', 325, 180, 7, 25);
		this.define('tiny_zombie_idle_anim', 368, 16, 16, 16);
		this.define('tiny_zombie_run_anim', 432, 16, 16, 16);
		this.define('goblin_idle_anim', 368, 32, 16, 16);
		this.define('goblin_run_anim', 432, 32, 16, 16);
		this.define('imp_idle_anim', 368, 48, 16, 16);
		this.define('imp_run_anim', 432, 48, 16, 16);
		this.define('skelet_idle_anim', 368, 80, 16, 16);
		this.define('skelet_run_anim', 432, 80, 16, 16);
		this.define('muddy_idle_anim', 368, 112, 16, 16);
		this.define('muddy_run_anim', 368, 112, 16, 16);
		this.define('swampy_idle_anim', 432, 112, 16, 16);
		this.define('swampy_run_anim', 432, 112, 16, 16);
		this.define('zombie_idle_anim', 368, 144, 16, 16);
		this.define('zombie_run_anim', 368, 144, 16, 16);
		this.define('ice_zombie_idle_anim', 432, 144, 16, 16);
		this.define('ice_zombie_run_anim', 432, 144, 16, 16);
		this.define('masked_orc_idle_anim', 368, 172, 16, 20);
		this.define('masked_orc_run_anim', 432, 172, 16, 20);
		this.define('orc_warrior_idle_anim', 368, 204, 16, 20);
		this.define('orc_warrior_run_anim', 432, 204, 16, 20);
		this.define('orc_shaman_idle_anim', 368, 236, 16, 20);
		this.define('orc_shaman_run_anim', 432, 236, 16, 20);
		this.define('necromancer_idle_anim', 368, 268, 16, 20);
		this.define('necromancer_run_anim', 368, 268, 16, 20);
		this.define('wogol_idle_anim', 368, 300, 16, 20);
		this.define('wogol_run_anim', 432, 300, 16, 20);
		this.define('chort_idle_anim', 368, 328, 16, 24);
		this.define('chort_run_anim', 432, 328, 16, 24);
		this.define('big_zombie_idle_anim', 16, 270, 32, 34);
		this.define('big_zombie_run_anim', 144, 270, 32, 34);
		this.define('ogre_idle_anim', 16, 320, 32, 32);
		this.define('ogre_run_anim', 144, 320, 32, 32);
		this.define('big_demon_idle_anim', 16, 364, 32, 36);
		this.define('big_demon_run_anim', 144, 364, 32, 36);

		this.define('elf_f_idle_anim', 128, 4, 16, 28);
		this.define('elf_f_run_anim', 192, 4, 16, 28);
		this.define('elf_f_hit_anim', 256, 4, 16, 28);

		this.define('elf_m_idle_anim', 128, 36, 16, 28);
		this.define('elf_m_run_anim', 192, 36, 16, 28);
		this.define('elf_m_hit_anim', 256, 36, 16, 28);

		this.define('knight_f_idle_anim', 128, 68, 16, 28);
		this.define('knight_f_run_anim', 192, 68, 16, 28);
		this.define('knight_f_hit_anim', 256, 68, 16, 28);

		this.define('knight_m_idle_anim', 128, 100, 16, 28);
		this.define('knight_m_run_anim', 192, 100, 16, 28);
		this.define('knight_m_hit_anim', 256, 100, 16, 28);

		this.define('wizzard_f_idle_anim', 128, 132, 16, 28);
		this.define('wizzard_f_run_anim', 192, 132, 16, 28);
		this.define('wizzard_f_hit_anim', 256, 132, 16, 28);

		this.define('wizzard_m_idle_anim', 128, 164, 16, 28);
		this.define('wizzard_m_run_anim', 192, 164, 16, 28);
		this.define('wizzard_m_hit_anim', 256, 164, 16, 28);

		this.define('lizard_f_idle_anim', 128, 196, 16, 28);
		this.define('lizard_f_run_anim', 192, 196, 16, 28);
		this.define('lizard_f_hit_anim', 256, 196, 16, 28);

		this.define('lizard_m_idle_anim', 128, 228, 16, 28);
		this.define('lizard_m_run_anim', 192, 228, 16, 28);
		this.define('lizard_m_hit_anim', 256, 228, 16, 28);
	}
}

export default Dungeon;
