public virtual void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target) { herdSheepList.Remove(Sheep); Sheep.Follower = target; Sheep.GetSpriteRenderer().color = target.GetOwner().GetSymbolColor(); target.AddSheepList(Sheep); }
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; }
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); }
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)); } } }
public bool IsSheepAlreadyInList(SheepControlThree target) { return(herdSheepList.Contains(target)); }
public override void AddSheepList(SheepControlThree Sheep) { base.AddSheepList(Sheep); SetSheepLocalPosition(Sheep.transform, this.SheepArea.transform); }
public override void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target) { base.ChangeMasterToTargetOwner(Sheep, target); }
public virtual void AddSheepList(SheepControlThree Sheep) { // 양을 추가시키고, HerdSheepBase의 Owner의 상징색으로 양의 색깔을 바꾼다. this.herdSheepList.Add(Sheep); Sheep.GetSpriteRenderer().color = Owner.GetSymbolColor(); }
public override void AddSheepList(SheepControlThree Sheep) { base.AddSheepList(Sheep); }
public void FromHordeSheepToOwneredSheep(SheepControlThree target) { hordeSheepList.Remove(target); owneredSheepList.Add(target); DecreaseCurrentSheepNum(); }