Example #1
0
 void Hitting(Player_InHouse target)
 {
     _Hitting = true;
     _MySprite.SetAnimation("hit", "run", false);
     StartCoroutine(StopHitting(0.5f));
     StartCoroutine(HitCharacter(0.25f, target));
 }
Example #2
0
    void Update()
    {
        _MakeDelayTime -= Time.smoothDeltaTime;
        if (_MakeDelayTime <= 0.0f)
        {
            if (_CCTVView._Find)
            {
                _LockedPlayer = _CCTVView._VisibleTargets[0];

                GameObject obj = NGUITools.AddChild(transform.parent.gameObject, PlayerMng.Data._CCTVDangerEffect);
                obj.transform.localPosition = gameObject.transform.localPosition + new Vector3(0, 100, 0);
                _MakeDelayTime = _Delay;
                StartCoroutine(MakeGuard(1.0f));
                StartCoroutine(SearchStart(5.0f));
            }
        }
    }
Example #3
0
    IEnumerator MakeGuard(float time)
    {
        yield return(new WaitForSeconds(time));

        //float angle = (transform.localEulerAngles.z)*Mathf.Deg2Rad;
        //Vector3 plus = new Vector3(Mathf.Cos(angle)*_MakeGuardPos.transform.localPosition.x*2, Mathf.Sin(angle)*_MakeGuardPos.transform.localPosition.y*2,0);

        GameObject guard  = NGUITools.AddChild(PlayerMng.Data._UIRoot.transform.parent.gameObject, PlayerMng.Data._SequrityGuard);
        Vector3    pos    = transform.localPosition;
        float      angle1 = Mathf.Atan2(_LockedPlayer.transform.parent.localPosition.y - pos.y, _LockedPlayer.transform.parent.localPosition.x - pos.x);

        angle1 *= Mathf.Rad2Deg;
        guard.transform.localEulerAngles = new Vector3(0, 0, angle1 - 90);
        guard.transform.localPosition    = _MakeGuardPos.transform.localPosition;
        PlayerMng.Data._GameScore       -= 500;
        _LockedPlayer = null;
        guard.GetComponent <SequrityGuard>().CCTVCalled();
        guard.GetComponent <SequrityGuard>().Init();

        //guard.transform.localEulerAngles = transform.localEulerAngles + new Vector3(0, 0, 90);
    }
