public void SetPlayerMvSpeed(float val)
    {
        if (AudioSourceShipMove == null)
        {
            CreateAudioSourceShipMove();
        }

        if (!StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
        {
            val = 0f;
        }
        PlayerMvSpeed = val;

        //CameraShake.GetInstance().SetPlayerSpeedRadialBlur(val);
        if (val > 1f)
        {
            if (!AudioSourceShipMove.isPlaying)
            {
                AudioSourceShipMove.Play();
            }
            else
            {
                AudioSourceShipMove.volume = val / 80f;
            }
        }
        else
        {
            AudioSourceShipMove.Stop();
        }

        if (val <= 5 && WaterParticle.activeSelf)
        {
            CloseWaterParticle();
        }
    }
    void ClickFireBtEvent(ButtonState state)
    {
        if (this == null)
        {
            InputEventCtrl.GetInstance().ClickFireBtEvent -= ClickFireBtEvent;
            //Debug.LogWarning("ClickFireBtEvent -> PlayerAutoFire is null");
            return;
        }

        if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
        {
            WaterwheelPlayerNetCtrl netPlayerScript = GetComponent <WaterwheelPlayerNetCtrl>();
            if (netPlayerScript != null && !netPlayerScript.GetIsHandlePlayer())
            {
                this.enabled = false;
                InputEventCtrl.GetInstance().ClickFireBtEvent -= ClickFireBtEvent;
                return;
            }
        }
        GlobalData.GetInstance().PlayerAmmoFrequency = frequency;

        if (state == ButtonState.DOWN && StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
        {
            Spawner.HiddenCacheObj(bulletPrefab);
            OnStartFire();
        }
        else
        {
            OnStopFire();
        }
    }
Пример #3
0
    // Update is called once per frame
    void Update()
    {
        if (GlobalData.GetInstance().IsFreeMode)
        {
            return;
        }

        if (needCoin != GlobalData.GetInstance().XUTOUBI)
        {
            needCoin = GlobalData.GetInstance().XUTOUBI;
            ConvertNumToImg("xu", GlobalData.GetInstance().XUTOUBI);
        }

        if (pcvr.bIsHardWare)
        {
            if (GlobalData.GetInstance().Icoin != pcvr.GetInstance().CoinNumCurrent)
            {
                if (GlobalData.GetInstance().Icoin < pcvr.GetInstance().CoinNumCurrent)
                {
                    PlayHitCoinBtAudio();
                }
                GlobalData.GetInstance().Icoin = pcvr.GetInstance().CoinNumCurrent;
                ConvertNumToImg("yi", GlobalData.GetInstance().Icoin);
            }

            if (GlobalData.GetInstance().Icoin != CoinCur)
            {
                CoinCur = GlobalData.GetInstance().Icoin;
                ConvertNumToImg("yi", GlobalData.GetInstance().Icoin);
            }
        }
        else
        {
            if (Input.GetKeyUp(KeyCode.T))
            {
                PlayHitCoinBtAudio();
                GlobalData.GetInstance().Icoin++;
                ConvertNumToImg("yi", GlobalData.GetInstance().Icoin);
            }

            if (GlobalData.GetInstance().Icoin != CoinCur)
            {
                CoinCur = GlobalData.GetInstance().Icoin;
                ConvertNumToImg("yi", GlobalData.GetInstance().Icoin);
            }
        }

        if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI &&
            GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            if (GameOverCtrl.GetInstance().CheckIsActiveOver())
            {
                if (InsertCoinCtrl.GetInstanceP1().CheckIsActiveObj())
                {
                    InsertCoinCtrl.GetInstanceP1().HiddenInsertCoin();
                    StartBtCtrl.GetInstanceP1().InitStartBtCartoon();
                }
            }
        }
    }
Пример #4
0
    public void ConvertNumToImg(string mod, int num)
    {
        if (mod == "yi")
        {
            if (num > 99)
            {
                yi_shiwei.spriteName = "9";
                yi_gewei.spriteName  = "9";
            }
            else
            {
                int coinShiWei = (int)((float)num / 10.0f);
                yi_shiwei.spriteName = coinShiWei.ToString();
                yi_gewei.spriteName  = (num % 10).ToString();
            }

            if (num >= GlobalData.GetInstance().XUTOUBI)
            {
                if ((StartBtCtrl.GetInstanceP2() != null && !StartBtCtrl.GetInstanceP2().CheckIsActivePlayer()) &&
                    (GameOverCtrl.GetInstance() != null && !GameOverCtrl.GetInstance().CheckIsActiveOver()) &&
                    (FinishPanelCtrl.GetInstance() != null && !FinishPanelCtrl.GetInstance().CheckIsActiveFinish()))
                {
                    InsertCoinCtrl.GetInstanceP2().HiddenInsertCoin();
                    StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
                }
            }
        }
        else if (mod == "xu")
        {
            xu_shiwei.spriteName = (num / 10).ToString();
            xu_gewei.spriteName  = (num % 10).ToString();
        }
    }
    public void ShootedByPlayer(int key)
    {
        if (IsDeadNpc)
        {
            return;
        }

        if (IsFireNpc)
        {
            WaterwheelPlayerCtrl.GetInstance().AddKillFireNpcNum();
        }

        if (key == 0 || (key == 1 && !StartBtCtrl.GetInstanceP2().CheckIsActivePlayer()))
        {
            //XingXingCtrl.GetInstance().AddStarNum();
            WaterwheelCameraCtrl.GetInstance().SpawnPlayerNengLiangLiZi(ZaiTiNpcTran.position);
        }

        NpcMoveCtrl npcScript = ChuanTran.GetComponent <NpcMoveCtrl>();

        npcScript.OnZaiTiNpcDead();

        /*if (AudioHitNpc != null) {
         *      AudioListCtrl.PlayAudio(AudioHitNpc);
         * }*/
        PlayNpcAudio(AudioHitNpcObj);

        OnHitWaterwheelPlayer();
        IsDeadNpc = true;
    }
    public void ActivePlayerOne()
    {
        if (IsActivePlayer)
        {
            return;
        }

        if (DaoJiShiCtrl.TimeVal <= 1)
        {
            return;
        }

        if (FinishPanelCtrl.GetInstance().CheckIsActiveFinish())
        {
            return;
        }

        bool isEnablePlayer = false;

        PlayHitStartBtAudio();
        if (!GlobalData.GetInstance().IsFreeMode)
        {
            if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI)
            {
                StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
            }
            else
            {
                InsertCoinCtrl.GetInstanceP2().ShowInsertCoin();
            }
            HeadCtrlPlayer.GetInstanceP1().StopColor();
            isEnablePlayer = true;
        }
        else
        {
            HeadCtrlPlayer.GetInstanceP1().StopColor();
            HeadCtrlPlayer.GetInstanceP2().PlayColor();
            StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
            isEnablePlayer = true;
        }

        if (isEnablePlayer)
        {
            IsActivePlayer = true;
            CloseStartBtCartoon();
            if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
            {
                ActiveDaJuCtrl.GetInstanceP1().ActivePlayerBlood(true);
                DaoJiShiCtrl.GetInstance().StopDaoJiShi();
                GameOverCtrl.GetInstance().HiddenContinueGame();
                GameTimeCtrl.GetInstance().InitPlayGameTime(1);
                //GameCtrlXK.GetInstance().InitFillPlayerBlood();
            }
        }
    }
