public Species(string adjective, Sprite[] portraitRange, Gradient colorRange) { this.adjective = adjective; this.portraitRange = portraitRange; this.colorRange = colorRange; float rand = UnityEngine.Random.Range(0, 1.0f); if (rand < 0.85f) { genders = new Gender[] { Gender.Male, Gender.Female, Gender.Nonbinary, Gender.None }; } else if (rand < 0.98) { genders = new Gender[] { Gender.Female, Gender.None }; } else { genders = new Gender[] { Gender.Male, Gender.Female, Gender.ThirdGender, Gender.Nonbinary, Gender.None }; } genericPortrait = LayeredSpriteGenerator.GenerateSpeciesSprite(this); }
public void RefreshDisplay(LayeredColoredSprite layeredColoredSprite) { imagePool.ReleaseAll(); for (int i = 0; i < this.layeredColoredSprite.Sprites.Length; i++) { Image image = imagePool.GetGameObject().GetComponent <Image>(); image.color = this.layeredColoredSprite.Colors[i]; image.overrideSprite = this.layeredColoredSprite.Sprites[i]; } }
public static LayeredColoredSprite GenerateSpeciesSprite(Species s) { List <List <Sprite> > spriteLayers = new List <List <Sprite> >(); spriteLayers.Add(new List <Sprite>(s.portraitRange)); LayeredColoredSprite toReturn = new LayeredColoredSprite(1); toReturn.SetSprite(0, spriteLayers[0][Random.Range(0, spriteLayers[0].Count)]); toReturn.SetColor(0, s.SpeciesColor()[Random.Range(0, s.SpeciesColor().Length)]); return(toReturn); }
public void SetSpecies(Species s) { portrait = new LayeredColoredSprite(1); portraitDisplay.DisplayLayeredColoredSprite(portrait); layer1Sprites.Clear(); layer1Sprites.AddRange(s.portraitRange); layerColors.Clear(); layerColors.AddRange(s.SpeciesColor()); layer1Index = UnityEngine.Random.Range(0, layer1Sprites.Count - 1); color1Index = UnityEngine.Random.Range(0, layerColors.Count - 1); CycleLayer(); CycleColor(); }
public void DisplayLayeredColoredSprite(LayeredColoredSprite layeredColoredSprite) { if (imagePool == null) { imagePool = new GameObjectPool(imagePrefab, root); } imagePool.ReleaseAll(); if (layeredColoredSprite != null) { if (this.layeredColoredSprite != null) { this.layeredColoredSprite.OnLayeredSpriteChangeEvent -= RefreshDisplay; } this.layeredColoredSprite = layeredColoredSprite; RefreshDisplay(this.layeredColoredSprite); this.layeredColoredSprite.OnLayeredSpriteChangeEvent += RefreshDisplay; } }
private void Start() { logo = new LayeredColoredSprite(3); logoDisplay.DisplayLayeredColoredSprite(logo); layer1Sprites = SpriteLoader.GetAllSymbolParts("Back"); layer2Sprites = SpriteLoader.GetAllSymbolParts("Mid"); layer3Sprites = SpriteLoader.GetAllSymbolParts("Front"); layer1Index = UnityEngine.Random.Range(0, layer1Sprites.Count - 1); layer2Index = UnityEngine.Random.Range(0, layer2Sprites.Count - 1); layer3Index = UnityEngine.Random.Range(0, layer3Sprites.Count - 1); color1Index = UnityEngine.Random.Range(0, layerColors.Count - 1); color2Index = UnityEngine.Random.Range(0, layerColors.Count - 1); color3Index = UnityEngine.Random.Range(0, layerColors.Count - 1); CycleLayer(1); CycleLayer(2); CycleLayer(3); CycleColor(1); CycleColor(2); CycleColor(3); }
public static LayeredColoredSprite[] GenerateLayeredSprites(List <string> layerNames, List <Color> layerColors, int number = 1) { List <List <Sprite> > spriteLayers = new List <List <Sprite> >(); foreach (string s in layerNames) { List <Sprite> sprites = SpriteLoader.GetAllSymbolParts(s); if (sprites != null && sprites.Count > 0) { spriteLayers.Add(sprites); } } LayeredColoredSprite[] toReturn = new LayeredColoredSprite[number]; for (int i = 0; i < number; i++) { toReturn[i] = new LayeredColoredSprite(spriteLayers.Count); for (int j = 0; j < spriteLayers.Count; j++) { toReturn[i].SetSprite(j, spriteLayers[j][Random.Range(0, spriteLayers[j].Count)]); toReturn[i].SetColor(j, layerColors[Random.Range(0, layerColors.Count)]); } } return(toReturn); }
public void PortraitGeneratorChange(LayeredColoredSprite portrait) { player.Portrait = portrait; }