Example #1
0
	/// <summary>
	/// Applies the champion ship to level load.  You have to setup the championship player before running this method.
	/// </summary>
	/// <param name="levelLoad">Level load.</param>
	/// <param name="selectedChampionShip">Selected champion ship.</param>
	public void ApplyChampionShipToLevelLoad(IRDSLevelLoadVariables levelLoad,
	                                                ChampionShipData selectedChampionShip)	{
		
		//We set to the currentChampionShip singleton the current championship fur future reference when the race ends
		currentChampionShip = selectedChampionShip;

		//We set here the current track to race for this championship
		levelLoad.trackToRace = selectedChampionShip.championshipTracks[selectedChampionShip.currentTrack].sceneName;
		levelLoad.laps = selectedChampionShip.championshipTracks[selectedChampionShip.currentTrack].laps;



		//Set all car folders available to disabled
		for (int i = 0; i < levelLoad.preloadedCarsPath.Count;i++){
			levelLoad.preloadedCarsPath[i].enabled = false;
			levelLoad.preloadedCarsPath[i].enabledForAI = false;
			levelLoad.preloadedCarsPath[i].enabledForPlayers = false;
		}
		
		 
		
		//Clean all assigned drivers on the levelload object, since every championship have its own
		//AI drivers
		levelLoad.carsDrivers = new List<AICarsDrivers>();


		levelLoad.assignCarsToAIDrivers = true;
		int playerIndex =0;
		for (int i = 0; i < championShipDrivers.Count; i++)
		{
			
			if (championShipDrivers[i].imPlayer)
			{
				championShipDrivers[i].AIcarsDrivers.driverName = levelLoad.playerName;
				playerIndex  = i;
			}
		}
		
		if (!championshipTeams[playerSelectedTeam].teamDrivers.Contains(playerIndex))
			championshipTeams[playerSelectedTeam].teamDrivers.Add(playerIndex);

		
		
		
		
		//Team loop
		for (int teamsIndex = 0; teamsIndex < selectedChampionShip.championshipTeams.Count;teamsIndex++){
			// Car in this team loop
			int currentTeam = selectedChampionShip.championshipTeams[teamsIndex];
			for (int teamCarsIndex = 0; teamCarsIndex < championshipTeams[currentTeam].teamCars.teamCars.Count;teamCarsIndex++){
				//Car in levelload loop, to search if they are in there and enable them
				bool found = false;
				if (championshipTeams[currentTeam].teamCars.teamCars.Count>0)
				{	
					levelLoad.preloadCarsEnabled = true;
					for (int i = 0; i < levelLoad.preloadedCarsPath.Count;i++){
						if (levelLoad.preloadedCarsPath[i].folderName == championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].folderName)
						{
							found = true;
							levelLoad.preloadedCarsPath[i].enabled = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabled;
							levelLoad.preloadedCarsPath[i].enabledForAI = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabledForAI;
							levelLoad.preloadedCarsPath[i].enabledForPlayers = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabledForPlayers;
							if (championshipTeams[currentTeam].isPlayerAssignedToTeam && championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabledForPlayers && levelLoad.selectedCar == ""){
								
								//We check if the actual car that the player selected is available on the team
								bool currentlySelectedCarExists = false;
								for (int r = 0; r < championshipTeams[currentTeam].teamCars.teamCars.Count; r++){
									for (int w = 0; w < championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath.Count;w++)
									{
										string[] carStrings = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath[w].Split('\\');
										if (carStrings[carStrings.Length-1] == levelLoad.selectedCar)
											currentlySelectedCarExists = true;
									}
								}
								if (!currentlySelectedCarExists){
									int selectedFolder  = Random.Range(0,championshipTeams[currentTeam].teamCars.teamCars.Count);
									int selectedCar = Random.Range(0,championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath.Count);
									string[] carStrings = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath[selectedCar].Split('\\');
									levelLoad.selectedCar = carStrings[carStrings.Length-1];
								}
							}
//							else levelLoad.preloadedCarsPath[i].enabledForPlayers = false;
						}
					}
					//If the path have not been found, we add it
					if (!found)
					{
						IRDSLevelLoadVariables.IRDSCarsPaths carPath = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex];
						carPath.enabled = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabled;
						carPath.enabledForAI = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabledForAI;
						carPath.enabledForPlayers = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabledForPlayers;
						if (carPath.enabledForPlayers && championshipTeams[currentTeam].isPlayerAssignedToTeam  && levelLoad.selectedCar == ""){
							
							//We check if the actual car that the player selected is available on the team
							bool currentlySelectedCarExists = false;
							for (int r = 0; r < championshipTeams[currentTeam].teamCars.teamCars.Count; r++){
								for (int w = 0; w < championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath.Count;w++)
								{
									string[] carStrings = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath[w].Split('\\');
									if (carStrings[carStrings.Length-1] == levelLoad.selectedCar)
										currentlySelectedCarExists = true;
								}
							}
							if (!currentlySelectedCarExists){
							
								int selectedFolder  = Random.Range(0,championshipTeams[currentTeam].teamCars.teamCars.Count);
								int selectedCar = Random.Range(0,championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath.Count);
								carPath.enabledForAI = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].enabledForAI;
								string[] carStrings = championshipTeams[currentTeam].teamCars.teamCars[teamCarsIndex].preloadedCarsPath[selectedCar].Split('\\');
								levelLoad.selectedCar = carStrings[carStrings.Length-1];
							}
						}
//						else carPath.enabledForPlayers = false;
						levelLoad.preloadedCarsPath.Add(carPath);
					}
				}
				
				if (championshipTeams[currentTeam].teamCars.carsArray.Length>0)
				{
					for (int i = 0; i < championshipTeams[currentTeam].teamCars.carsArray.Length;i++)
					{
						System.Array.Resize<GameObject>(ref levelLoad.CarsForRace,levelLoad.CarsForRace.Length+1);
						levelLoad.CarsForRace[levelLoad.CarsForRace.Length-1] = championshipTeams[currentTeam].teamCars.carsArray[i];
					}
					
				}
			}	
			//We add now all the AI drivers we have on this ChampionShip to the levelload,
			//Also we activate the assignCarsToAIDrivers option so the System would use
			//The preassigned AI drivers we have on this ChampionShip and that we are going to
			//Pass to the levelload object below

			for (int i = 0; i < championshipTeams[currentTeam].teamDrivers.Count;i++){
				//We check here if on this team is the player and if it replaces the first AI of the team
				int driverIndex = championshipTeams[currentTeam].teamDrivers[i];
				if (!championShipDrivers[driverIndex].imPlayer){
					bool test = (
						championshipTeams[currentTeam].isPlayerAssignedToTeam
						&&
						((!championshipTeams[currentTeam].playerReplacesFirstAI
						)
						||(championshipTeams[currentTeam].playerReplacesFirstAI 
						&& i >0)))
						||!championshipTeams[currentTeam].isPlayerAssignedToTeam;

					if (test){
						levelLoad.carsDrivers.Add(championShipDrivers[championshipTeams[currentTeam].teamDrivers[i]].AIcarsDrivers);
						levelLoad.carsDrivers[levelLoad.carsDrivers.Count-1].car = GetRandomCarTeam(championshipTeams[currentTeam],true,false);
					}
				}

			}
			
		}
		
		
		
	}
