/// <summary> /// Spawns recruits at RecruitSpawnPoints /// </summary> private void SpawnRecruits() { GameObject[] recruitSpawnPoints = GameObject.FindGameObjectsWithTag(DungeonGenerator.RecruitSpawnPointTag); int recruitIndex = 0; foreach (GameObject recruitSpawnPoint in recruitSpawnPoints) { int recruitCount = Random.Range(this.recruitCount.x, this.recruitCount.y + 1); for (int i = 0; i < recruitCount; i++) { PlayerDriver recruit = MainManager.SpawnEntityWithBonus( this.playerPrefabs.GetRandomItem(), Stat.Random, Stat.Random); recruit.transform.parent = this.entityParent; recruit.transform.position = recruitSpawnPoint.transform.position + this.GetRandomEntityOffset(); recruit.battleDriver.Level = this.EntityLevel; recruit.name = string.Format("Recruit #{0}", recruitIndex); MonoBehaviour.Destroy(recruitSpawnPoint); ++recruitIndex; } } }
/// <summary> /// Select a class based on its index in <seealso cref="characterPrefabs"/> /// </summary> /// <param name="classIndex">The index of the class</param> private void SelectClass(int classIndex) { Storage.SelectedPlayerPrefab = this.characterPrefabs[classIndex]; if (this.playerPreview != null) { MonoBehaviour.Destroy(this.playerPreview.gameObject); } this.playerPreview = MonoBehaviour.Instantiate(Storage.SelectedPlayerPrefab, this.playerPreviewRoot); this.DisableBehaviour <PlayerDriver>(this.playerPreview); this.DisableBehaviour <SpriteManager>(this.playerPreview); this.DisableBehaviour <SpriteAnimator>(this.playerPreview); Rigidbody rigidbody = this.playerPreview.GetComponent <Rigidbody>(); rigidbody.constraints = RigidbodyConstraints.FreezeAll; rigidbody.useGravity = false; this.playerPreview.transform.localPosition = Vector3.zero; this.playerPreview.transform.localRotation = Quaternion.identity; // Deactivate/Activate buttons for (int i = 0; i < this.characterButtons.Length; i++) { this.characterButtons[i].interactable = i != classIndex; } }
/// <summary> /// Does its thing and proceeds to the next floor if the given GameObject is a leading player /// </summary> /// <param name="gameObject">The GameObject that needs to be a player</param> private void ProceedIfPlayer(GameObject gameObject) { PlayerDriver playerDriver = gameObject.GetComponent <PlayerDriver>(); if (playerDriver != null && playerDriver.IsLeader) { DungeonGenerator.GoToNextFloor(); } }
public Race(int nbrLaps, Track track, PlayerDriver player) { _nbrLaps = nbrLaps; Player = player; Track = track; PlayerStats = new PlayerRaceStats(); Drivers = new List <IDriver>(); AddDriver(player); if (track.Description.IsOpenRoad) { _trafficController = new TrafficController(this); } }
/// <summary> /// Called by Unity to initialize the <seealso cref="MainManager"/> whether it is or is not active. /// </summary> private void Awake() { this.NewPreferThis(); this.ValidateSetup(); MainManager.CameraController = this.mainCamera.GetComponent <CameraController>(); PlayerDriver.CreateNewParty(); #if UNITY_EDITOR // Debug code... or something goes here #endif }
public DoRaceScreen(Track track) { _track = track; _car = new DrivableVehicle(GameConfig.SelectedVehicle); _playerDriver = new PlayerDriver(_car); _car.AudioEnabled = true; _race = new Race(_track.IsOpenRoad ? 1 : 3, _track, _playerDriver); for (int i = 0; i < 10; i++) { int j = Engine.Instance.Random.Next(VehicleDescription.Descriptions.Count); _race.AddDriver(new RacingAIDriver(VehicleDescription.Descriptions[j])); } //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper"))); //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper"))); //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper"))); //_race.AddDriver(new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper"))); _playerUI = new PlayerUI(_car); /* * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "911")); * _aiDrivers.Add(d); * _track.AddDriver(d); * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Viper")); * _aiDrivers.Add(d); * _track.AddDriver(d); * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "Diablo")); * _aiDrivers.Add(d); * _track.AddDriver(d); * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "F512")); * _aiDrivers.Add(d); * _track.AddDriver(d); * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "ZR1")); * _aiDrivers.Add(d); * _track.AddDriver(d); * d = new AIDriver(VehicleDescription.Descriptions.Find(a => a.Name == "NSX")); * _aiDrivers.Add(d); * _track.AddDriver(d); */ _raceUI = new RaceUI(_race); _race.StartCountdown(); _raceViewport = new Viewport(0, 0, 640, 400); _uiViewport = new Viewport(0, 0, 640, 480); }
/// <summary> /// Spawns the player. /// There should always only be one player spawn point per floor. /// </summary> private void SpawnPlayer() { // Get all, so useful errors and warning can be given GameObject[] playerSpawnPoints = GameObject.FindGameObjectsWithTag(DungeonGenerator.PlayerSpawnPointTag); if (playerSpawnPoints.Length == 0) { throw new RPGException(RPGException.Cause.DungeonNoPlayerSpawnPoint); } else if (playerSpawnPoints.Length > 1) { Debug.LogWarning("There is more than one player spawn point."); } // Pick the first one GameObject playerSpawnPoint = playerSpawnPoints[0]; // Make sure there's a party if (PlayerDriver.Party == null || PlayerDriver.Party.Count == 0) { PlayerDriver.CreateNewParty(); PlayerDriver player = MainManager.SpawnEntityWithBonus( Storage.SelectedPlayerPrefab, Storage.BonusStat1, Storage.BonusStat2); PlayerDriver.Party.Add(player); } // Move the players foreach (PlayerDriver player in PlayerDriver.Party) { player.transform.position = playerSpawnPoint.transform.position + this.GetRandomEntityOffset(); } // Move the camera MainManager.CameraController.transform.position = playerSpawnPoint.transform.position; MonoBehaviour.Destroy(playerSpawnPoint); }
public void SetDriver(PlayerDriver driver) { this.driver = driver; }
public void Start() { player = GameObject.Find("Player").GetComponent<PlayerDriver>(); powerTileMask = 1 << LayerMask.NameToLayer("PowerTile"); }
private void Awake() { Instance = this; playerDriver = playerObject.GetComponent <PlayerDriver>(); }
// Use this for initialization void Start() { driver = GetComponent <PlayerDriver>(); pRaycast = GetComponent <PlayerRaycast>(); }
/// <summary> /// Sets all values. /// </summary> public void Setup() { if (this.battleDriver == null || this.pauseMenu == null) { throw new RPGException(RPGException.Cause.MenuMissingComponent); } this.memberName.text = string.Format(PartyMemberDisplay.LabelFormat, this.battleDriver.BattleName, this.battleDriver.Level); this.battleDriver.RecalculateStats(); PlayerDriver player = this.battleDriver.entityDriver as PlayerDriver; // Dismiss Button if (PlayerDriver.Party.Count > 1) { this.dismissalButton.onClick.AddListener(delegate { player.LeaveParty(); this.pauseMenu.CreateMenu(); }); } else { this.dismissalButton.interactable = false; } int partyIndex = PlayerDriver.Party.IndexOf(player); // Move up button if (partyIndex > 0) { this.moveUpButton.onClick.AddListener(delegate { PlayerDriver.Party.Move(partyIndex, partyIndex - 1); this.pauseMenu.CreateMenu(); }); } else { this.moveUpButton.interactable = false; } // Move down button if (partyIndex < PlayerDriver.Party.Count - 1) { this.moveDownButton.onClick.AddListener(delegate { PlayerDriver.Party.Move(partyIndex, partyIndex + 1); this.pauseMenu.CreateMenu(); }); } else { this.moveDownButton.interactable = false; } // Statistics this.statusTextLeft.text = PartyMemberDisplay.StatusLeft; this.statusTextRight.text = string.Format( PartyMemberDisplay.StatusRightFormat, this.battleDriver.CurrentHealth, this.battleDriver.MaximumHealth, this.battleDriver.PhysicalDamage, this.battleDriver.MagicalDamage, this.battleDriver.Defense, this.battleDriver.TurnSpeed); // Actions string actionText = string.Empty; foreach (BattleAction.ActionClass actionClass in this.battleDriver.actionClasses) { if (actionClass != BattleAction.ActionClass.NoAction) { BattleAction action = BattleAction.GetBattleAction(actionClass, this.battleDriver); actionText += (actionText.Length > 0 ? "\n" : string.Empty) + string.Format(PartyMemberDisplay.ActionFormat, action.Name, action.Description); } } this.actionText.text = actionText; }