Пример #1
0
	public void OnUnitLost (GameObject unit) {
		//Debug.Log ("OnFind");
		if (unit.GetBehavior().playerID != behavior.state.playerID) {
			(behavior.motor as CharacterMotor).MoveToPoint(unit.transform.position);
			//Debug.DrawLine(transform.position, unit.transform.position);
		}
	}
        protected override void OnTargetChanged(GameObject oldTarget, GameObject newTarget, InputSource inputSource)
        {
            base.OnTargetChanged(oldTarget, newTarget, inputSource);

            if (oldTarget != null)
            {
                var oldBehavior = oldTarget.GetBehavior <ButtonBehavior>();
                if (oldBehavior != null)
                {
                    var mwUser = oldBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        oldBehavior.Hover.StopAction(mwUser);
                    }
                }
            }


            if (newTarget != null)
            {
                var newBehavior = newTarget.GetBehavior <ButtonBehavior>();
                if (newBehavior != null)
                {
                    var mwUser = newBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        newBehavior.Hover.StartAction(mwUser);
                    }
                }
            }
        }
Пример #3
0
	public void OnUnitFind (GameObject unit) {
		//Debug.Log ("OnFind");
		if (unit.GetBehavior().playerID != behavior.state.playerID) {
			(behavior.motor as CharacterMotor).FollowUnit(unit);
			attack.SetTarget (unit);
		}
	}	
        public void Update(InputSource inputSource, GameObject target)
        {
            if (target == null)
            {
                return;
            }

            if (Input.GetButtonDown("Fire2"))
            {
                var grabBehavior = target.GetBehavior <TargetBehavior>();
                if (grabBehavior != null)
                {
                    var mwUser = grabBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        grabBehavior.Context.StartGrab(mwUser);
                        grabBehavior.IsGrabbed = true;
                    }
                }

                StartGrab(inputSource, target);
                GrabStateChanged?.Invoke(this, new GrabStateChangedArgs(GrabState.Released, GrabState.Grabbed, inputSource));
            }
            else if (Input.GetButtonUp("Fire2"))
            {
                var grabBehavior = target.GetBehavior <TargetBehavior>();
                if (grabBehavior != null)
                {
                    var mwUser = grabBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        grabBehavior.Context.EndGrab(mwUser);
                        grabBehavior.IsGrabbed = false;
                    }
                }

                EndGrab();
                GrabStateChanged?.Invoke(this, new GrabStateChangedArgs(GrabState.Grabbed, GrabState.Released, inputSource));
            }

            if (GrabActive)
            {
                UpdatePosition();
                UpdateRotation();
            }
        }
Пример #5
0
	public void OnColliderUnitEnter (GameObject unit) {
		UnitBehavior behavior = unit.GetBehavior ();
		if (behavior.buffs != null) {
			StunBuff heal = new StunBuff ();
			heal.targetUnit = unit;
			heal.recoveryPerSecond = -10f;
			behavior.buffs.Add (heal);
		}
	}
Пример #6
0
	public void OnUnitNoise (GameObject unit, float f) {
		if (unit.GetBehavior().playerID != behavior.state.playerID) {
			(behavior.motor as CharacterMotor).MoveToPoint(unit.transform.position);
			(behavior.motor as CharacterMotor).FollowUnit(unit);
			attack.SetTarget (unit);
			//Debug.Log(Time.time);
			//MoveToPos (unit.transform.position);
		}
	}
        public void Update(InputSource inputSource, GameObject target)
        {
            if (target == null)
            {
                return;
            }

            if (Input.GetButtonDown("Fire2"))
            {
                var grabBehavior = target.GetBehavior <TargetBehavior>();
                if (grabBehavior != null)
                {
                    var mwUser = grabBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        grabBehavior.Grab.StartAction(mwUser);
                        grabBehavior.IsGrabbed = true;
                    }
                }

                StartGrab(inputSource, target);
            }
            else if (Input.GetButtonUp("Fire2"))
            {
                var grabBehavior = target.GetBehavior <TargetBehavior>();
                if (grabBehavior != null)
                {
                    var mwUser = grabBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        grabBehavior.Grab.StopAction(mwUser);
                        grabBehavior.IsGrabbed = false;
                    }
                }

                EndGrab();
            }

            if (GrabActive)
            {
                UpdatePosition();
                UpdateRotation();
            }
        }
Пример #8
0
	public void OnUnitInSphere (GameObject unit) {
		UnitBehavior otherBehavior = unit.GetBehavior();
		if (!otherBehavior.state.isAlive) return;
		if (otherBehavior.state.playerID != behavior.state.playerID) {
			if (!attack.HasTarget()) {
				//behavior.motor.FollowUnit (unit);
				attack.SetTarget (unit);
			} else {
				//behavior.motor.FollowUnit (attack.target);
			}
		}
	}
Пример #9
0
        protected override void OnTargetChanged(
            GameObject oldTarget,
            Vector3 oldTargetPosition,
            GameObject newTarget,
            Vector3 newTargetPosition,
            TargetBehavior newBehavior,
            InputSource inputSource)
        {
            base.OnTargetChanged(
                oldTarget,
                oldTargetPosition,
                newTarget,
                newTargetPosition,
                newBehavior,
                inputSource);

            if (oldTarget != null)
            {
                var oldBehavior = oldTarget.GetBehavior <ButtonBehavior>();
                if (oldBehavior != null)
                {
                    var mwUser = oldBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        oldBehavior.Context.EndHover(mwUser, oldTargetPosition);
                    }
                }
            }

            if (newTarget != null)
            {
                var newButtonBehavior = newBehavior as ButtonBehavior;
                if (newButtonBehavior != null)
                {
                    var mwUser = newButtonBehavior.GetMWUnityUser(inputSource.UserGameObject);
                    if (mwUser != null)
                    {
                        newButtonBehavior.Context.StartHover(mwUser, newTargetPosition);
                    }
                }
            }
        }
Пример #10
0
	public void OnUnitVisible (GameObject unit) {
		if (unit.GetBehavior().playerID != behavior.state.playerID) {
			(behavior.motor as CharacterMotor).MoveToPoint(unit.transform.position);
		}
	}