示例#1
0
文件: Player.cs 项目: kidundead/ow
        public void OnDead()
        {
            audioPlayer.PlayAudio(AudioName.DEAD);
            weapon.StopFire();
            int rnd = Random.Range(1, 4);

            Animate(AnimationName.PLAYER_DEATH + rnd, WrapMode.ClampForever);   //! 播放死亡动画

            //! 显示红色 血的图片
            Transform sbdTrans = gameCamera.gameObject.transform.Find("Screen_Blood_Dead");

            if (sbdTrans != null)
            {
                //! sbdTrans.gameObject.active = true;
                sbdTrans.gameObject.SetActive(true);
            }

            //! 删除碰撞检测
            GameObject.Destroy(playerObject.GetComponent <Collider>());

            GameScene gameScene = GameApp.GetInstance().GetGameScene();

            gameScene.PlayingState = PlayingState.GameLose;

            GameApp.GetInstance().GetGameState().Achievement.LoseGame();

            GameUIScript ui2 = GameObject.Find("SceneGUI").GetComponent <GameUIScript>();

            ui2.GetPanel(GameUIName.GAME_OVER).Show();
            //BattleEndUI battleEndUI = ui2.GetComponent<BattleEndUI>();
            //battleEndUI.enabled = true;

            gameCamera.GetComponent <AudioSource>().Stop();
            gameCamera.loseAudio.Play();
        }
示例#2
0
文件: Player.cs 项目: kidundead/ow
        public void ChangeWeapon(Weapon w)
        {
            if (w.IsSelectedForBattle)
            {
                if (weapon != null)
                {
                    weapon.GunOff();
                    Animate(AnimationName.PLAYER_IDLE + weaponNameEnd, WrapMode.Loop);
                }
                weapon = w;
                weapon.changeReticle();   //! 切换十字对准线
                weapon.GunOn();

                audioPlayer.PlayAudio(AudioName.SWITCH);

                if (weapon.GetWeaponType() == WeaponType.RocketLauncher)
                {
                    weaponNameEnd = "_RPG";
                }
                else if (weapon.GetWeaponType() == WeaponType.ShotGun)
                {
                    weaponNameEnd = "_Shotgun";
                }
                else if (weapon.GetWeaponType() == WeaponType.Sniper)
                {
                    weaponNameEnd = "_RPG";
                }
                else if (weapon.GetWeaponType() == WeaponType.LaserGun)
                {
                    weaponNameEnd = "";
                }
                else if (weapon.GetWeaponType() == WeaponType.MachineGun)
                {
                    weaponNameEnd = "";
                }
                else if (weapon.GetWeaponType() == WeaponType.Saw)
                {
                    weaponNameEnd = "_Saw";
                }
                else
                {
                    weaponNameEnd = "";
                }

                gameCamera.isAngelVFixed = false;

                /*
                 * if (weapon.GetWeaponType() == WeaponType.LaserGun)
                 * {
                 *  gameCamera.fixedAngelV = -2f;
                 *  gameCamera.isAngelVFixed = true;
                 * }
                 */
                GameUIScript gameUI = GameObject.Find("SceneGUI").GetComponent <GameUIScript>();
                gameUI.SetWeaponLogo(weapon.GetWeaponType());
            }
        }
示例#3
0
 //This is called each time a scene is loaded.
 void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode)
 {
     playerTransform           = GlobalData.PlayerTransform;
     playerCameraTransform     = GlobalData.PlayerCameraHorizontalPivotTransform;
     freeCameraMovementScript  = GlobalData.FreeCameraMovementScript;
     fixedCameraMovementScript = GlobalData.FixedCameraMovementScript;
     gameUIScript      = GlobalData.GameUIScript;
     cameraShakeScript = GlobalData.CameraShakeScript;
 }
示例#4
0
    public void StartStep(TutorialScript ts, Player player)
    {
        this.ts = ts;
        player.InputController.EnableMoveInput     = false;
        player.InputController.EnableTurningAround = false;
        player.InputController.EnableShootingInput = false;
        player.InputController.CameraRotation      = Vector2.zero;
        guis.EnableTutorialOKButton(true);
        GameDialog dialog = GameUIScript.GetGameUIScript().GetDialog();

        dialog.SetText("\nCONGRATS! YOU'VE COMPLETED THE CALL OF MINI BOOTCAMP! READY TO GO INTO BATTLE?");
        dialog.Show();
    }
