示例#1
0
        public async Task <ServiceResponce <AttackResultDTO> > WeaponAttack(WeaponAttackDTO request)
        {
            ServiceResponce <AttackResultDTO> responce = new ServiceResponce <AttackResultDTO>();

            try
            {
                Charecter attacker = await _context.Charecters
                                     .Include(c => c.Weapon).FirstOrDefaultAsync(c => c.Id == request.AttackerId);

                Charecter opponent = await _context.Charecters.FirstOrDefaultAsync(c => c.Id == request.OpponentId);

                int damage = DoWeaponAttack(attacker, opponent);
                if (opponent.HitPoints <= 0)
                {
                    responce.Message = $"{opponent.Name} has been defeated!";
                }
                _context.Charecters.Update(opponent);
                await _context.SaveChangesAsync();

                responce.Data = new AttackResultDTO
                {
                    Attacker   = attacker.Name,
                    AttackerHp = attacker.HitPoints,
                    Opponent   = opponent.Name,
                    OpponentHp = opponent.HitPoints,
                    Damage     = damage
                };
            }
            catch (Exception ex)
            {
                responce.Success = false;
                responce.Message = ex.Message;
            }
            return(responce);
        }
示例#2
0
        public async Task <ServiceResponse <List <GetCharecterDto> > > deleteCharecter(int id)
        {
            ServiceResponse <List <GetCharecterDto> > serviceResponse = new ServiceResponse <List <GetCharecterDto> >();

            try
            {
                Charecter chars = await _contect.charecters.FirstOrDefaultAsync(da => da.Id == id && da.Users.Id == GetUserID());

                if (chars != null)
                {
                    _contect.charecters.Remove(chars);
                    await _contect.SaveChangesAsync();

                    serviceResponse.data = (_contect.charecters.Where(c => c.Users.Id == GetUserID()).Select(ob => _mapper.Map <GetCharecterDto>(ob))).ToList();
                }
                else
                {
                    serviceResponse.Success = false;
                    serviceResponse.Message = "Charecter not found";
                }
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message;
            }
            return(serviceResponse);
        }
示例#3
0
 public override void CallSelecetdAttack(Charecter Target)
 {
     if (SelectedAttack <= skills.Count)
     {
         skills [SelectedAttack] (Target);
     }
 }
示例#4
0
        public async Task <ServiceResponce <GetCharecterDTO> > UpdateCharecter(UpdateCharecterDTO updateCharecter)
        {
            ServiceResponce <GetCharecterDTO> serviceResponce = new ServiceResponce <GetCharecterDTO>();

            try
            {
                Charecter charecter = await _context.Charecters.Include(c => c.User.Id).FirstOrDefaultAsync(c => c.Id == updateCharecter.Id);

                if (charecter.User.Id == GetUserId())
                {
                    charecter.Name         = updateCharecter.Name;
                    charecter.Class        = updateCharecter.Class;
                    charecter.Defence      = updateCharecter.Defence;
                    charecter.Intelligence = updateCharecter.Intelligence;
                    charecter.HitPoints    = updateCharecter.HitPoints;
                    charecter.Strength     = updateCharecter.Strength;
                    _context.Charecters.Update(charecter);
                    await _context.SaveChangesAsync();

                    serviceResponce.Data = _mapper.Map <GetCharecterDTO>(charecter);
                }
                else
                {
                    serviceResponce.Success = false;
                    serviceResponce.Message = "Charecter not found.";
                }
            }
            catch (Exception ex)
            {
                serviceResponce.Success = false;
                serviceResponce.Message = ex.Message;
            }

            return(serviceResponce);
        }
示例#5
0
    public void SetToMove()
    {
        Charecter monster = currentSelectedUnit.GetComponent <Charecter> ();

        monster.setToMove   = true;
        monster.setToAttack = false;
    }
