コード例 #1
0
ファイル: GlobalTile.cs プロジェクト: Haedrian/Divine-Right
        public SpriteData GetGraphicsByOverlay(GlobalOverlay overlay)
        {
            if (overlay.Equals(GlobalOverlay.NONE))
            {
                return null;
            }

            #region Region Overlay
            else if (overlay.Equals(GlobalOverlay.REGION))
            {
                //if the elevation is underwater, nothing
                if (this.Elevation < 0)
                {
                    return null;
                }

                //otherwise, depending on the region number, colour them
                switch (Region % 7)
                {
                    case 0: return BROWN;
                    case 1: return GREEN;
                    case 2: return ORANGE;
                    case 3: return PINK;
                    case 4: return PURPLE;
                    case 5: return RED;
                    case 6: return YELLOW;
                }

                return null;

            }
            #endregion
            #region Temperature Overlay
            else if (overlay.Equals(GlobalOverlay.TEMPERATURE))
            {

                //Don't overlay the sea
                if (this.Elevation < 0)
                {
                    return null;
                }

                if (this.ClimateTemperature > 30)
                {
                    return RED;
                }
                else if (this.ClimateTemperature > 20)
                {
                    return ORANGE;
                }
                else if (this.ClimateTemperature > 10)
                {
                    return YELLOW;
                }
                else if (this.ClimateTemperature > 0)
                {
                    return INDIGO;
                }
                else if (this.ClimateTemperature > -10)
                {
                    return MARBLEBLUE;
                }
                else if (this.ClimateTemperature < -10)
                {
                    return WHITE;
                }

                return null;
            }
            #endregion
            #region Rainfall Overlay
            else if (overlay.Equals(GlobalOverlay.RAINFALL))
            {

                if (Elevation < 0)
                {
                    return null;
                }

                if (Rainfall > 8)
                {
                    //really wet
                    return RED;

                }
                else if (Rainfall > 6)
                {
                    //wet
                    return ORANGE;
                }
                else if (Rainfall > 4)
                {
                    return YELLOW;
                }
                else if (Rainfall > 2)
                {
                    return INDIGO;
                }
                else if (Rainfall < 2)
                {
                    return null;
                }

            }
            #endregion
            #region Elevation Overlay
            else if (overlay == GlobalOverlay.ELEVATION)
            {
                if (Elevation > 250)
                {
                    //mountain
                    return RED;
                }
                else if (Elevation > 100)
                {
                    return ORANGE;
                }
                else if (Elevation > 50)
                {
                    return YELLOW;
                }
                else if (Elevation > 25)
                {
                    return INDIGO;
                }
                else if (Elevation > 0)
                {
                    return WHITE;
                }
                else
                {
                    return null;
                }
            }
            #endregion
            #region Desirability Overlay
            else if (overlay == GlobalOverlay.DESIRABILITY)
            {
                if (BaseDesirability > 10)
                {
                    return GREEN;
                }
                else if (BaseDesirability > 5)
                {
                    return YELLOW;
                }
                else if (BaseDesirability > 0)
                {
                    return ORANGE;
                }
                else if (BaseDesirability <= 0)
                {
                    return RED;
                }
            }
            #endregion
            #region Owner
            else if (overlay == GlobalOverlay.OWNER)
            {
                if (Owner == null)
                {
                    return null;
                }

                switch (Owner.Value)
                {
                    case 0: return BROWN;
                    case 1: return GREEN;
                    case 2: return ORANGE;
                    case 3: return PINK;
                    case 4: return PURPLE;
                    case 5: return RED;
                    case 6: return YELLOW;

                    case 100: return INDIGO; //orc
                    case 50: return WHITE; //banditS
                }
            }
            #endregion
            return null;
        }