Пример #7
0
    public void SetPlayerMvSpeedSpriteInfo(float val)
    {
        if (StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
        {
            ActiveDaJuCtrl.GetInstanceP1().SetPlayerMvSpeedSpriteInfo(val);
        }

        if (StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
        {
            ActiveDaJuCtrl.GetInstanceP2().SetPlayerMvSpeedSpriteInfo(val);
        }
    }
    void ActiveXieTongMode()
    {
        if (!StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
        {
            return;
        }

        if (IsActiveXieTong)
        {
            return;
        }
        IsActiveXieTong = true;
        XieTongInfoCtrl.GetInstance().ShowXieTongInfo();
    }
    void MakePlayerBackToPath()
    {
        HiddenDirWrong();
        if (!StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
        {
            return;
        }

        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            WaterwheelPlayerCtrl.GetInstance().ResetPlayerPos();             //Reset Player pos
        }
        else
        {
            WaterwheelPlayerNetCtrl.GetInstance().ResetPlayerPos();             //Reset Player pos
        }
    }
    public void ShowContinueGame()
    {
        if (gameObject.activeSelf)
        {
            return;
        }
        gameObject.SetActive(true);
        OverSprite.enabled = true;

        HeadCtrlPlayer.GetInstanceP1().SetHeadColor();
        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            if (!GlobalData.GetInstance().IsFreeMode)
            {
                if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI)
                {
                    StartBtCtrl.GetInstanceP1().InitStartBtCartoon();
                    StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
                }
                else
                {
                    InsertCoinCtrl.GetInstanceP1().ShowInsertCoin();
                    InsertCoinCtrl.GetInstanceP2().HiddenInsertCoin();
                }
            }
            else
            {
                StartBtCtrl.GetInstanceP1().InitStartBtCartoon();
                StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
            }
        }
        else
        {
            EventDelegate.Add(OverTScl.onFinished, delegate {
                Invoke("InitPlayHiddenOver", 2.0f);
            });
            OverTScl.ResetToBeginning();
            OverTScl.enabled = true;
            OverTScl.PlayForward();
            GameTimeCtrl.GetInstance().PlayShowGameOverAudio();
            StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
        }
        HeadCtrlPlayer.GetInstanceP2().SetHeadColor();
    }
    void Update()
    {
        if (IsTestShootCartoon)
        {
            return;
        }

        checkPlayerMoveDir();
        if (!StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
        {
            if (mGameTime != 0)
            {
                mGameTime = 0;
                CloseHuanYingFuState();
                PlayerAutoFire.HandlePlayerCloseHuanYingFu();
            }
            return;
        }

        if (mGameTime == 0)
        {
            mGameTime = 100;
        }

        if (Time.timeScale != 1f)
        {
            CheckWaterwheelPlayerSpeed();

            GetInput();

            CalculateEnginePower();

            ApplyThrottle();
        }

        if (AutoFireScript.CheckIsBackPlayerOutWater())
        {
            //Debug.Log("ResetPlayerPos*************");
            ResetPlayerPos();
        }
    }
    // Use this for initialization
    void Awake()
    {
        switch (BtState)
        {
        case PlayerBtState.PLAYER_1:
            _InstanceP1    = this;
            IsActivePlayer = true;
            //ActiveDaJuCtrl.GetInstanceP1().ActivePlayerBlood(true);
            InputEventCtrl.GetInstance().ClickStartBtOneEvent += clickStartBtOneEvent;
            break;

        case PlayerBtState.PLAYER_2:
            _InstanceP2    = this;
            IsActivePlayer = false;
            //ActiveDaJuCtrl.GetInstanceP2().ActivePlayerBlood(false);
            InputEventCtrl.GetInstance().ClickStartBtTwoEvent += clickStartBtTwoEvent;
            break;
        }

        BtSprite = GetComponent <UISprite>();
    }
Пример #13
0
    // Update is called once per frame
    void Update()
    {
        /*if (Input.GetKeyUp(KeyCode.P)) {
         *      AddGameTimeCtrl.GetInstance().PlayAddGameTime(AddTimeVal);
         * }*/

        if (GameCtrlXK.PlayerTran == null)
        {
            GameCtrlXK.GetInstance().FindPlayerTran();
            return;
        }

        if (Time.realtimeSinceStartup - TimeVal < 0.1f)
        {
            return;
        }
        TimeVal = Time.realtimeSinceStartup;

        Vector3 vecA = TriggerTran.position;
        Vector3 vecB = GameCtrlXK.PlayerTran.position;

        vecA.y = vecB.y = 0f;
        float dis = Vector3.Distance(vecA, vecB);

        if (dis <= 15f)
        {
            vecA   = TriggerTran.forward;
            vecB   = TriggerTran.position - GameCtrlXK.PlayerTran.position;
            vecA.y = vecB.y = 0f;
            float cosAB = Vector3.Dot(vecA, vecB);
            if (cosAB <= 0f)
            {
                gameObject.SetActive(false);
                StartBtCtrl.GetInstanceP1().ActivePlayerOne();
                GameDaoJiShiCtrl.GetInstance().StopDaoJiShi();
                AddGameTimeCtrl.GetInstance().PlayAddGameTime(AddTimeVal);
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioTimeJiaShiDian);
            }
        }
    }
Пример #14
0
    // Update is called once per frame

    /*void Update()
     * {
     *      if (Input.GetKeyUp(KeyCode.Keypad1)) {
     *              SpawnHitDaoJuSprite(DaoJuTypeIndex.huanWeiFu);
     *      }
     *
     *      if (Input.GetKeyUp(KeyCode.Keypad2)) {
     *              SpawnHitDaoJuSprite(DaoJuTypeIndex.huanYingFu);
     *      }
     *
     *      if (Input.GetKeyUp(KeyCode.Keypad3)) {
     *              SpawnHitDaoJuSprite(DaoJuTypeIndex.juLiFu);
     *      }
     *
     *      if (Input.GetKeyUp(KeyCode.Keypad4)) {
     *              SpawnHitDaoJuSprite(DaoJuTypeIndex.dianDaoFu);
     *      }
     *
     *      if (Input.GetKeyUp(KeyCode.Keypad5)) {
     *              SpawnHitDaoJuSprite(DaoJuTypeIndex.dingShenFu);
     *      }
     * }*/

    public void SpawnHitDaoJuSprite(DaoJuTypeIndex val)
    {
        if (!StartBtCtrl.GetInstanceP1().CheckIsActivePlayer() &&
            !StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
        {
            return;
        }

        string spriteNameVal = "x" + (int)val;

        if (StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
        {
            GameObject    objP1      = null;
            TweenPosition tweenPosP1 = null;
            objP1 = (GameObject)Instantiate(HitDaoJuCtrl_1);
            objP1.GetComponent <UISprite>().spriteName = spriteNameVal;

            tweenPosP1 = objP1.GetComponent <TweenPosition>();
            EventDelegate.Add(tweenPosP1.onFinished, delegate {
                ActivePlayerDaoJu(objP1, val, 1);
            });
            objP1.transform.parent = transform;
            objP1.SetActive(true);
        }

        if (StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
        {
            GameObject    objP2      = null;
            TweenPosition tweenPosP2 = null;
            objP2 = (GameObject)Instantiate(HitDaoJuCtrl_2);
            objP2.GetComponent <UISprite>().spriteName = spriteNameVal;

            tweenPosP2 = objP2.GetComponent <TweenPosition>();
            EventDelegate.Add(tweenPosP2.onFinished, delegate {
                ActivePlayerDaoJu(objP2, val, 2);
            });
            objP2.transform.parent = transform;
            objP2.SetActive(true);
        }
    }
    public void StopRunGameTime()
    {
        if (!IsInitPlayTime)
        {
            return;
        }

        GameDaoJiShiCtrl.GetInstance().StopDaoJiShi();
        InsertCoinCtrl.GetInstanceP2().HiddenInsertCoin();
        StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
        HeadCtrlPlayer.GetInstanceP1().SetHeadColor();
        HeadCtrlPlayer.GetInstanceP2().SetHeadColor();

        ResetTimeHMvalToImg();
        StopCoroutine(SetTimeHMvalToImg());
        StopCoroutine(PlayGameTime());
        IsInitPlayTime = false;
        gameObject.SetActive(false);

        StartBtCtrl.GetInstanceP1().ResetIsActivePlayer();
        StartBtCtrl.GetInstanceP2().ResetIsActivePlayer();
    }
Пример #16
0
    void ActivePlayerDaoJu(GameObject spriteObj, DaoJuTypeIndex val, int key)
    {
        if (key == 1)
        {
            if (StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
            {
                ActiveDaJuCtrl.GetInstanceP1().ActiveDaoJuType((int)val);
                HeadCtrlPlayer.GetInstanceP1().InitChangeHeadUI();
            }
        }
        else if (key == 2)
        {
            if (StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
            {
                ActiveDaJuCtrl.GetInstanceP2().ActiveDaoJuType((int)val);
                HeadCtrlPlayer.GetInstanceP2().InitChangeHeadUI();
            }
        }

        //Debug.Log("ActivePlayerDaoJu -> key = " + key);
        Destroy(spriteObj);
    }
    IEnumerator PlayDaoJiShi()
    {
        if (TimeVal < 1)
        {
            StopDaoJiShi();

            StartBtCtrl.GetInstanceP1().CloseStartBtCartoon();             //close player startBt cartoon
            if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
            {
                GameOverCtrl.GetInstance().HiddenContinueGame();
                GameOverCtrl.GetInstance().ShowGameOverImg();
                //FinishPanelCtrl.GetInstance().ShowFinishPanel(); //Show Finish Panel
            }
            else
            {
                IsStopCheckAddSpeed           = true;
                GameCtrlXK.IsStopMoveAiPlayer = true;
                WaterwheelPlayerNetCtrl.GetInstance().ResetPlayerInfo();
                if (WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo() == 1)
                {
                    FinishPanelCtrl.GetInstance().ShowFinishPanel();
                }
                else
                {
                    //show finishPanelPlayer
                    FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel();
                }
            }
            yield break;
        }
        AudioManager.Instance.PlaySFX(AudioListCtrl.GetInstance().AudioGameDaoJiShi);
        DaoJiShiSprite.spriteName = DaoJiShiName + TimeVal.ToString();
        yield return(new WaitForSeconds(1f));

        TimeVal--;
        yield return(StartCoroutine("PlayDaoJiShi"));
    }
    IEnumerator PlayGameTime()
    {
        if (FinishPanelCtrl.GetInstance() != null && FinishPanelCtrl.GetInstance().CheckIsActiveFinish())
        {
            StopRunGameTime();
            yield break;
        }

        if (Time.timeScale != 1f)
        {
            yield return(new WaitForSeconds(1.0f));

            yield return(StartCoroutine(PlayGameTime()));
        }

        SetTimeValToImg();

        if (GameTimeValCur <= 0 && !AddGameTimeCtrl.GetInstance().GetIsActiveAddTime())
        {
            InsertCoinCtrl.GetInstanceP2().HiddenInsertCoin();
            StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
            HeadCtrlPlayer.GetInstanceP1().SetHeadColor();
            HeadCtrlPlayer.GetInstanceP2().SetHeadColor();

            ResetTimeHMvalToImg();
            StopCoroutine(SetTimeHMvalToImg());
            StopCoroutine(PlayGameTime());
            IsInitPlayTime = false;
            StartBtCtrl.GetInstanceP1().ResetIsActivePlayer();
            StartBtCtrl.GetInstanceP2().ResetIsActivePlayer();

            if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
            {
                gameObject.SetActive(false);
                RankingCtrl.GetInstance().StopCheckPlayerRank();

                //FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel();

                if (WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo() == 1)
                {
                    FinishPanelCtrl.GetInstance().ShowFinishPanel();
                }
                else
                {
                    FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel();
                }
            }
            else
            {
                GameOverCtrl.GetInstance().ShowContinueGame();
                DaoJiShiCtrl.GetInstance().InitPlayDaoJiShi();
            }
            yield break;
        }
        yield return(new WaitForSeconds(1.0f));

        if (GameTimeValCur <= 10 && GameTimeValCur >= 1 && !TimeTTran.enabled)
        {
            TimeTTran.ResetToBeginning();
            TimeTTran.enabled = true;
            TimeTTran.PlayForward();
            if (GameTimeValCur == 10)
            {
                GameDaoJiShiCtrl.GetInstance().StartPlayDaoJiShi();
                CreateAudioSourceTime();
                AudioSourceTime.Play();
            }
        }

        if (!AddGameTimeCtrl.GetInstance().GetIsActiveAddTime())
        {
            GameTimeValCur--;
        }

        if (GameTimeValCur <= 0 && TimeTTran.enabled)
        {
            TimeTTran.enabled = false;
            if (AudioSourceTime != null && AudioSourceTime.isPlaying)
            {
                AudioSourceTime.Stop();
            }
        }
        yield return(StartCoroutine(PlayGameTime()));
    }
    void Update()
    {
        if (WaterwheelPlayerCtrl.IsTestShootCartoon)
        {
            return;
        }
        CheckPlayerForwardHit();
        CheckPlayerForwardVal();
        AddPlayerMoveSpeed();
        if (firing)
        {
            if (!StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
            {
                OnStopFire();
                return;
            }

            if (Time.time > lastFireTime + 1 / frequency)
            {
                if (Network.peerType != NetworkPeerType.Disconnected)
                {
                    int   PosX_1  = (int)(608f * (1f - CenterPerPx));
                    int   PosX_2  = (int)(608f * (1f + CenterPerPx));
                    float crossPx = pcvr.CrossPosition.x;
                    if (crossPx < PosX_1)
                    {
                        if (!FireLeft)
                        {
                            FireLeft  = true;
                            FireRight = false;
                            NetView.RPC("SendUpdateZhuJiaoNvFireAction", RPCMode.OthersBuffered, pcvr.CrossPosition.x);
                        }
                    }
                    else if (crossPx > PosX_2)
                    {
                        if (!FireRight)
                        {
                            FireLeft  = false;
                            FireRight = true;
                            NetView.RPC("SendUpdateZhuJiaoNvFireAction", RPCMode.OthersBuffered, pcvr.CrossPosition.x);
                        }
                    }
                    else
                    {
                        if (FireRight || FireLeft)
                        {
                            FireLeft  = false;
                            FireRight = false;
                            NetView.RPC("SendUpdateZhuJiaoNvFireAction", RPCMode.OthersBuffered, pcvr.CrossPosition.x);
                        }
                    }
                }

                // Spawn visual bullet
                Vector3 mousePosInput = Input.mousePosition;
                if (pcvr.bIsHardWare)
                {
                    mousePosInput = pcvr.CrossPosition;
                }

                Vector3    mousePos     = mousePosInput + Vector3.forward * 30f;
                Vector3    posTmp       = Camera.main.ScreenToWorldPoint(mousePos);
                Vector3    AmmoSpawnPos = spawnPoint.position;
                Vector3    AmmoForward  = Vector3.Normalize(posTmp - AmmoSpawnPos);
                Ray        ray          = Camera.main.ScreenPointToRay(mousePosInput);
                RaycastHit hit;
                if (Physics.Raycast(ray, out hit, 500.0f, TerrainLayer.value))
                {
                    AmmoForward = Vector3.Normalize(hit.point - AmmoSpawnPos);
                }

                Vector3    forwardVal = AmmoForward;
                GameObject go         = null;
                if (GlobalData.GetInstance().IsActiveJuLiFu)
                {
                    go = (GameObject)Spawner.Spawn(bulletPrefab, AmmoSpawnPos, forwardVal);
                    pcvr.ShuiBengState = PcvrShuiBengState.Level_1;
                }
                else
                {
                    go = (GameObject)Spawner.Spawn(bulletPrefab, AmmoSpawnPos, forwardVal);
                    pcvr.ShuiBengState = PcvrShuiBengState.Level_1;
                }
                PlayerSimpleBullet bullet = go.GetComponent <PlayerSimpleBullet> ();
                bullet.SetIsHandleBullet();
                lastFireTime = Time.time;

                // Find the object hit by the raycast
                RaycastHit hitInfo = GetHitInfo(AmmoSpawnPos, forwardVal);
                if (hitInfo.transform != null)
                {
                    // Get the health component of the target if any
                    NpcHealthCtrl targetHealth = hitInfo.transform.GetComponent <NpcHealthCtrl>();
                    if (hitInfo.distance < 500f)
                    {
                        if (targetHealth)
                        {
                            // Apply damage
                            if (!GlobalData.GetInstance().IsActiveJuLiFu)
                            {
                                targetHealth.OnDamage(2f / frequency);
                            }
                            else
                            {
                                targetHealth.OnDamage(1f / frequency);
                            }
                        }
                    }
                    bullet.dist = hitInfo.distance;

                    // Get the rigidbody if any
                    if (hitInfo.rigidbody != null && !hitInfo.rigidbody.isKinematic &&
                        hitInfo.rigidbody.useGravity &&
                        targetHealth != null)
                    {
                        // Apply force to the target object at the position of the hit point
                        Vector3 force = PlayerTran.forward * (forcePerSecond / frequency);
                        hitInfo.rigidbody.AddForceAtPosition(force, hitInfo.point, ForceMode.Impulse);
                        bullet.dist = hitInfo.distance;
                    }
                }
                else
                {
                    bullet.dist = 1000;
                }
            }
        }
    }
Пример #20
0
    // Use this for initialization
    void Start()
    {
        _Instance = this;

        IsStopMoveAiPlayer = false;
        if (PlayerShootNpc_2 < PlayerShootNpc_1)
        {
            Debug.LogError("PlayerShootNpc_1 and PlayerShootNpc_2 was wrong!");
            PlayerTran.name = "null";
        }

        if (PlayerHitZhangAi_2 < PlayerHitZhangAi_1)
        {
            Debug.LogError("PlayerHitZhangAi_1 and PlayerHitZhangAi_2 was wrong!");
            PlayerTran.name = "null";
        }

        AudioHitBt = AudioListCtrl.GetInstance().AudioStartBt;
        AudioManager.Instance.PlayBGM(AudioListCtrl.GetInstance().AudioGameBeiJing, true);
        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            //DanJiXueTiaoEng = XueTiaoEngCtrl.GetInstance().GetXueTiaoEngSprite();

            //InitDanJiXueTiaoEng();
            //WaterwheelPlayerCtrl.PlayerZhuanXiangVal = PlayerZhuanXiangVal;
            HeadCtrlPlayer.GetInstanceP1().StopColor();

            StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
            HeadCtrlPlayer.GetInstanceP2().SetHeadColor();
            if (!GlobalData.GetInstance().IsFreeMode)
            {
                if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI)
                {
                    StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
                }
                else
                {
                    InsertCoinCtrl.GetInstanceP2().ShowInsertCoin();
                }
            }
            else
            {
                StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
            }
            ShowAllCameras();

            //InvokeRepeating("LoopSubXueTiao", 3f, 100f); //test
            //InitFillPlayerBlood(); //test
        }
        else
        {
            /*if (NetworkRpcMsgCtrl.MaxLinkServerCount > 0 && NetworkRpcMsgCtrl.MaxLinkServerCount != NetworkRpcMsgCtrl.NoLinkClientCount) {
             *      CloseAllCameras();
             * }
             * else {
             *      ShowAllCameras();
             * }*/

            //WaterwheelPlayerNetCtrl.PlayerZhuanXiangVal = PlayerZhuanXiangVal;
            HeadCtrlPlayer.GetInstanceP1().StopColor();

            StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
            HeadCtrlPlayer.GetInstanceP2().SetHeadColor();
            if (!GlobalData.GetInstance().IsFreeMode)
            {
                if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI)
                {
                    StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
                }
                else
                {
                    InsertCoinCtrl.GetInstanceP2().ShowInsertCoin();
                }
            }
            else
            {
                StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
            }
        }

        SetPanelCtrl.GetInstance();
        PlayerAutoFire.ResetPlayerHitZhangAiNum();
        PlayerAutoFire.ResetPlayerShootNpcNum();

        //QueryLinkIp.GetInstance().CheckLinkIpArray();
        //TestIpLink();

        CancelInvoke("FreeMemory");
        InvokeRepeating("FreeMemory", 30000f, 10000f);
    }