Example #2
0
//	public CarLibrary carLib;
	// Use this for initialization
	void Start () {
		lastUpdate = Time.time;
		REF = this;
		Time.timeScale = 1f;
		carCamera = GameObject.Find("Main_Camera").GetComponent<IRDSCarCamera>();
		levLoad = GameObject.Find ("LevelLoad").GetComponent<IRDSLevelLoadVariables>();

		levLoad.laps = 3;

		//Screen.SetResolution(640, 480, true);
		carCamera.ActivateRoadCamera ();
		if (TeamDatabase.REF == null) {
			return;
		}
		GameObject light = GameObject.Find("Directional Light");
		Light dl = light.GetComponent<Light>();
		switch(SettingsScreen.shadowLevel) {
			case(0):dl.shadows = LightShadows.None;break;
			case(1):dl.shadows = LightShadows.Hard;break;
			case(2):dl.shadows = LightShadows.Soft;break;
		}

		NGUIDisabler.PAUSED_TIME_SCALE = 0.1f;
	//	Time.timeScale = 4;
		manager = GameObject.Find ("IRDSManager").GetComponent<IRDSManager> ();
		statistics =manager.GetComponentInChildren<IRDSStatistics>();
		statistics.startRaceManually = true;
	//	statistics.StartTheRace();

		carCamera = manager.GetComponentInChildren<IRDSCarCamera>();
		placeCars = manager.gameObject.GetComponentInChildren<IRDSPlaceCars> (); 
	//	BetterList<IRDSCarControllerAI> allCars = new BetterList<IRDSCarControllerAI> ();


		genericRaceGUI = GameObject.Find("GenericRaceGUI");
		UILabel totalLaps = GameObject.Find("LAP").GetComponent<UILabel>();

		driver1Label = GameObject.Find("DriverMessage1").GetComponent<UILabel>();
		driver2Label = GameObject.Find("DriverMessage2").GetComponent<UILabel>();

		simSpeedBtn = GameObject.Find("SimSpeedButton").GetComponent<UIButton>();
		simSpeedLbl = GameObject.Find("SimSpeedButton").GetComponent<UILabel>();
		simSpeedBtn.onClick.Add(new EventDelegate(this,"onSimSpeedChange"));

		if(genericRaceGUI!=null) {
			genericRaceGUI.gameObject.SetActive(false);
		}
		List<GTDriver> driversInRace = ChampionshipRaceSettings.ACTIVE_RACE.driversForRace();
		
		totalLaps.text = "/ "+this.levLoad.laps;
		
		GameObject raceStarters = GameObject.Find("RaceLineupPanel");
		if(raceStarters!=null) {
			raceStartersTable = raceStarters.GetComponent<RaceStarterTable>();
			raceStartersTable.activate(driversInRace);
		}
		
		
		for(int i = 0;i<this.fv.Count;i++) {
			fv[i].enabled = true;
		}
		if(levLoad.raceStartType!=IRDSLevelLoadVariables.RaceStartType.Rolling) {
			
			StartCoroutine(makeCars());
		} else {
			raceStartersTable.allowRaceStart();
		}

		//
	}
Example #3
0
	void Awake(){
		defaultLevelload = GameObject.FindObjectOfType(typeof(IRDSLevelLoadVariables)) as IRDSLevelLoadVariables;
		originalCars = defaultLevelload.CarsForRace.Clone() as GameObject[];
		defaultCarsPath = new List<IRDSLevelLoadVariables.IRDSCarsPaths>(defaultLevelload.preloadedCarsPath);
		originalCarFolders = defaultLevelload.carsFolders.Clone() as string[];
		endRaceResultWindowRect =new Rect(Screen.width/2f-350,Screen.height/2f-250,700,500);


	}