public void SetBuildableSquadronsList(ResearchManager researchManager) { buildableSquadrons.Clear(); List<CampaignSquadron> squadrons = unitList.GetAllSquadrons(); foreach (CampaignSquadron squadron in squadrons) { CampaignSquadron newSquadron = new CampaignSquadron(); newSquadron.CopyData(squadron); newSquadron.canBuild = true; buildableSquadrons.Add(newSquadron); } foreach (CampaignSquadron squadron in buildableSquadrons) { foreach (Technology tech in researchManager.GetTechnologies()) { if (tech.researched) { tech.ModifiySquadron(squadron); } } } }
public CampaignSquadron GetSquadronComponent() { //TEMP: AI Build command CampaignSquadron squadron = new CampaignSquadron(); squadron.CopyData(squadrons[0]); return squadron; }
public void ModifiySquadron(CampaignSquadron squadron) { foreach (TechnologyAttribute attribute in technologyAttributes) { attribute.ApplySquadronModifier(squadron); } }
public void CopyFromCampaignSquadron(CampaignSquadron campaignSquadron, Vector3 position, Vector3 direction) { for (int i = 0; i < campaignSquadron.ShipCount; i++) { GameObject shipObject = (GameObject)Instantiate(campaignSquadron.shipConfiguration.ship.shipPrefab, position + new Vector3(0, -5, i * 40), this.transform.rotation); shipObject.transform.parent = this.transform; shipObject.transform.rotation = Quaternion.LookRotation(direction); Ship ship = shipObject.GetComponent<Ship>(); ship.LoadConfiguration(campaignSquadron.shipConfiguration); ship.FactionID = this.factionID; ship.ShipID = i; ship.shipDestroyed += OnShipDestroyed; ships.Add(ship); faceDirection = direction; } foreach (Ship ship in ships) { foreach (Ship s in ships) { if (s != ship) { s.GetComponent<AIShipController>().ShipsInSquadron.Add(ship); } } } }
public void CopyData(CampaignSquadron squadron) { this.Name = squadron.Name; this.ShipCount = squadron.ShipCount; this.cost = squadron.cost; this.buildPointCost = squadron.buildPointCost; this.Icon = squadron.Icon; this.isSelected = squadron.isSelected; this.shipConfiguration = squadron.shipConfiguration; this.buildWindowPosition = squadron.buildWindowPosition; this.ID = squadron.ID; }
public override void Update(CampaignFaction faction) { if (squadronBuilt == null) { squadronBuilt = station.BuySquadron(squadronToBuild); } if (squadronBuilt != null && squadronBuilt.isBuilt) { SquadronBuilt(this.squadronBuilt); this.objectiveComplete = true; } }
public override void Update(CampaignFaction faction) { ShipConfiguration config = shipConfigurationManager.shipConfigurations[0]; CampaignSquadron squadron = new CampaignSquadron(); squadron.SetData(config); station.BuySquadron(squadron); squadronsBuilt++; if (squadronsBuilt >= 3) { objectiveComplete = true; } }
public CampaignSquadron GetSquadron(string squadronName) { foreach (CampaignSquadron squadron in squadrons) { if (squadron.Name == squadronName) { CampaignSquadron newSquadron = new CampaignSquadron(); newSquadron.CopyData(squadron); return newSquadron; } } CampaignSquadron defaultSquadron = new CampaignSquadron(); defaultSquadron.CopyData(squadrons[0]); return defaultSquadron; }
public AIObjectiveBuildSquadron(CampaignSquadron squadron, CampaignStation stationToBuildAt) { squadronToBuild = squadron; station = stationToBuildAt; }
/// <summary> /// Called by Unity when a level is loaded /// </summary> /// <param name="level">The level number that was loaded</param> private void OnLevelWasLoaded(int level) { if (Application.loadedLevelName == "BattleMode" || Application.loadedLevelName == "CombatTest") { if (Application.loadedLevelName == "CombatTest") { ShipConfiguration config = new ShipConfiguration(); config.SetShip(testShipPrefab.GetComponent<Ship>()); config.SetShipComponentSlot(0, testWeaponComponent); config.SetShipComponentSlot(1, testMissileComponent); CampaignSquadron squadron = new CampaignSquadron(); squadron.SetData(config); squadron.ShipCount = 1; ShipConfiguration bomber = new ShipConfiguration(); bomber.SetShip(testBomberPrefab.GetComponent<Ship>()); bomber.SetShipComponentSlot(0, testTorpedoComponent); CampaignSquadron bomberSquadron = new CampaignSquadron(); bomberSquadron.SetData(bomber); bomberSquadron.ShipCount = 2; ShipConfiguration config2 = new ShipConfiguration(); config2.SetShip(testShipPrefab2.GetComponent<Ship>()); config2.SetShipComponentSlot(0, turretComponent); config2.SetShipComponentSlot(1, turretComponent); config2.SetShipComponentSlot(2, turretComponent); config2.SetShipComponentSlot(3, turretComponent); CampaignSquadron squadron2 = new CampaignSquadron(); squadron2.SetData(config2); squadron2.ShipCount = 1; for (int i = 0; i < 1; i++) { campaignFleetAttackingFleet.squadrons.Add(squadron); } for (int i = 0; i < 1; i++) { campaignFleetDefendingFleet.squadrons.Add(squadron); } } battlestate = BattleManager.BattleStates.setup; GameObject atkFleetObject = (GameObject)Instantiate(fleetObject); GameObject dfFleetObject = (GameObject)Instantiate(fleetObject); atkFleet = atkFleetObject.GetComponent<Fleet>(); dfFleet = dfFleetObject.GetComponent<Fleet>(); atkFleet.CopyCampaignFleet(campaignFleetAttackingFleet, new Vector3(000, 0, 0), new Vector3(1, 0, 0)); campaignFleetAttackingFleet.gameObject.SetActive(false); dfFleet.CopyCampaignFleet(campaignFleetDefendingFleet, new Vector3(2000, 0, 0), new Vector3(-1, 0, 0)); campaignFleetDefendingFleet.gameObject.SetActive(false); //fill list of all ships foreach(Squadron squadron in atkFleet.squadrons) { foreach(Ship ship in squadron.ships) { ship.shipDestroyed += OnShipDestroyed; allShips.Add(ship); } } foreach(Squadron squadron in dfFleet.squadrons) { allSquadrons.Add(squadron); foreach(Ship ship in squadron.ships) { ship.shipDestroyed += OnShipDestroyed; allShips.Add(ship); } } atkFleet.fleetDestroyed += FleetDestroyed; dfFleet.fleetDestroyed += FleetDestroyed; } }
public virtual void ApplySquadronModifier(CampaignSquadron squadron) { }
public CampaignFleet SplitFleet(CampaignSquadron squadron) { GameObject newFleetObject = (GameObject)Instantiate(this.gameObject, this.transform.position, Quaternion.identity); newFleetObject.name = "Fleet"; newFleetObject.transform.parent = this.transform.parent; CampaignFleet newFleet = newFleetObject.GetComponent<CampaignFleet>(); newFleet.ClearAllSquadrons(); newFleet.AddSquadron(squadron); RemoveSquadron(squadron); NewFleet(newFleet); return newFleet; }
//reduce ship count by amount //TODO: Replace with actual ships public void RemoveSquadron(CampaignSquadron squadron) { squadron.MoveSquadronFromFleet -= SplitFleet; squadrons.Remove(squadron); if (SquadronCount == 0) { RemoveFleet(this); } }
public CampaignSquadron BuySquadron(CampaignSquadron squadron) { if (buy(squadron.cost)) { CampaignSquadron newSquadron = new CampaignSquadron(); newSquadron.CopyData(squadron); buildQueue.Add(newSquadron); return newSquadron; } return null; }
public void StartNewTurn() { if (buildQueue.Count > 0) { //ignore workers slider buildQueue[0].buildPointCost -= maxWorkers; if (buildQueue[0].buildPointCost <= 0) { CampaignSquadron squadron = null; if (buildQueue[0] is CampaignSquadron) { squadron = (CampaignSquadron)buildQueue[0]; if (planet.fleets.Count > 0) { planet.fleets[0].AddSquadron((CampaignSquadron)buildQueue[0]); } else { GameObject fleetObject = (GameObject)Instantiate(campaignFleetPrefab); CampaignFleet fleet = fleetObject.GetComponent<CampaignFleet>(); CampaignSquadron newSquadron = new CampaignSquadron(); newSquadron.CopyData(squadron); fleet.AddSquadron(newSquadron); fleet.ArriveAtPlanet(planet); addFleet(fleet); } } else if (buildQueue[0] is StationStructure) { ApplyUpgrade((StationStructure)buildQueue[0]); } buildQueue.RemoveAt(0); } } population += populationGrowth; IncomeRate = (harvesterCount * harvesterHarvestRate); researchRate = (researcherCount * researcherResearchRate); }
public bool DrawRecruitmentWindow() { for (int i = 0; i < shipConfigurations.Count; i++) { if (GUI.Button(new Rect(0, i * 25 + 5, 200, 25), shipConfigurations[i].configurationName)) { ShipConfiguration config = shipConfigurations[i]; CampaignSquadron squadron = new CampaignSquadron(); squadron.SetData(config); BuySquadron(squadron); } } return false; }
public override void ApplySquadronModifier(CampaignSquadron squadron) { }
//increase ship count by amount public void AddSquadron(CampaignSquadron squadron) { squadron.MoveSquadronFromFleet += SplitFleet; squadrons.Add(squadron); }