示例#5
0
    public void StartStep(TutorialScript ts, Player player)
    {
        this.ts = ts;
        player.InputController.EnableMoveInput     = false;
        player.InputController.EnableTurningAround = false;
        player.InputController.EnableShootingInput = false;
        player.InputController.CameraRotation      = Vector2.zero;
        guis.EnableTutorialOKButton(true);

        GameDialog dialog = GameUIScript.GetGameUIScript().GetDialog();

        dialog.SetText("\nOK, NOW YOU'RE READY TO TRY USING YOUR WEAPON. USE THE RIGHT JOYSTICK TO AIM AT AND SHOOT THE BOX IN FRONT OF YOU.");
        dialog.Show();
    }
示例#6
0
    public void StartStep(TutorialScript ts, Player player)
    {
        this.ts = ts;
        player.InputController.EnableMoveInput     = false;
        player.InputController.EnableTurningAround = false;
        player.InputController.EnableShootingInput = false;
        player.InputController.CameraRotation      = Vector2.zero;
        guis.EnableTutorialOKButton(true);

        GameDialog dialog = GameUIScript.GetGameUIScript().GetDialog();

        dialog.SetText("\nTAP AND SLIDE ON THE SCREEN TO ADJUST YOUR LINE OF SIGHT, THEN AIM AT THE BOX IN FRONT OF YOU.");
        dialog.Show();
    }
示例#7
0
    public void StartStep(TutorialScript ts, Player player)
    {
        this.ts = ts;
        player.InputController.EnableMoveInput     = false;
        player.InputController.EnableTurningAround = false;
        player.InputController.EnableShootingInput = false;
        player.InputController.CameraRotation      = Vector2.zero;
        guis.EnableTutorialOKButton(true);

        GameDialog dialog = GameUIScript.GetGameUIScript().GetDialog();

        dialog.SetText("\nALRIGHT, NOW THAT YOU'VE GOT DOWN THE BASICS, TRY SHOOTING THE ZOMBIE IN FRONT OF YOU.");
        dialog.Show();
    }
示例#8
0
    void Awake()
    {
        instance = this;

        gameScript = FindObjectOfType<GameScript>();

        foreach (var goal in FindObjectsOfType<GoalScript>())
        {
          goal.OnGoal += Goal;
        }

        score1.text = "0";
        score2.text = "0";
        player1.text = "";
        player2.text = "";

        instance.gameOverPanel.SetActive(false);
    }
示例#9
0
    public void StartStep(TutorialScript ts, Player player)
    {
        this.ts = ts;
        player.InputController.EnableMoveInput     = false;
        player.InputController.EnableTurningAround = false;
        player.InputController.EnableShootingInput = false;
        player.InputController.CameraRotation      = Vector2.zero;


        GameObject halo = GameObject.Instantiate(GameApp.GetInstance().GetResourceConfig().halo, player.GetTransform().TransformPoint(Vector3.forward * 15.0f), Quaternion.Euler(90, 0, 0)) as GameObject;

        halo.name = "Halo";

        GameDialog dialog = GameUIScript.GetGameUIScript().GetDialog();

        dialog.SetText("\nUSE THE LEFT JOYSTICK TO WALK AROUND. GO AHEAD AND WALK INTO THE CIRCLE OF PULSATING LIGHT.");
        dialog.Show();

        //dialogText.Rect = uiPos.DesignerText;
    }
示例#10
0
 void Start()
 {
     freeCameraMovementScript  = GlobalData.FreeCameraMovementScript;
     fixedCameraMovementScript = GlobalData.FixedCameraMovementScript;
     gameUIScript = GlobalData.GameUIScript;
 }
示例#11
0
 private void Awake()
 {
     instance = this;
 }
示例#12
0
 public void SetGameUIScript(GameUIScript guis)
 {
     ui = guis;
 }
