using Turbo.Plugins.Default;

namespace Turbo.Plugins.User
{
	public class DAV_BossConfigPlugin : BasePlugin, ICustomizer {
		public DAV_BossConfigPlugin() {
			Enabled = true;
		}
		
		public void Customize() {
			
			// Add the Boss Watch List
			Hud.RunOnPlugin<DAV_BossAnimeLog>(plugin => {
				// Add Boss for checking the animation sno number
				
				// plugin.BossList.Add("Agnidox"); // (empowered Demonic Hellflyer)
				// plugin.BossList.Add("Blighter"); // (empowered Herald of Pestilence)
				// plugin.BossList.Add("Bloodmaw"); // (empowered Executioner)
				// plugin.BossList.Add("Bone Warlock"); // (empowered Skeletal Summoner)
				// plugin.BossList.Add("Cold Snap"); // (empowered Izual)
				// plugin.BossList.Add("Crusader King"); // (empowered Skeleton King)
				// plugin.BossList.Add("Ember"); // (empowered Morlu Caster)
				// plugin.BossList.Add("Erethon"); // (empowered Corrupted Angel)
				// plugin.BossList.Add("Eskandiel"); // (empowered Corpse Raiser)
				// plugin.BossList.Add("Hamelin"); // (empowered Rat King)
				// plugin.BossList.Add("Infernal Maiden"); // (empowered Fire Maiden)
				// plugin.BossList.Add("Man Carver"); // (empowered Butcher)
				// plugin.BossList.Add("Orlash"); // (empowered Terror Demon)
				// plugin.BossList.Add("Perdition"); // (empowered Rakanoth)
				// plugin.BossList.Add("Perendi"); // (empowered Mallet Lord)
				// plugin.BossList.Add("Raiziel"); // (empowered Exarch)
				// plugin.BossList.Add("Rime"); // (empowered Xah'Rith the Keywarden)
				// plugin.BossList.Add("Sand Shaper"); // (empowered Zoltun Kulle)
				// plugin.BossList.Add("Saxtris"); // (empowered Deceiver)
				// plugin.BossList.Add("Stonesinger"); // (empowered Sand Dweller)
				// plugin.BossList.Add("Tethrys"); // (empowered Succubus)
				// plugin.BossList.Add("The Binder"); // (empowered Cydaea)
				// plugin.BossList.Add("The Choker"); // (empowered Barbed Lurker)
				// plugin.BossList.Add("Vesalius"); // (empowered Vidian)
				// plugin.BossList.Add("Voracity"); // (empowered Ghom)
				
				//BOSS Skill, Thanks for user evan6944's work
				plugin.BossSkillBoard.Add("Man Carver", "Add(s)\tNone\n\nSkills\t1. Mark of Fire (lasts 15s)\n\t2. Charge\n\t3. Heavy Smash\n\t4. Ancient Spear (75%)\n\t5. Sickle Grab (50%)\n\nAffix\t1. Waller");
				plugin.BossSkillBoard.Add("The Choker", "Add(s)\t1. Slime (100%) [1 - 3 per cast (Cap: >10)]\n\nSkills\t1. Poison Worms\n\t2. Poison Blast\n\t3. Plagued Circle (<80%)\n\nAffix\tNone");
				plugin.BossSkillBoard.Add("Hamelin", "Add(s)\t1. Ratlings x 10 (100%) [Cap: 10]\n\t2. Ratlings x 2 - 3 (<90%) [Cap: 20]\n\nSkills\t1. Rat-nado (lasts 20s)\n\t2. Plagued Arena (lasts 10s)\n\t3. Digger (teleport) \n\nAffix\tNone");
				plugin.BossSkillBoard.Add("Blighter", "Add(s)\tNone\n\nSkills\t1. Poison Nova\n\t2. Plague Rings\n\t3. Plague Sweep\n\t4. Plague Storm  (<50%)\n\nAffix\t1. Knockback");
				plugin.BossSkillBoard.Add("Infernal Maiden", "Add(s)\tNone\n\nSkills\t1. Overhead Attack\n\t2. Whirling Mortar\n\t3. Fire Nova (<45%)\n\nAffix\t1. Teleporter");
				plugin.BossSkillBoard.Add("Erethon", "Add(s)\tNone\n\nSkills\t1. Dash\n\t2. Poison Blast\n\t3. Poison Balls\n\t4. Poison Explosion (<50%)\n\nAffix\tNone");
				plugin.BossSkillBoard.Add("Agnidox", "Add(s)\tNone\n\nSkills\t1. Fireball\n\t2. Flame Breath\n\t3. Mark of Fire (lasts 15s)\n\t4. Flame Nova (<50%)\n\nAffix\t1. Fast\n\t2. Mortar");
				plugin.BossSkillBoard.Add("Ember", "Add(s)\t1. Demented Fallen x 2 - 3 (95%) \n\t2. Fallen Shaman x 2 - 3 (60%) [Cap: 5]\n\nSkills\t1. Meteor\n\nAffix\t1. Teleporter");
				plugin.BossSkillBoard.Add("Tethrys", "Add(s)\tNone\n\nSkills\t1. Fireball 1 (100%, slow)\n\t2. Blood Star (lasts 5s)\n\t3. Geyser (60%, lasts 3s)\n\t4. Fireball 2 (40%, fast)\n\nAffix\t1. Teleporter\n\t2. Knockback");
				plugin.BossSkillBoard.Add("Vesalius", "Add(s)\tNone\n\nSkills\t1. Energy Barrage\n\t2. Gateway\n\nAffix\t1. Wormhole\n\t2. Frozen Pulse");
				plugin.BossSkillBoard.Add("Saxtris", "Add(s)\t1. Winged Larvae x 8 - 15 (75%) [Cap: 2 sets]\n\t2. Snakechild x 8 - 15 (50%) [Cap: 2 sets]\n\nSkills\t1. Energy Twister (lasts 30s)\n\nAffix\t1. Vortex");
				plugin.BossSkillBoard.Add("Cold Snap", "Add(s)\tNone\n\nSkills\t1. Charge\n\t2. Frozen Nova\n\t3. Frozen Storm (50%)\n\nAffix\t1. Frozen Pulse");
				plugin.BossSkillBoard.Add("Bloodmaw", "Add(s)\tNone\n\nSkills\t1. Leaping Strike\n\t2. Leap\n\nAffix\t1. Fast");
				plugin.BossSkillBoard.Add("Stonesinger", "Add(s)\t1. Fissure (100%, lasts 20s) [Cap: 3]\n\nSkills\t1. Shovel\n\t2. Charge\n\nAffix\t1. Knockback");
				plugin.BossSkillBoard.Add("Perdition", "Add(s)\tNone\n\nSkills\t1. Blade Cleave\n\t2. Teleport Strike\n\t3. Volley\n\nAffix\t1. Fast");
				plugin.BossSkillBoard.Add("Bone Warlock", "Add(s)\tBones (95%) [Cap: 5]\n\t1. Quick Bones\n\t2. Reflecting Bones\n\t3. Mortar Bones\n\t4. Knockback Bones\n\nSkills\t1. Arcane Bolt\n\nAffix\t1. Wormhole");
				plugin.BossSkillBoard.Add("Rime", "Add(s)\tNone\n\nSkills\t1. Frost Pools\n\t2. Frost Ring\n\t3. Volley\n\nAffix\t1. Teleporter");
				plugin.BossSkillBoard.Add("Raiziel", "Add(s)\tNone\n\nSkills\t1. Lightning Orb\n\t2. Holy Bolt Nova (75%, 25%)\n\nAffix\t1. Teleporter");
				plugin.BossSkillBoard.Add("Crusader King", "Add(s)\tSkeletons (100%, 3 - 8/cast) [Cap: 14 - 15]\n\t1. Returned\n\t2. Returned Archer\n\t3. Forgotten Soldier\n\nSkills\t1. Arcane Nova\n\t2. Teleport Strike\n\t3. Spinning Strike\n\nAffix\t1. Jailer");
				plugin.BossSkillBoard.Add("Perendi", "Add(s)\t1. Stonecrusher (100%, 1 - 5/cast, lasts 20s) [Cap: None]\n\nSkills\t1. Cave-In\n\nAffix\t1. Fast\n\t2. Teleporter");
				plugin.BossSkillBoard.Add("The Binder", "Add(s)\t1. Spiderlings (85%, 5-7/cast) [Cap: 10]\n\nSkills\t1. Venomballs\n\t2. Net Toss\n\t3. Poison Spit (65%)\n\nAffix\t1. Fast (65%)");
				plugin.BossSkillBoard.Add("Voracity", "Add(s)\t1. Acid Slime (65%, 2/cast) [Cap: 4/player]\n\nSkills\t1. Flatulence (lasts 65s)\n\t2. Bile Spew (35%)\n\nAffix\tNone");
				plugin.BossSkillBoard.Add("Sand Shaper", "Add(s)\tNone\n\nSkills\t1. Fireball\n\t2. Energy Twister (75%, lasts 30s)\n\t3. Cave-In (65%)\n\t4. Slow Time (65%, lasts 15s)\n\nAffix\t1. Teleporter");
				plugin.BossSkillBoard.Add("Orlash", "Add(s)\t1. Echoes (100%) [Cap: 2-3]\n\nSkills\t1. Lightning Breath\n\nAffix\t1. Teleporter\n\t2. Waller\n\t3. Fast");
				plugin.BossSkillBoard.Add("Eskandiel", "Add(s)\t1. Bones (100%) [Cap: 10-13]\n\tCanine Bones\n\tSpitting Bones\n\tHungering Bones\n\tRisen Bones\n\nSkills\t1. Repulsion\n\t2. Tug\n\nAffix\t1. Teleporter\n\t2. Arcane Enchanted\n\t3. Fast");
			});
			
			Hud.RunOnPlugin<DAV_BossWarmingPlugin>(plugin => {
				plugin.BossOffsetX = -20.0f;
				plugin.BossOffsetY = 0.0f;
				plugin.BossOffsetZ = 10.0f;
				plugin.MeOffsetX = -15.0f;
				plugin.MeOffsetY = 7.0f;
				plugin.MeOffsetZ = 0.0f;
				plugin.ShowOrlashClone = false;
				plugin.GRonly = true;
				plugin.onBoss = false;
				plugin.onMe = true;
				
				//BOSS Warming, Thanks for user evan6944's work
				
				//Orlash
				plugin.WarmingMessage.Add(AnimSnoEnum._terrordemon_attack_firebreath, "Lightning Breath");
				plugin.WarmingMessage.Add(AnimSnoEnum._terrordemon_attack_01, "Smack");
				plugin.WarmingMessage.Add(AnimSnoEnum._terrordemon_generic_cast, "Summoning");
				
				//Bloodmaw
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_westmarchbrute_taunt, "LEAP");
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_westmarchbrute_b_attack_06_in, "Leaping Strike");
				
				//Crusader King
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonking_cast_summon, "SUMMONING");
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonking_whirlwind_start, "TRIPLE SWING");
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonking_whirlwind_loop, "TRIPLE SWING");
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonking_whirlwind_end, "TRIPLE SWING");
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonking_teleport, "TELEPORT");
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonking_attack_02, "Smack");
				
				//Infernal Maiden
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_deathmaiden_fire_attack_01, "Smack");
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_deathmaiden_attack_04_aoe, "Overhead Attack");
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_deathmaiden_attack_special_360_01, "Spinning Attack\n\nSPINNING ATTACK + MORTAR (when <50%)");
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_deathmaiden_attack_special_flip_01, "FIRE NOVA");
				
				//Man Carver
				plugin.WarmingMessage.Add(AnimSnoEnum._butcher_attack_chain_01_in, "Sickle Grab");
				plugin.WarmingMessage.Add(AnimSnoEnum._butcher_attack_charge_01_in, "CHARGE");
				plugin.WarmingMessage.Add(AnimSnoEnum._butcher_attack_fanofchains, "Fan of Spears");
				plugin.WarmingMessage.Add(AnimSnoEnum._butcher_attack_05_telegraph, "Heavy Smash");
				
				//Saxtris
				plugin.WarmingMessage.Add(AnimSnoEnum._snakeman_melee_generic_cast_01, "Summoning");
				plugin.WarmingMessage.Add(AnimSnoEnum._snakeman_melee_attack_01, "Smack");
				
				//Hamelin
				plugin.WarmingMessage.Add(AnimSnoEnum._p4_ratking_spawn_01, "Summoning");
				plugin.WarmingMessage.Add(AnimSnoEnum._p4_ratking_burrow_in, "Burrow");
				plugin.WarmingMessage.Add(AnimSnoEnum._p4_ratking_summon_01, "Rat-nado");
				plugin.WarmingMessage.Add(AnimSnoEnum._p4_ratking_roar_summon, "Plagued Arena");
				
				//Bone Warlock
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonsummoner_generic_cast, "Wormhole\nShort Teleport");
				plugin.WarmingMessage.Add(AnimSnoEnum._skeletonsummoner_attack_01, "Arcane Bolt");
				
				//Perendi
				plugin.WarmingMessage.Add(AnimSnoEnum._malletdemon_generic_cast, "Cave In\nShort Teleport");
				plugin.WarmingMessage.Add(AnimSnoEnum._malletdemon_attack_01, "Smack");
				
				//The Choker
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_squigglet_generic_cast, "Summoning"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_squigglet_rangedattack_v2, "Squigglet Cone"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_squigglet_strafe_attack_left_01, "Squigglet Bolt"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_squigglet_strafe_attack_right_01, "Squigglet Bolt"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_squigglet_taunt_01, "PLAGUED CIRCLE\nSTUN in 1s"); 
				
				//Eskandiel
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_dark_angel_generic_cast, "Summoning\nArcane Blob\nShort Teleport"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_dark_angel_cast, "REPULSION WAVE	"); 
				
				//Voracity
				plugin.WarmingMessage.Add(AnimSnoEnum._gluttony_attack_chomp, "Smack"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._gluttony_attack_areaeffect, "Fart Cloud"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._gluttony_attack_ranged_01, "Summoning"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._gluttony_attack_sneeze, "Bile Spew"); 
				
				//Vesalius
				plugin.WarmingMessage.Add(AnimSnoEnum._p6_envy_cast_02, "ENERGY BARRAGE"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._p6_envy_teleport_start_02, "GATEWAY"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._p6_envy_attack_01, "Smack"); 
				
				//Stonesinger
				plugin.WarmingMessage.Add(AnimSnoEnum._sandmonster_temp_rock_throw, "Shovel"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._sandmonsterblack_attack_03_sandwall, "Summoning"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._sandmonster_attack_01, "Smack"); 

				//Agnidox
				plugin.WarmingMessage.Add(AnimSnoEnum._demonflyer_mega_fireball_01, "Fireball\nFire Nova"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._demonflyer_mega_firebreath_01, "Flame Breath"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._demonflyer_mega_attack_01, "Smack"); 
				
				//Cold Snap
				plugin.WarmingMessage.Add(AnimSnoEnum._bigred_firebreath_combo_01, "Frozen Nova"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._bigred_charge_01, "Charge"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._bigred_attack_02, "Smack"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._bigred_generic_cast_01, "Freezing Pulse\nFrozen Storm"); 
				
				//The Binder
				plugin.WarmingMessage.Add(AnimSnoEnum._mistressofpain_attack_01, "Smack"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._mistressofpain_attack_spellcast_summon_webpatch, "Net Toss"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._mistressofpain_attack_spellcast_poison, "Poison Spit"); 
				
				//Ember
				plugin.WarmingMessage.Add(AnimSnoEnum._morluspellcaster_generic_cast, "Summoning"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._morluspellcaster_attack_aoe_01, "METEOR");

				//Tethrys
				plugin.WarmingMessage.Add(AnimSnoEnum._succubus_generic_cast_01, "Blood Star\nFire Ball\nGEYSER (60%)"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._succubus_attack_melee_01, "Smack"); 
				
				//Raiziel
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_sniperangel_firebomb_01, "Lightning Orb"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_sniperangel_temp_cast_01, "Holy Bolt Nova"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_sniperangel_lightning_spray_01, "Smack"); 
				
				//Sand Shaper
				plugin.WarmingMessage.Add(AnimSnoEnum._zoltunkulle_aoe_01, "Cave In"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._zoltunkulle_direct_cast_04, "FIRE BALL"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._zoltunkulle_taunt_01, "Taunt"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._zoltunkulle_omni_cast_05_fadeout, "Teleport"); 
				plugin.WarmingMessage.Add(AnimSnoEnum._zoltunkulle_omni_cast_01, "Twister");  
				plugin.WarmingMessage.Add(AnimSnoEnum._zoltunkulle_omni_cast_04, "Slow Time");  
								
				//Rime
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_lr_boss_morluspellcaster_generic_cast, "Volley\nFrost Ring\nFront Pools");  
				plugin.WarmingMessage.Add(AnimSnoEnum._p2_morluspellcaster_attack_melee_01_uber, "Smack");  
				
				//Blighter
				plugin.WarmingMessage.Add(AnimSnoEnum._creepmob_attack_04_in, "Plagued Line");  
				plugin.WarmingMessage.Add(AnimSnoEnum._creepmob_generic_cast, "Poison Nova");  
				plugin.WarmingMessage.Add(AnimSnoEnum._creepmob_attack_01, "Smack");  
				plugin.WarmingMessage.Add(AnimSnoEnum._creepmob_attack_04_middle, "Plaguestorm");  
				
				//Perdition
				plugin.WarmingMessage.Add(AnimSnoEnum._lordofdespair_attack_energyblast, "Blade Cleave");  
				plugin.WarmingMessage.Add(AnimSnoEnum._lordofdespair_attack_stab, "Smack");  
				plugin.WarmingMessage.Add(AnimSnoEnum._lordofdespair_attack_teleport_full, "BLINK STRIKE");  
				plugin.WarmingMessage.Add(AnimSnoEnum._lordofdespair_spellcast, "Volley");  
								
				//Erethon
				plugin.WarmingMessage.Add(AnimSnoEnum._x1_lr_boss_angel_corrupt_a_cast_01, "POISON BLAST\nPoison Balls");  
				plugin.WarmingMessage.Add(AnimSnoEnum._angel_corrupt_attack_01, "Smack");  
				plugin.WarmingMessage.Add(AnimSnoEnum._angel_corrupt_attack_dash_in, "Dash");
			});
		}
	}
}