示例#6
0
        public async Task <ServiceResponce <GetCharecterDTO> > AddWeapon(AddWeaponDTO newWeapon)
        {
            ServiceResponce <GetCharecterDTO> responce = new ServiceResponce <GetCharecterDTO>();

            try{
                Charecter charecter = await _context.Charecters.FirstOrDefaultAsync(c => c.Id == newWeapon.CharecterId &&
                                                                                    c.User.Id == int.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)));

                if (charecter == null)
                {
                    responce.Success = false;
                    responce.Message = "Charecter is not found.";
                    return(responce);
                }
                Weapon weapon = new Weapon()
                {
                    Name      = newWeapon.Name,
                    Damage    = newWeapon.Damage,
                    Charecter = charecter
                };

                await _context.Weapons.AddAsync(weapon);

                await _context.SaveChangesAsync();

                responce.Data = _mapper.Map <GetCharecterDTO>(charecter);
            }
            catch (Exception ex) {
                responce.Success = false;
                responce.Message = ex.Message;
            }
            return(responce);
        }
示例#7
0
        public async Task <ServiceResponse <GetCharecterDto> > updateCharecter(UpdateCharecterDto obj)
        {
            ServiceResponse <GetCharecterDto> serviceResponse = new ServiceResponse <GetCharecterDto>();

            try
            {
                Charecter chars = await _contect.charecters.Include(u => u.Users).FirstOrDefaultAsync(da => da.Id == obj.Id);

                if (chars.Users.Id == GetUserID())
                {
                    chars.Name         = obj.Name;
                    chars.Intelligence = obj.Intelligence;
                    chars.Class        = obj.Class;
                    chars.Defence      = obj.Defence;
                    chars.HitPoints    = obj.HitPoints;
                    chars.Strength     = obj.Strength;

                    _contect.Update(chars);
                    await _contect.SaveChangesAsync();

                    serviceResponse.data = _mapper.Map <GetCharecterDto>(chars);
                }
                else
                {
                    serviceResponse.Success = false;
                    serviceResponse.Message = "Charecter not found";
                }
            }
            catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message;
            }
            return(serviceResponse);
        }
示例#8
0
        public async Task <ServiceResponse <GetCharecterDto> > AddWeapons(AddWeaponDto addWeapon)
        {
            ServiceResponse <GetCharecterDto> response = new ServiceResponse <GetCharecterDto>();

            try
            {
                int       userid = GetUserID();
                Charecter chars  = await _context.charecters.
                                   FirstOrDefaultAsync(x => x.Id == addWeapon.CharecterId && x.Users.Id == GetUserID());

                if (chars == null)
                {
                    response.Success = false;
                    response.Message = "Charecter not found";
                    return(response);
                }
                Weapon weapon = new Weapon {
                    Name      = addWeapon.Name,
                    Damage    = addWeapon.Damage,
                    charecter = chars
                };
                await _context.Weapons.AddAsync(weapon);

                await _context.SaveChangesAsync();

                response.data = _mapper.Map <GetCharecterDto>(chars);
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Message = e.Message;
            }
            return(response);
        }
示例#9
0
        public async Task <ServiceResponce <List <GetCharecterDTO> > > DeleteCharecter(int id)
        {
            ServiceResponce <List <GetCharecterDTO> > serviceResponce = new ServiceResponce <List <GetCharecterDTO> >();

            try
            {
                Charecter charecter = await _context.Charecters.FirstOrDefaultAsync(c => c.Id == id && c.User.Id == GetUserId());

                if (charecter != null)
                {
                    _context.Charecters.Remove(charecter);
                    await _context.SaveChangesAsync();

                    serviceResponce.Data = (_context.Charecters.Where(c => c.User.Id == GetUserId()).Select(c => _mapper.Map <GetCharecterDTO>(c))).ToList();
                }
                else
                {
                    serviceResponce.Success = false;
                    serviceResponce.Message = "Charecter not found.";
                }
            }
            catch (Exception ex)
            {
                serviceResponce.Success = false;
                serviceResponce.Message = ex.Message;
            }

            return(serviceResponce);
        }
示例#10
0
    // Use this for initialization
    void Start()
    {
        GameObject[] foundMonsters = GameObject.FindGameObjectsWithTag("Monster");
        Debug.Log(foundMonsters);
        foreach (GameObject monster in foundMonsters)
        {
            Charecter found = monster.GetComponent <Charecter> ();
            found.RollInitiative();
            TurnOrder.Add(found);
            //TurnOrder2.
        }
        TurnOrder.Sort((Char1, Char2) =>
        {
            return(Char2.initiative.CompareTo(Char1.initiative));
        });

        grid.currentSelectedUnit = TurnOrder[0].transform.gameObject;



        if (!TurnOrder [0].isPlayerUnit)
        {
            //implement some AI logic here
            AI.BasicAILogic(TurnOrder [0]);
            EndCurrentUnitTurn();
        }
    }