示例#13
0
    //public GUISkin guiSkin;


    // Use this for initialization
    IEnumerator Start()
    {
        yield return(0);

        spawnSpeed       = 2 - waveNum * 0.1f;
        timeBetweenWaves = 1.0f;
        gameScene        = GameApp.GetInstance().GetGameScene();

        GameApp.GetInstance().GetGameScene().ArenaTrigger = this;
        doors     = GameObject.FindGameObjectsWithTag("Door");
        doorCount = doors.Length;

        waveStartTime = Time.time;
        player        = GameApp.GetInstance().GetGameScene().GetPlayer();

        paramXML = new GameParametersXML();



        if (Application.isEditor || Application.platform == RuntimePlatform.IPhonePlayer)
        {
            spawnConfigInfo = paramXML.Load(null, GameApp.GetInstance().GetGameState().LevelNum);
        }
        else
        {
            spawnConfigInfo = paramXML.Load("/", GameApp.GetInstance().GetGameState().LevelNum);
        }

        int limit = GameApp.GetInstance().GetGameConfig().globalConf.enemyLimit;

        waveNum = 0;
        int startWaveNum = GameApp.GetInstance().GetGameState().LevelNum;
        int roundNum     = 0;

        gameScene.ArenaTrigger = this;
        Debug.Log("wave num:" + spawnConfigInfo.Waves.Count);
        foreach (Wave wave in spawnConfigInfo.Waves)
        {
            int enemyLeft = GameApp.GetInstance().GetGameScene().GetEnemies().Count;
            while (enemyLeft > 0 && Time.time - waveStartTime < Constant.MAX_WAVE_TIME)
            {
                yield return(0);

                enemyLeft = GameApp.GetInstance().GetGameScene().GetEnemies().Count;
            }

            waveNum++;

            waveStartTime = Time.time;
            gameScene.CalculateDifficultyFactor(GameApp.GetInstance().GetGameState().LevelNum);
            Debug.Log("Wave " + waveNum);
            GameApp.GetInstance().GetGameScene().BonusWeapon = null;
            GameApp.GetInstance().DebugInfo = "";
            //GameApp.GetInstance().GetGameScene().RefreshWoodBoxes();
            yield return(new WaitForSeconds(wave.intermission));

            foreach (Round round in wave.Rounds)
            {
                roundNum++;
                Debug.Log("Round " + roundNum);
                yield return(new WaitForSeconds(round.intermission));

                foreach (EnemyInfo enemyInfo in round.EnemyInfos)
                {
                    EnemyType enemyType = enemyInfo.EType;
                    //Debug.Log("Spawn " + enemyInfo.Count + " " + enemyType + " from " + enemyInfo.From);

                    int           spawnNum = enemyInfo.Count;
                    SpawnFromType from     = enemyInfo.From;

                    GameObject enemyPrefab = null;// GameApp.GetInstance().GetResourceConfig().enemy[(int)enemyType];
                    Transform  grave       = null;
                    if (from == SpawnFromType.Grave)
                    {
                        grave = CalculateGravePosition(player.GetTransform());
                    }

                    for (int i = 0; i < spawnNum; i++)
                    {
                        bool bElite = false;
                        bElite = EliteSpawn(enemyType, spawnNum, i);

                        if (bElite)
                        {
                            enemyPrefab = GameApp.GetInstance().GetResourceConfig().enemy_elite[(int)enemyType];
                        }
                        else
                        {
                            enemyPrefab = GameApp.GetInstance().GetResourceConfig().enemy[(int)enemyType];
                        }
                        enemyLeft = GameApp.GetInstance().GetGameScene().GetEnemies().Count;
                        while (enemyLeft >= limit)
                        {
                            yield return(0);

                            enemyLeft = GameApp.GetInstance().GetGameScene().GetEnemies().Count;
                        }


                        Vector3 spawnPosition = Vector3.zero;
                        if (from == SpawnFromType.Door)
                        {
                            spawnPosition = doors[currentDoorIndex].transform.position;
                            currentDoorIndex++;
                            if (currentDoorIndex == doorCount)
                            {
                                currentDoorIndex = 0;
                            }
                        }
                        else if (from == SpawnFromType.Grave)
                        {
                            float rndX = Random.Range(-grave.localScale.x / 2, grave.localScale.x / 2);
                            float rndZ = Random.Range(-grave.localScale.z / 2, grave.localScale.z / 2);
                            spawnPosition = grave.position + new Vector3(rndX, 0f, rndZ);

                            GameObject.Instantiate(GameApp.GetInstance().GetResourceConfig().graveRock, spawnPosition + Vector3.down * 0.3f, Quaternion.identity);
                        }

                        GameObject currentEnemy = null;
                        if (bElite)
                        {
                            currentEnemy = (GameObject)Instantiate(enemyPrefab, spawnPosition, Quaternion.Euler(0, 0, 0));
                        }
                        else
                        {
                            currentEnemy       = gameScene.GetEnemyPool(enemyType).CreateObject(spawnPosition, Quaternion.Euler(0, 0, 0));
                            currentEnemy.layer = PhysicsLayer.ENEMY;
                        }

                        int enemyID = GameApp.GetInstance().GetGameScene().GetNextEnemyID();
                        currentEnemy.name = ConstData.ENEMY_NAME + enemyID.ToString();

                        Enemy enemy = null;

                        switch ((int)enemyType)
                        {
                        case 0: enemy = new Zombie();
                            break;

                        case 1: enemy = new Nurse();
                            break;

                        case 2: enemy = new Tank();
                            currentEnemy.transform.Translate(Vector3.up * 2);
                            break;

                        case 3:
                            enemy = new Hunter();
                            break;

                        case 4:
                            enemy = new Boomer();
                            break;

                        case 5:
                            enemy = new Swat();
                            break;
                        }
                        enemy.IsElite = bElite;
                        enemy.Init(currentEnemy);
                        enemy.EnemyType = enemyType;
                        //enemy.Spawn = this;
                        enemy.Name = currentEnemy.name;

                        if (from == SpawnFromType.Grave)
                        {
                            enemy.SetInGrave(true);
                        }
                        GameApp.GetInstance().GetGameScene().GetEnemies().Add(currentEnemy.name, enemy);
                        yield return(new WaitForSeconds(0.3f));
                    }
                }
            }
        }


        int enemyCount = GameApp.GetInstance().GetGameScene().GetEnemies().Count;

        while (enemyCount > 0)
        {
            enemyCount = GameApp.GetInstance().GetGameScene().GetEnemies().Count;
            yield return(0);
        }

        //Scene Ends



        GameApp.GetInstance().GetGameScene().PlayingState = PlayingState.GameWin;
        List <Weapon> weaponList = GameApp.GetInstance().GetGameState().GetWeapons();
        GameConfig    gConfig    = GameApp.GetInstance().GetGameConfig();
        WeaponConfig  wConf      = gConfig.GetUnLockWeapon(GameApp.GetInstance().GetGameState().LevelNum);

        if (wConf != null)
        {
            foreach (Weapon w in weaponList)
            {
                //No duplicated weapons
                if (w.Name == wConf.name)
                {
                    if (w.Exist == WeaponExistState.Locked)
                    {
                        w.Exist = WeaponExistState.Unlocked;
                        GameApp.GetInstance().GetGameScene().BonusWeapon = w;
                        break;
                    }
                }
            }
        }
        else
        {
            GameApp.GetInstance().GetGameScene().BonusWeapon = null;
        }



        GameApp.GetInstance().GetGameState().Achievement.CheckAchievemnet_Survivior(GameApp.GetInstance().GetGameState().LevelNum);
        GameApp.GetInstance().GetGameState().Achievement.CheckAchievemnet_LastSurvivior(GameApp.GetInstance().GetGameState().LevelNum);

        GameApp.GetInstance().GetGameState().Achievement.SubmitScore(GameApp.GetInstance().GetGameState().LevelNum);

        GameApp.GetInstance().GetGameState().LevelNum++;

        /*
         * AvatarType aType = (AvatarType)Mathf.Clamp((GameApp.GetInstance().GetGameState().LevelNum - 1)/5, 0, GameApp.GetInstance().GetGameState().GetAvatarNum() - 1);
         *
         * if (GameApp.GetInstance().GetGameState().GetAvatarData(aType) == AvatarState.NotAvaliable)
         * {
         *  GameApp.GetInstance().GetGameState().EnableAvatar(aType);
         * }
         */


        //GameApp.GetInstance().GetGameState().AddScore(1000);

        GameApp.GetInstance().Save();

        yield return(new WaitForSeconds(4.0f));

        if (gameScene.BonusWeapon != null)
        {
            GameUIScript.GetGameUIScript().ClearLevelInfo();
            GameUIScript.GetGameUIScript().GetPanel(GameUIName.NEW_ITEM).Show();
            yield return(new WaitForSeconds(4.0f));
        }

        FadeAnimationScript.GetInstance().StartFade(new Color(0, 0, 0, 0.0f), new Color(0, 0, 0, 1), 1.0f);
        yield return(new WaitForSeconds(1.5f));

        UIResourceMgr.GetInstance().UnloadAllUIMaterials();
        Application.LoadLevel(SceneName.MAP);
    }