Example #4
0
    void Update()
    {
        if (!_OneUse)
        {
            if (_HaveSleepBullet)
            {
                _SleepBulletHaveIcon.transform.localPosition = transform.localPosition + new Vector3(0, 100, 0);
            }
            else
            {
                _SleepBulletHaveIcon.SetActive(false);
            }
        }

        if (_AlphaDown)
        {
            _MySprite._MySprite.alpha -= Time.smoothDeltaTime / 2;

            _Circle.SetActive(false);
            if (_MySprite._MySprite.alpha <= 0)
            {
                if (_OneUse)
                {
                    Destroy(gameObject);
                }
                else
                {
                    transform.localPosition = _RouteList[0];
                    _NowListPosNumber       = 1;
                    _NowDestinationPos      = _RouteList[1];
                    _MoveSpeed = 150;
                }
                _ViewObject.SetActive(true);
                _AlphaDown = false;
                _MySprite._MySprite.alpha = 1;
            }
        }
        else if (_Sleep)
        {
            _Circle.SetActive(false);
        }
        else
        {
            _ViewObject.SetActive(true);
            _Circle.SetActive(true);
            //_ViewMng._VisibleTargets.Clear();
            for (int i = 0; i < 4; i++)
            {
                if (Vector3.Distance(transform.localPosition, PlayerMng.Data._PlayerArray[i].transform.parent.localPosition) < 150)
                {
                    bool check = false;
                    for (int j = 0; j < _ViewMng._VisibleTargets.Count; j++)
                    {
                        if (_ViewMng._VisibleTargets[j]._PlayerNumber == PlayerMng.Data._PlayerArray[i]._PlayerNumber)
                        {
                            check = true;
                        }
                    }
                    if (!check && !PlayerMng.Data._PlayerArray[i]._Escaper_Camouflage)
                    {
                        _ViewMng._VisibleTargets.Add(PlayerMng.Data._PlayerArray[i]);
                    }
                }
            }


            if (_ViewMng._VisibleTargets.Count != 0)
            {
                if (!_FindTheif)
                {
                    GameObject obj = NGUITools.AddChild(transform.parent.gameObject, PlayerMng.Data._CCTVDangerEffect);
                    obj.transform.localPosition = transform.localPosition;
                    _FindTheif = true;
                    _MoveSpeed = 225;
                    _MySprite.SetAnimation("run", true);
                }
                for (int i = 0; i < _ViewMng._VisibleTargets.Count; i++)
                {
                    if (Vector3.Distance(transform.localPosition, _ViewMng._VisibleTargets[i].transform.parent.localPosition) < 140 && !_Hitting)
                    {
                        Hitting(_ViewMng._VisibleTargets[i]);
                    }
                }
            }
            else
            {
                if (_OneUse)
                {
                    _MissingTime_One -= Time.smoothDeltaTime;
                    if (_MissingTime_One <= 0.0f)
                    {
                        StartCoroutine(SetMissOne(0.0f));
                    }
                }


                if (_FindTheif)
                {
                    if (_OneUse && _SearchingStart)
                    {
                        StartCoroutine(SetMissOne(0.0f));
                    }
                    else if (!_OneUse)
                    {
                        Vector3 pos     = _RouteList[_NowListPosNumber];
                        int     listnum = _NowListPosNumber;
                        //for (int i = 0; i < _RouteList.Count; i++)
                        //{
                        //    if (Vector3.Distance(transform.localPosition, pos) > Vector3.Distance(transform.localPosition, _RouteList[i]))
                        //    {
                        //        pos = _RouteList[i];
                        //        listnum = i;
                        //    }
                        //}

                        //_NowListPosNumber = listnum;
                        //_NowDestinationPos = _RouteList[_NowListPosNumber];

                        StartCoroutine(SetMiss(1.0f));

                        _MoveSpeed = 0;
                        _Miss      = true;
                        _MySprite.SetAnimation("walk", true);
                    }
                }
                else
                {
                    _MoveSpeed = 150;
                }
                _FindTheif = false;
            }

            if (_FindTheif)
            {
                Player_InHouse nowlockplayer = _ViewMng._VisibleTargets[0];
                for (int i = 1; i < _ViewMng._VisibleTargets.Count; i++)
                {
                    if (Vector3.Distance(transform.localPosition, _ViewMng._VisibleTargets[i].transform.localPosition) < Vector3.Distance(transform.localPosition, nowlockplayer.transform.localPosition))
                    {
                        nowlockplayer = _ViewMng._VisibleTargets[i];
                    }
                }
                _NowDestinationPos = nowlockplayer.transform.parent.localPosition;

                if (!_Hitting)
                {
                    transform.localPosition = Vector3.MoveTowards(transform.localPosition, _NowDestinationPos, Time.smoothDeltaTime * _MoveSpeed);
                }
                float angle = Mathf.Atan2(transform.localPosition.y - _NowDestinationPos.y, transform.localPosition.x - _NowDestinationPos.x) * Mathf.Rad2Deg;
                transform.localEulerAngles = new Vector3(0, 0, angle + 90);
            }
            else if (!_Miss)
            {
                if (!_OneUse)
                {
                    if (!_Turning)
                    {
                        if (!_Hitting)
                        {
                            transform.localPosition = Vector3.MoveTowards(transform.localPosition, _NowDestinationPos, Time.smoothDeltaTime * _MoveSpeed);
                        }


                        if (Vector3.Distance(transform.localPosition, _NowDestinationPos) < _CorrectionDistance)
                        {
                            transform.localPosition = _NowDestinationPos;

                            ChangeTargetPos();

                            float turnangle = Mathf.Atan2(transform.localPosition.y - _NowDestinationPos.y, transform.localPosition.x - _NowDestinationPos.x) * Mathf.Rad2Deg;
                            _DestinationAngle = new Vector3(0, 0, turnangle + 90);

                            float oneangle = transform.localEulerAngles.z + 90;
                            if (oneangle < 0)
                            {
                                oneangle = oneangle + 360;
                            }
                            float twoangle = turnangle;
                            if (twoangle < 0)
                            {
                                twoangle = twoangle + 360;
                            }


                            if (oneangle >= 360)
                            {
                                oneangle = 0;
                            }

                            _PlusAngle = oneangle - twoangle;

                            if (Mathf.Abs(_PlusAngle) > 180.0f)
                            {
                                if (_PlusAngle > 0)
                                {
                                    _PlusAngle -= 360;
                                }
                                else
                                {
                                    _PlusAngle += 360;
                                }
                            }
                            if (Mathf.Abs(_PlusAngle) < 7)
                            {
                                _PlusAngle = -180;
                            }

                            //Debug.Log(oneangle.ToString() + "    " + twoangle.ToString());

                            _Turning = true;
                            //StartCoroutine(SetPatroling(2.0f));
                        }

                        float angle = Mathf.Atan2(transform.localPosition.y - _NowDestinationPos.y, transform.localPosition.x - _NowDestinationPos.x) * Mathf.Rad2Deg;

                        if (!_Turning)
                        {
                            transform.localEulerAngles = new Vector3(0, 0, angle + 90);
                        }
                    }
                    else
                    {
                        transform.localEulerAngles += new Vector3(0, 0, _PlusAngle * Time.smoothDeltaTime);
                        float myangle  = transform.localEulerAngles.z;
                        float desangle = _DestinationAngle.z;
                        if (myangle < 0)
                        {
                            myangle += 360;
                        }
                        if (desangle < 0)
                        {
                            desangle += 360;
                        }
                        if (Mathf.Abs(desangle - myangle) < 8.0f)
                        {
                            transform.localEulerAngles = _DestinationAngle;
                            _Turning = false;
                        }
                    }
                }
            }
            _ViewObject.transform.localEulerAngles = new Vector3(0, -transform.localEulerAngles.z, 0);
        }
    }
Example #5
0
    IEnumerator HitCharacter(float time, Player_InHouse target)
    {
        yield return(new WaitForSeconds(time));

        target.HitGuard();
    }