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; }