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()); } }
// 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(); } }
// Use this for initialization void Start() { ship = GetComponent <Ship>(); shipType = GetComponent <Ship>().ShipType; }