using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Assets.Scripts.Battle;

namespace Assets.Scripts.Player
{
    public class MobFactory
    {
        public static PlayerHero MakeLua() {
            return new PlayerHero(8, 10) {
                Name = "Lua",
                Damage = 2,
                Accuracy = 0.7f,
                Cooldown = 4.0f,
                Range = 2,
                SpriteIndex = 0
            };
        }

        public static PlayerHero MakeFavo () {
            return new PlayerHero(6, 8) {
                Name = "Favo",
                Damage = 2,
                Accuracy = 0.7f,
                Cooldown = 3.0f,
                Range = 1,
                SpriteIndex = 1
            };
        }

        public static PlayerHero MakeCouro () {
            return new PlayerHero(10, 6) {
                Name = "Couro",
                Damage = 3,
                Accuracy = 0.6f,
                Cooldown = 7.0f,
                Range = 1,
                SpriteIndex = 2
            };
        }

        public static PlayerHero MakeRosa () {
            return new PlayerHero(4, 12) {
                Name = "Rosa",
                Damage = 6,
                Accuracy = 0.8f,
                Cooldown = 15.0f,
                Range = 3,
                SpriteIndex = 3
            };
        }

        public static Mob MakeZombie() {
            return new Mob(Allegiance.ENEMY, 5, 5) {
                Name = "Zombie",
                Damage = 2,
                Accuracy = 0.6f,
                Cooldown = 10.0f,
                Range = 1,
                SpriteIndex = 7
            };
        }

        public static Mob MakeSkeleton () {
            return new Mob(Allegiance.ENEMY, 10, 5) {
                Name = "Skeleton",
                Damage = 2,
                Accuracy = 0.6f,
                Cooldown = 4.0f,
                Range = 1,
                SpriteIndex = 5
            };
        }

        public static Mob MakeWerewolf() {
            return new Mob(Allegiance.ENEMY, 10, 5) {
                Name = "Werewolf",
                Damage = 1,
                Accuracy = 0.7f,
                Cooldown = 2.0f,
                Range = 1,
                SpriteIndex = 4
            };
        }

        public static Mob MakePriest() {
            return new Mob(Allegiance.ENEMY, 6, 5) {
                Name = "Priest",
                Damage = 3,
                Accuracy = 0.7f,
                Cooldown = 7.0f,
                Range = 2,
                SpriteIndex = 6
            };
        }

        public static Mob MakeDracula () {
            return new Mob(Allegiance.ENEMY, 20, 5) {
                Name = "Dracula",
                Damage = 3,
                Accuracy = 0.7f,
                Cooldown = 7.0f,
                Range = 2,
                SpriteIndex = 8
            };
        }

        public static Mob MakeNecromancer () {
            return new Mob(Allegiance.ENEMY, 10, 5) {
                Name = "Necromancer",
                Damage = 4,
                Accuracy = 0.7f,
                Cooldown = 5.0f,
                Range = 3,
                SpriteIndex = 9
            };
        }

        public static Mob MakeCultist() {
            return MakePriest();
        }
    }
}
