private IEnumerable <PolygonData> planetSpriteData(CombatPlanetInfo planet)
        {
            var planetTransform = Matrix4.CreateTranslation(hexX(planet.Position), hexY(planet.Position), 0);
            var sprite          = new TextureInfo();

            switch (planet.Type)
            {
            case PlanetType.Asteriod:
                sprite = GalaxyTextures.Get.Asteroids;
                break;

            case PlanetType.GasGiant:
                sprite = GalaxyTextures.Get.GasGiant;
                break;

            case PlanetType.Rock:
                sprite = GalaxyTextures.Get.RockPlanet;
                break;
            }

            yield return(new PolygonData(
                             PlanetColorZ,
                             new SpriteData(planetTransform, sprite.Id, Color.White),
                             SpriteHelpers.UnitRectVertexData(sprite)
                             ));

            if (planet.Population > 0)
            {
                yield return(new PolygonData(
                                 MoreCombatantsZ,
                                 new SpriteData(PopulationTransform * planetTransform, TextRenderUtil.Get.TextureId, planet.Owner != null ? planet.Owner.Color : Color.Gray),
                                 TextRenderUtil.Get.BufferText(new ThousandsFormatter().Format(planet.Population), -1, Matrix4.Identity).ToList()
                                 ));
            }
        }
Example #2
0
        private PolygonData planetSpriteData(CombatPlanetInfo planet)
        {
            var sprite = new TextureInfo();

            switch (planet.Type)
            {
            case PlanetType.Asteriod:
                sprite = GalaxyTextures.Get.Asteroids;
                break;

            case PlanetType.GasGiant:
                sprite = GalaxyTextures.Get.GasGiant;
                break;

            case PlanetType.Rock:
                sprite = GalaxyTextures.Get.RockPlanet;
                break;
            }

            return(new PolygonData(
                       PlanetZ,
                       new SpriteData(planetTransform(planet.OrdinalPosition), sprite.Id, Color.White, null, true),
                       SpriteHelpers.UnitRect(sprite).ToList()
                       ));
        }
Example #3
0
        private IEnumerable <PolygonData> planetSpriteData(CombatPlanetInfo planet)
        {
            var planetTransform = Matrix4.CreateTranslation(hexX(planet.Position), hexY(planet.Position), 0);
            var sprite          = new TextureInfo();

            switch (planet.Type)
            {
            case PlanetType.Asteriod:
                sprite = GalaxyTextures.Get.Asteroids;
                break;

            case PlanetType.GasGiant:
                sprite = GalaxyTextures.Get.GasGiant;
                break;

            case PlanetType.Rock:
                sprite = GalaxyTextures.Get.RockPlanet;
                break;
            }

            yield return(new PolygonData(
                             PlanetColorZ,
                             new SpriteData(planetTransform, sprite.Id, Color.White, null),
                             SpriteHelpers.UnitRect(sprite).ToList()
                             ));

            var formatter = new ThousandsFormatter();

            if (planet.Population > 0)
            {
                foreach (var layer in TextRenderUtil.Get.BufferText(formatter.Format(planet.Population), -1, 0, MoreCombatantsZ, 1 / Layers))
                {
                    //TODO(v0.9) text as sprite data? should be SDF
                    yield return(new PolygonData(
                                     layer.Key,
                                     new SpriteData(PopulationTransform * planetTransform, TextRenderUtil.Get.TextureId, planet.Owner != null ? planet.Owner.Color : Color.Gray, null),
                                     layer.Value.ToList()
                                     ));
                }
            }
        }
 public void UseAbility(AbilityInfo ability, CombatPlanetInfo planet)
 {
     this.messageQueue.Add(() => this.processor.UseAbility(ability.Index, ability.Quantity, planet.Data));
 }
 public void UseAbility(AbilityInfo ability, CombatPlanetInfo planet)
 {
     this.battleGame.Processor.UseAbility(ability.Index, ability.Quantity, planet.Data);
     this.checkNextUnit();
 }