Exemple #1
0
        public SS_Ship(int seed, SS_ShipType shipType, float bodyDetail, int bodyLength, float wingDetail, Color[] colors, float colorDetail)
        {
            Seed = seed;

            ColorBase      = colors[0];
            ColorHighlight = colors[1];
            ColorEngine    = colors[2];

            BodyDetail  = bodyDetail;
            BodyLength  = bodyLength;
            WingDetail  = wingDetail;
            ColorDetail = colorDetail;

            Sprite = new SS_Texture(Size, Size, Color.clear);

            random = new SS_Random(Seed);

            // generate ship based on type
            if (shipType == SS_ShipType.Fighter)
            {
                CreateWing(Sprite, Color.grey, random.NextBool());
                CreateBody(Sprite, SS_ShipBody.Human, bodyLength, random.Range(0, 4), random.NextBool());
                CreateEngine(Sprite, random.Range(1, 6));
                CreateTank(Sprite, random.Range(1, 6), Color.grey, random.NextBool());
                CreateWing(Sprite, Color.grey, random.NextBool());
                CreateCockpit(Sprite, Color.cyan);
            }
            else if (shipType == SS_ShipType.Fighter2)
            {
                CreateWing(Sprite, Color.grey, random.NextBool());
                CreateWing(Sprite, Color.grey, random.NextBool());
                CreateBody(Sprite, SS_ShipBody.Human, bodyLength, random.Range(0, 4), random.NextBool());
                CreateEngine(Sprite, random.Range(1, 4));
                CreateTank(Sprite, random.Range(1, 4), Color.grey, random.NextBool());
                CreateWing(Sprite, Color.grey, random.NextBool());
                CreateWing(Sprite, Color.grey, random.NextBool());
                CreateCockpit(Sprite, Color.cyan);
            }
            else if (shipType == SS_ShipType.Hauler)
            {
                CreateBody(Sprite, SS_ShipBody.Human, bodyLength, random.Range(0, 4), random.NextBool());
                CreateEngine(Sprite, random.Range(1, 4));
                CreateTank(Sprite, 2, Color.grey, random.NextBool());
                CreateCockpit(Sprite, Color.cyan);
            }
            else if (shipType == SS_ShipType.Saucer)
            {
                BodyLength = 48;

                //CreateWing(Sprite, Color.grey, random.NextBool());
                CreateBody(Sprite, SS_ShipBody.Alien, bodyLength, random.Range(0, 4), random.NextBool());
                //CreateTank(Sprite, 1, Color.grey, random.NextBool());
                //CreateWing(Sprite, Color.grey, random.NextBool());
            }
        }
Exemple #2
0
    // Generate the Stellar Sprite
    public void Generate()
    {
        // Delete any children created during generation
        var children = new List <GameObject>();

        for (int i = 0; i < transform.childCount; i++)
        {
            if (transform.GetChild(i).name == "EngineExhaust" ||
                transform.GetChild(i).name == "Weapon")
            {
                children.Add(transform.GetChild(i).gameObject);
            }
        }
        children.ForEach(child => Destroy(child));

        // Setup parameters based on user settings
        if (!CustomSeed)
        {
            Seed = Random.Range(0, 100000000);
        }

        if (!CustomShipType)
        {
            System.Array values = System.Enum.GetValues(typeof(SS_ShipType));
            ShipType = (SS_ShipType)values.GetValue(Random.Range(0, values.Length));
        }

        if (!CustomColorBody)
        {
            Colors[0] = SS_Utilities.GenerateColorWheelColors(Seed, 3)[0];
        }
        if (!CustomColorHighlight)
        {
            Colors[1] = SS_Utilities.GenerateColorWheelColors(Seed, 1)[0];
        }
        if (!CustomColorEngine)
        {
            Colors[2] = SS_Utilities.GenerateColorWheelColors(Seed, 1)[0];
        }

        if (!CustomColorDetail)
        {
            ColorDetail = Random.Range(0.075f, 0.15f);
        }

        if (!CustomBodyDetail)
        {
            BodyDetail = Random.Range(0.01f, 0.1f);
        }

        if (!CustomBodyLength)
        {
            BodyLength = AvailableBodyLengths[Random.Range(0, AvailableBodyLengths.Length)];
        }

        if (!CustomWingDetail)
        {
            WingDetail = Random.Range(0.01f, 0.1f);
        }

        if (SS_StellarSprite.Threaded)
        {
            // Create the Stellar Sprite Object in it's own thread
            Thread generatorThread = new Thread(new ThreadStart(GenerateSprite));
            generatorThread.Start();
        }
        else
        {
            GenerateSprite();
        }
    }
Exemple #3
0
 // Use this for initialization
 void Start()
 {
     ship     = GetComponent <Ship>();
     shipType = GetComponent <Ship>().ShipType;
 }