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(); }
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()); } }
//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; }
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(); }
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(); }
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(); }
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(); }
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); }
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; }
void Start() { freeCameraMovementScript = GlobalData.FreeCameraMovementScript; fixedCameraMovementScript = GlobalData.FixedCameraMovementScript; gameUIScript = GlobalData.GameUIScript; }
private void Awake() { instance = this; }
public void SetGameUIScript(GameUIScript guis) { ui = guis; }
//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); }