示例#11
0
    public virtual bool BasicAttack(Charecter Target, bool isAIAttack = false)
    {
        bool success = false;

        if (equipedWeapon.Range == 1)
        {
            Debug.Log(Target);
            if (((Target.posX - posX) >= -1 && (Target.posX - posX) <= 1) && ((Target.posY - posY) >= -1 && (Target.posY - posY) <= 1))
            {
                success = true;
            }
        }
        else
        {
            if (pathfinder.FindPath(Target) <= equipedWeapon.Range)
            {
                success = true;
            }
        }
        attemptingAttack = 0;
        pathfinder.ClearLines();
        if (success)
        {
            if (Target.isPlayerUnit && !isAIAttack)
            {
                return(false);
            }
            hasAttackedForTurn = true;
            Target.TakeDamege(equipedWeapon.Attack);
        }
        return(success);
    }
示例#12
0
    public void EndCurrentUnitTurn()
    {
        Charecter temp = TurnOrder [0];

        temp.EndOfTurnEffects();
        TurnOrder.RemoveAt(0);
        if (temp.gameObject.activeSelf)
        {
            TurnOrder.Add(temp);
        }
        grid.currentSelectedUnit = TurnOrder [0].transform.gameObject;
        if (TurnOrder[0].stunned)
        {
            EndCurrentUnitTurn();
        }

        if (!TurnOrder [0].isPlayerUnit)
        {
            //implement some AI logic here
            if (AI.busy)
            {
                waitingForAIToFinish = true;
                return;
            }
            AI.BasicAILogic(TurnOrder [0]);
            //Debug.Log("Skiping Enemy Turn");
            EndCurrentUnitTurn();
        }
    }
示例#13
0
        public async Task <ServiceResponse <GetCharecterDto> > getNamebyID(int id)
        {
            ServiceResponse <GetCharecterDto> serviceResponse = new ServiceResponse <GetCharecterDto>();
            Charecter chars = await _contect.charecters.SingleOrDefaultAsync(x => x.Id == id && x.Users.Id == GetUserID());

            serviceResponse.data = _mapper.Map <GetCharecterDto>(chars);
            return(serviceResponse);
        }
示例#14
0
 void Heal(Charecter Target)
 {
     Target.CurrentHealth += SpellPower + HealPower;
     if (Target.MaxHP < Target.CurrentHealth)
     {
         Target.CurrentHealth = Target.MaxHP;
     }
 }
示例#15
0
 void SetCharecter()
 {
     charecter = GameObject.FindGameObjectWithTag("Player").GetComponent <Charecter>();
     if (!charecter)
     {
         Debug.LogError("Cannot find charecter in scene!");
     }
 }
示例#16
0
    public void SetToAttack(int skill)
    {
        Charecter monster = currentSelectedUnit.GetComponent <Charecter> ();

        monster.setToMove        = false;
        monster.setToAttack      = true;
        monster.attemptingAttack = skill;
    }
示例#17
0
        public async Task <ServiceResponce <GetCharecterDTO> > GetCharecterById(int id)
        {
            ServiceResponce <GetCharecterDTO> serviceResponce = new ServiceResponce <GetCharecterDTO>();
            Charecter dbCharecter = await _context.Charecters.FirstOrDefaultAsync(c => c.Id == id && c.User.Id == GetUserId());

            serviceResponce.Data = _mapper.Map <GetCharecterDTO>(dbCharecter);
            return(serviceResponce);
        }
示例#18
0
    public void SetToMove()
    {
        Charecter monster = currentSelectedUnit.GetComponent <Charecter> ();

        //Debug.Log ("987654321");
        pathfinder.SetMoveBorder(monster.leftMove, monster.posX, monster.posY);
        monster.setToMove        = true;
        monster.setToAttack      = false;
        monster.attemptingAttack = 0;
    }
示例#19
0
        private static int DoSkillAttack(Charecter attacker, Charecter opponent, CharecterSkill charecterSkill)
        {
            int damage = Convert.ToInt32(charecterSkill.Skill.Damage) + (new Random().Next(attacker.Intelligence));

            damage -= new Random().Next(opponent.Defence);
            if (damage > 0)
            {
                opponent.HitPoints -= damage;
            }

            return(damage);
        }
