Пример #1
0
 public virtual void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target)
 {
     herdSheepList.Remove(Sheep);
     Sheep.Follower = target;
     Sheep.GetSpriteRenderer().color = target.GetOwner().GetSymbolColor();
     target.AddSheepList(Sheep);
 }
Пример #2
0
    private IEnumerator SearchTargetProcess()
    {
        float Angle1;
        float Angle2;

        playerSearchProcessState = PlayerSearchProcessState.Searching;

        if (PSS == PlayerSearchState.SHEEPSEARCH)
        {
            int Mincount = 0;
            //양 추적 매커니즘. 주인 없는 양 중 가까운 양의 획득을 제일 우선시한다.
            if (ManagerHandler.Instance.GameManager().GetCurrentSheepNum() != 0)
            {
                for (int i = 1; i < ManagerHandler.Instance.GameManager().GetCurrentSheepNum(); i++)
                {
                    SheepControlThree checkingSheep = ManagerHandler.Instance.GameManager().GetSheepFromHordeSheepList(i);
                    if (!checkingSheep.gameObject.activeSelf)
                    {
                        continue;
                    }
                    else
                    {
                        Angle1 = Vector3.Angle(this.transform.position, ManagerHandler.Instance.GameManager().GetSheepFromHordeSheepList(Mincount).transform.position);
                        Angle2 = Vector3.Angle(this.transform.position, checkingSheep.transform.position);
                        if (Angle1 <= Angle2)
                        {
                            continue;
                        }
                        else if (Angle2 < Angle1)
                        {
                            Mincount = i;
                        }
                    }
                }
                targetObject = ManagerHandler.Instance.GameManager().GetSheepFromHordeSheepList(Mincount).gameObject;
            }
            else
            {
                targetObject = HQ.gameObject;
            }
        }
        else if (PSS == PlayerSearchState.BACKTOHOME)
        {
            //귀환 매커니즘. 쉽다.
            targetObject = HQ.gameObject;
        }
        else if (PSS == PlayerSearchState.ENEMYSEARCH)
        {
            // 적 추적시 매커니즘.
            // 일단 없애놓고 나중에 추가할까 생각중.
        }

        yield return(null);

        playerSearchProcessState = PlayerSearchProcessState.Ready;
    }
Пример #3
0
    public override void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target)
    {
        base.ChangeMasterToTargetOwner(Sheep, target);
        int index = herdSheepList.IndexOf(Sheep);

        for (int temp = index; temp <= herdSheepList.Count - 1; temp++)
        {
            herdSheepList[temp].Follower = target;
            //ManagerHandler.Instance.GameManager().FindAndRemoveAtSheepList(this.herdSheepList[temp].gameObject);
            target.AddSheepList(this.herdSheepList[temp]);
        }
        herdSheepList.RemoveRange(index, herdSheepList.Count - index);
    }
Пример #4
0
 public virtual IEnumerator MoveAllSheepToTarget(HerdSheepBase target)
 {
     if (herdSheepList.Count > 0)
     {
         for (int i = herdSheepList.Count - 1; i >= 0; i--)
         {
             SheepControlThree Sheep = herdSheepList[i];
             herdSheepList.Remove(Sheep);
             Sheep.Follower = target;
             Sheep.GetSpriteRenderer().color = target.GetOwner().GetSymbolColor();
             target.AddSheepList(Sheep);
             yield return(new WaitForSeconds(0.1f));
         }
     }
 }
Пример #5
0
 public bool IsSheepAlreadyInList(SheepControlThree target)
 {
     return(herdSheepList.Contains(target));
 }
Пример #6
0
 public override void AddSheepList(SheepControlThree Sheep)
 {
     base.AddSheepList(Sheep);
     SetSheepLocalPosition(Sheep.transform, this.SheepArea.transform);
 }
Пример #7
0
 public override void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target)
 {
     base.ChangeMasterToTargetOwner(Sheep, target);
 }
Пример #8
0
 public virtual void AddSheepList(SheepControlThree Sheep)
 {
     // 양을 추가시키고, HerdSheepBase의 Owner의 상징색으로 양의 색깔을 바꾼다.
     this.herdSheepList.Add(Sheep);
     Sheep.GetSpriteRenderer().color = Owner.GetSymbolColor();
 }
Пример #9
0
 public override void AddSheepList(SheepControlThree Sheep)
 {
     base.AddSheepList(Sheep);
 }
Пример #10
0
 public void FromHordeSheepToOwneredSheep(SheepControlThree target)
 {
     hordeSheepList.Remove(target);
     owneredSheepList.Add(target);
     DecreaseCurrentSheepNum();
 }