Example #1
0
    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);
                }
            }
        }
    }
Example #2
0
 public CampaignSquadron GetSquadronComponent()
 {
     //TEMP: AI Build command
     CampaignSquadron squadron = new CampaignSquadron();
     squadron.CopyData(squadrons[0]);
     return squadron;
 }
Example #3
0
 public void ModifiySquadron(CampaignSquadron squadron)
 {
     foreach (TechnologyAttribute attribute in technologyAttributes)
     {
         attribute.ApplySquadronModifier(squadron);
     }
 }
Example #4
0
    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);
                }
            }
        }
    }
Example #5
0
 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;
        }
    }
Example #8
0
    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;
 }
Example #10
0
    /// <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;
        }
    }
Example #11
0
 public virtual void ApplySquadronModifier(CampaignSquadron squadron)
 {
 }
Example #12
0
    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;
    }
Example #13
0
    //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);
        }
    }
Example #14
0
    public CampaignSquadron BuySquadron(CampaignSquadron squadron)
    {
        if (buy(squadron.cost))
        {
            CampaignSquadron newSquadron = new CampaignSquadron();
            newSquadron.CopyData(squadron);
            buildQueue.Add(newSquadron);

            return newSquadron;
        }

        return null;
    }
Example #15
0
    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);
    }
Example #16
0
 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;
 }
Example #17
0
 public override void ApplySquadronModifier(CampaignSquadron squadron)
 {
 }
Example #18
0
    //increase ship count by amount
    public void AddSquadron(CampaignSquadron squadron)
    {
        squadron.MoveSquadronFromFleet += SplitFleet;

        squadrons.Add(squadron);
    }