示例#20
0
        private static int DoWeaponAttack(Charecter attacker, Charecter opponent)
        {
            int damage = attacker.Weapon.Damage + (new Random().Next(attacker.Strength));

            damage -= new Random().Next(opponent.Defence);
            if (damage > 0)
            {
                opponent.HitPoints -= damage;
            }

            return(damage);
        }
示例#21
0
        public async Task <ServiceResponce <List <GetCharecterDTO> > > AddCharecter(AddCharecterDTO newCharecter)
        {
            ServiceResponce <List <GetCharecterDTO> > serviceResponce = new ServiceResponce <List <GetCharecterDTO> >();
            Charecter charecter = (_mapper.Map <Charecter>(newCharecter));

            charecter.User = await _context.Users.FirstOrDefaultAsync(u => u.Id == GetUserId());

            await _context.Charecters.AddAsync(charecter);

            await _context.SaveChangesAsync();

            serviceResponce.Data = (_context.Charecters.Where(c => c.User.Id == GetUserId()).Select(c => _mapper.Map <GetCharecterDTO>(c))).ToList();
            return(serviceResponce);
        }
示例#22
0
    public void SliceAndDice(Charecter Target)
    {
        int numOfRandomHits = UnityEngine.Random.Range(2, 3);

        for (int i = 0; i < numOfRandomHits; i++)
        {
            //due to the way the BasicAttack method works this is not optimal :S
            if (BasicAttack(Target))
            {
                Debug.Log("CD inc!!!");
                SkillOneCDLeft = SkillOneCD;
            }
        }
        Debug.Log("Slice'nDice");
    }
示例#23
0
        public async Task <ServiceResponse <AttackResultDto> > SkillAttack(SkillAttackDto request)
        {
            ServiceResponse <AttackResultDto> response = new ServiceResponse <AttackResultDto>();

            try{
                Charecter attacker = await _context.charecters.Include(chars => chars.CharecterSkills).ThenInclude(cs => cs.Skills)
                                     .FirstOrDefaultAsync(c => c.Id == request.AttackerId);

                Charecter opponent = await _context.charecters.FirstOrDefaultAsync(c => c.Id == request.OpponentId);

                CharecterSkill charecterSkill =
                    attacker.CharecterSkills.FirstOrDefault(cs => cs.Skills.Id == request.SkillId);

                if (charecterSkill == null)
                {
                    response.Message = $"{attacker.Name} does not known Skil";
                    response.Success = false;
                    return(response);
                }
                int damage = int.Parse(charecterSkill.Skills.Damage) + (new Random().Next(attacker.Intelligence));
                damage -= new Random().Next(opponent.Defence);
                if (damage > 0)
                {
                    opponent.HitPoints -= damage;
                }
                if (opponent.HitPoints <= 0)
                {
                    response.Message = $"{opponent.Name} has been defeated !";
                }

                _context.charecters.Update(opponent);
                await _context.SaveChangesAsync();

                response.data = new AttackResultDto {
                    Attacker   = attacker.Name,
                    AttackerHP = attacker.HitPoints.ToString(),
                    Opponent   = opponent.Name,
                    OpponentHP = opponent.HitPoints.ToString(),
                    Damage     = damage
                };
            }
            catch (Exception ex)
            {
                response.Message = ex.ToString();
                response.Success = false;
            }
            return(response);
        }
示例#24
0
        public async Task <ServiceResponse <GetCharecterDto> > AddCharecterSkill(AddCharecterSkillDto addCharecterSkill)
        {
            ServiceResponse <GetCharecterDto> response = new ServiceResponse <GetCharecterDto>();

            try
            {
                Charecter chars = await _context.charecters
                                  .Include(c => c.Weapons)
                                  .Include(c => c.CharecterSkills)
                                  .ThenInclude(we => we.Skills)
                                  .FirstOrDefaultAsync(c => c.Id == addCharecterSkill.CharecterId &&
                                                       c.Users.Id == int.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)));

                if (chars == null)
                {
                    response.Success = false;
                    response.Message = "No Charecter Record found";
                    return(response);
                }

                Skill skill = await _context.Skills.SingleOrDefaultAsync(s => s.Id == addCharecterSkill.SkillId);

                if (skill == null)
                {
                    response.Success = false;
                    response.Message = "No skill Record found";
                    return(response);
                }

                CharecterSkill charecter = new CharecterSkill {
                    charecters = chars,
                    Skills     = skill
                };
                await _context.CharecterSkills.AddAsync(charecter);

                await _context.SaveChangesAsync();

                response.data = _mapper.Map <GetCharecterDto>(chars);
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Message = e.Message;
            }
            return(response);
        }
