private void AddAllReqTech(ShipSpec ship, List <TechItem> tech)
        {
            if (ship.DependsOnTechIds == null || ship.DependsOnTechIds.Length == 0)
            {
                return;
            }
            var allTech = _game.TechTree[0].TechItems;

            if (Ship.IsCapitalShip(ship.Type))
            {
                var capTech = allTech.FirstOrDefault(_ => _.Type == ETechType.ShipyardConstruction && _.Name == ship.Type.ToString());
                if (capTech != null)
                {
                    tech.Add(capTech);
                }
            }
            var shipTech = (from t in allTech
                            where ship.DependsOnTechIds.Contains(t.Id) &&
                            !tech.Any(_ => _.Id == t.Id)
                            select t).ToList();

            tech.AddRange(shipTech);

            foreach (var t in shipTech)
            {
                AddAllReqTech(t, tech);
            }
        }
Esempio n. 2
0
    void InitializePools(ShipSpec spec, bool isPlayer)
    {
        // TODO: Propagate to weapon spec
        int count = isPlayer ? 1 : 16;

        InitializePools(spec.shipPrefab, count);
        InitializePools(spec.explosionPrefab, count);
        InitializePools(spec.weaponSpec);
        InitializePools(spec.magnetismSpec);
        //InitializePools(spec.aiSpec);
    }