Beispiel #1
0
        public Spaceship CreateSpaceship(string name, SpaceshipType type)
        {
            ISpaceshipBuilder builder = new SpaceshipBuilder(name);

            switch (type)
            {
            case SpaceshipType.Combat:
                builder.BuildFuselage(Fuselage.SemiMonocoque);
                builder.BuildEngines(Engines.Photonic);
                builder.BuildAvionics(Avionics.Rockwell);
                builder.BuildWeaponry(Weaponry.Missile);
                builder.BuildType(SpaceshipType.Combat);
                return(builder.BuildSpaceship());

            case SpaceshipType.Defense:
                builder.BuildFuselage(Fuselage.Monocoque);
                builder.BuildEngines(Engines.Quantum);
                builder.BuildAvionics(Avionics.Bendix);
                builder.BuildWeaponry(Weaponry.Kinetic);
                builder.BuildType(SpaceshipType.Defense);
                return(builder.BuildSpaceship());

            case SpaceshipType.Transport:
                builder.BuildFuselage(Fuselage.Framework);
                builder.BuildEngines(Engines.FTL);
                builder.BuildAvionics(Avionics.Proline);
                builder.BuildWeaponry(Weaponry.Beam);
                builder.BuildType(SpaceshipType.Transport);
                return(builder.BuildSpaceship());
            }
            return(null);
        }
    public SpaceshipType GetSpaceshipTypeByIndex(int index)
    {
        SpaceshipType st_found = null;

        foreach (SpaceshipType st in spaceshipTypes)
        {
            if (st.index == index)
            {
                st_found = st;
                break;
            }
        }
        return(st_found);
    }
    public SpaceshipType GetSpaceshipTypeByName(string name)
    {
        SpaceshipType st_found = null;

        foreach (SpaceshipType st in spaceshipTypes)
        {
            if (st.typeName == name)
            {
                st_found = st;
                break;
            }
        }
        return(st_found);
    }
    public void SpawnSpaceshipOfType(SpaceshipType spaceshipType)
    {
        Debug.Log("SpawnSpaceshipOfType [" + spaceshipType.typeName + "]");

        GameObject instantiatedSpaceship = Instantiate(spaceshipType.prefab, newGameSpaceshipPosition.transform.position, Quaternion.Euler(0, 90, 0));

        // Set attributes
        AllySpaceship spaceship = instantiatedSpaceship.GetComponent <AllySpaceship>();

        spaceship.Initialize();
        spaceship.SetSpaceshipType(spaceshipType);
        spaceship.homeSpaceport = null;

        instantiatedSpaceship.transform.SetParent(spaceshipsParent);

        AddAlliedSpaceshipToList(instantiatedSpaceship);
        UpdateFleetPointsInfo();
    }
    public GameObject SpawnSpaceshipTypeAtPos(SpaceshipType sType, GeometryManager.Position pos)
    {
        //Debug.Log("Spawning saved spaceship");
        GameObject instantiatedSpaceship = Instantiate(sType.prefab, new Vector3(pos.x, pos.y, pos.z), Quaternion.identity);

        // Attribute ID to spaceship
        AllySpaceship allyS = instantiatedSpaceship.GetComponent <AllySpaceship>();

        allyS.Initialize();
        allyS.id            = GetAvailableSpaceshipId();
        allyS.spaceshipType = sType;

        AddAlliedSpaceshipToList(instantiatedSpaceship);

        instantiatedSpaceship.transform.SetParent(spaceshipsParent.transform);

        UpdateFleetPointsInfo();

        return(instantiatedSpaceship);
    }