示例#25
0
    HexNode FindClosestTarget(Charecter closesTo)
    {
        Debug.Log("Start finding Target!");
        GameObject[]     found = GameObject.FindGameObjectsWithTag("Monster");
        List <Charecter> list  = new List <Charecter>();

        foreach (GameObject obj in found)
        {
            list.Add(obj.GetComponent <Charecter> ());
        }
        float     lowestDist = 999999f;
        Charecter closest    = null;

        foreach (Charecter charecter in list)
        {
            if (!charecter.isPlayerUnit)
            {
                continue;
            }
            float x       = charecter.posX - closesTo.posX;
            float y       = charecter.posY - closesTo.posY;
            float rawDist = Mathf.Sqrt(x * x + y * y);
            if (lowestDist > rawDist)
            {
                lowestDist = rawDist;
                closest    = charecter;
            }
        }
        if (closest == null)
        {
            //Add AI win logic here
            return(null);
        }
        Debug.Log("Found target: " + closest.name);
        target = closest;
        List <HexNode> resoults = map.GetHexNeighbours(map.hexNodeGrid [closest.posX, closest.posY]);

        if (resoults.Count == 0)
        {
            return(null);
        }
        HexNode result = resoults[0];

        Debug.Log(result.posX);
        return(result);
    }
示例#26
0
	//target is kinda useless????
	public int FindPath(Charecter target = null, bool AI = false)
	{
		if (target) {
			Debug.Log (map.hexNodeGrid);
			sellectedTile = map.hexNodeGrid [target.posX, target.posY];
		}
		HexNode start = map.hexNodeGrid [currentX, currentY];
		HashSet<HexNode> closedSet = new HashSet<HexNode>();
		List<HexNode> openSet = new List<HexNode> ();

		openSet.Add(start);
		while (openSet.Count > 0) {
			HexNode currentSearch = openSet [0];
			for (int i = 1; i < openSet.Count; i++) {
				if(openSet[i].fCost < currentSearch.fCost || openSet[i].fCost == currentSearch.fCost)
				{
					currentSearch = openSet [i];
				}
			}

			closedSet.Add (currentSearch);
			openSet.Remove (currentSearch);

			if (currentSearch == sellectedTile) {
				return RetracePath(start, sellectedTile, AI);
			}

			foreach (HexNode neighbour in map.GetHexNeighbours(currentSearch)) {
				if (!neighbour.passable || closedSet.Contains (neighbour)) {
					continue;
				}
				int newCostToNeighbour = currentSearch.gCost + GetDistance (currentSearch, neighbour);// should be set to static +10;
				if (newCostToNeighbour < neighbour.gCost || !openSet.Contains (neighbour)) {
					neighbour.gCost = newCostToNeighbour;
					neighbour.hCost = GetDistance (neighbour, sellectedTile);
					neighbour.parent = currentSearch;

					if (!openSet.Contains (neighbour))
						openSet.Add (neighbour);
				}
			}
		}
		return 98;
	}
        public async Task <ServiceResponce <GetCharecterDTO> > AddCharecterSkill(AddCharecterSkillDTO newCharecterSkill)
        {
            ServiceResponce <GetCharecterDTO> responce = new ServiceResponce <GetCharecterDTO>();

            try{
                Charecter charecter = await _context.Charecters
                                      .Include(c => c.Weapon)
                                      .Include(c => c.CharecterSkills).ThenInclude(cs => cs.Skill)
                                      .FirstOrDefaultAsync(c => c.Id == newCharecterSkill.CharecterId &&
                                                           c.User.Id == int.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)));

                if (charecter == null)
                {
                    responce.Success = false;
                    responce.Message = "Charecter not found.";
                    return(responce);
                }
                Skill skill = await _context.Skills.FirstOrDefaultAsync(s => s.Id == newCharecterSkill.SkillId);

                if (skill == null)
                {
                    responce.Success = false;
                    responce.Message = "Skill not found.";
                    return(responce);
                }
                CharecterSkill characterSkill = new CharecterSkill()
                {
                    Charecter = charecter,
                    Skill     = skill
                };
                await _context.CharecterSkills.AddAsync(characterSkill);

                await _context.SaveChangesAsync();

                responce.Data = _mapper.Map <GetCharecterDTO>(charecter);
            }
            catch (Exception ex)
            {
                responce.Success = false;
                responce.Message = ex.Message;
            }
            return(responce);
        }
