public virtual void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target) { herdSheepList.Remove(Sheep); Sheep.Follower = target; Sheep.GetSpriteRenderer().color = target.GetOwner().GetSymbolColor(); target.AddSheepList(Sheep); }
private void CheckSheepFollower(HerdSheepBase target) //부딪힌 오브젝트에 HerdSheepBase가 존재할시 행동. { //양에 주인이 없을 경우. if (SS.Equals(SheepState.NOOWNER)) { this.follower = target; SS = SheepState.HAVEOWNER; target.AddSheepList(this); ManagerHandler.Instance.GameManager().FromHordeSheepToOwneredSheep(this); } //양에게 주인이 있을경우 능동성 및 마스터 여부를 따져서 행동한다. else if (SS.Equals(SheepState.HAVEOWNER)) { // Equals는 대상의 내용, ==는 대상의 주소를 비교한다. if (target.GetOwner() == this.follower.GetOwner()) { //주인이 같은경우 행동하지 않는다. return; } else { if (!target.isTakeOverPermit()) { //주인이 다르나 탈취 권한이 없을경우 역시 행동하지 않는다. } else { //주인도 다르고 탈취 권환도 있을경우 행동. this.follower.ChangeMasterToTargetOwner(this, target); } } } }
private void OnTriggerEnter(Collider col) //부딪힌 오브젝트에 HerdSheepBase가 존재하는지 확인. { HerdSheepBase target = col.GetComponent <HerdSheepBase>(); if (target != null) { CheckSheepFollower(target); } }
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 override void ChangeMasterToTargetOwner(SheepControlThree Sheep, HerdSheepBase target) { base.ChangeMasterToTargetOwner(Sheep, target); }