示例#28
0
        public async Task <ServiceResponce <AttackResultDTO> > SkillAttack(SKillAttackDTO request)
        {
            ServiceResponce <AttackResultDTO> responce = new ServiceResponce <AttackResultDTO>();

            try
            {
                Charecter attacker = await _context.Charecters
                                     .Include(c => c.CharecterSkills).ThenInclude(cs => cs.Skill)
                                     .FirstOrDefaultAsync(c => c.Id == request.AttackerId);

                Charecter opponent = await _context.Charecters.FirstOrDefaultAsync(c => c.Id == request.OpponentId);

                CharecterSkill charecterSkill = attacker.CharecterSkills.FirstOrDefault(cs => cs.Skill.Id == request.SkillId);
                if (charecterSkill == null)
                {
                    responce.Success = false;
                    responce.Message = $"{attacker.Name} doesnt know that skill!";
                    return(responce);
                }
                int damage = DoSkillAttack(attacker, opponent, charecterSkill);
                if (opponent.HitPoints <= 0)
                {
                    responce.Message = $"{opponent.Name} has been defeated!";
                }
                _context.Charecters.Update(opponent);
                await _context.SaveChangesAsync();

                responce.Data = new AttackResultDTO
                {
                    Attacker   = attacker.Name,
                    AttackerHp = attacker.HitPoints,
                    Opponent   = opponent.Name,
                    OpponentHp = opponent.HitPoints,
                    Damage     = damage
                };
            }
            catch (Exception ex)
            {
                responce.Success = false;
                responce.Message = ex.Message;
            }
            return(responce);
        }
示例#29
0
        // getting userid from header directly
        public async Task <ServiceResponse <List <GetCharecterDto> > > addNewCharecter(AddCharecterDto objOfClass)
        {
            ServiceResponse <List <GetCharecterDto> > serviceResponse = new ServiceResponse <List <GetCharecterDto> >();

            Charecter chars = _mapper.Map <Charecter>(objOfClass);

            // chars.Id = knights.Max(ob => ob.Id) + 1;  // getting max id and incrementing it using LINQ
            // knights.Add(chars);

            chars.Users = await _contect.Users.FirstOrDefaultAsync(x => x.Id == GetUserID());


            await _contect.charecters.AddAsync(chars);

            await _contect.SaveChangesAsync();

            serviceResponse.data = (_contect.charecters.Where(u => u.Users.Id == GetUserID()).Select(ob => _mapper.Map <GetCharecterDto>(ob))).ToList();   // this select all data and convert to dto object and make it List
            //                                            // this where for getting records based on reference key and Select for mapping records to list
            return(serviceResponse);
        }
示例#30
0
    public override void DoAttacksCheck()
    {
        if (attemptingAttack > 0 && !hasAttackedForTurn)
        {
            pathfinder.ClearLines();
            switch (attemptingAttack)
            {
            case 1:
                pathfinder.SetMoveBorder(1, posX, posY, Color.red);
                Charecter BasicAttackTarget = FindTargetForAttack();
                if (BasicAttackTarget)
                {
                    BasicAttack(BasicAttackTarget);
                }
                break;

            case 2:
                Debug.Log(SkillOneCDLeft);
                if (SkillOneCDLeft > 0)
                {
                    break;
                }
                //maybe bad name :S
                pathfinder.SetMoveBorder(1, posX, posY, Color.red);
                Charecter S2target = FindTargetForAttack();
                if (S2target)
                {
                    SkillOne(S2target);
                }
                break;

            case 3:
                if (SkillTwoCDLeft > 0)
                {
                    break;
                }
                SkillTwo(null);
                break;
            }
        }
    }