Added a filter so that map displayed change color according to the time of the day.

This commit is contained in:
Khopa 2019-06-30 01:32:47 +02:00
parent 288fe20def
commit b3318583ed
2 changed files with 32 additions and 13 deletions

View File

@ -210,14 +210,14 @@ UNIT_BY_TASK = {
AirDefence.AAA_Vulcan_M163, AirDefence.AAA_Vulcan_M163,
AirDefence.SAM_Linebacker_M6, AirDefence.SAM_Linebacker_M6,
AirDefence.SPAAA_ZSU_23_4_Shilka, #AirDefence.SPAAA_ZSU_23_4_Shilka,
AirDefence.AAA_ZU_23_Closed, #AirDefence.AAA_ZU_23_Closed,
AirDefence.SAM_SA_9_Strela_1_9P31, #AirDefence.SAM_SA_9_Strela_1_9P31,
AirDefence.SAM_SA_8_Osa_9A33, #AirDefence.SAM_SA_8_Osa_9A33,
AirDefence.SAM_SA_19_Tunguska_2S6, #AirDefence.SAM_SA_19_Tunguska_2S6,
AirDefence.SAM_SA_6_Kub_LN_2P25, #AirDefence.SAM_SA_6_Kub_LN_2P25,
AirDefence.SAM_SA_3_S_125_LN_5P73, AirDefence.SAM_SA_3_S_125_LN_5P73,
AirDefence.SAM_SA_11_Buk_LN_9A310M1, #AirDefence.SAM_SA_11_Buk_LN_9A310M1,
], ],
Reconnaissance: [Unarmed.Transport_M818, Unarmed.Transport_Ural_375, Unarmed.Transport_UAZ_469], Reconnaissance: [Unarmed.Transport_M818, Unarmed.Transport_Ural_375, Unarmed.Transport_UAZ_469],

View File

@ -25,8 +25,8 @@ BLACK = (0, 0, 0)
BACKGROUND = pygame.Color(0, 64, 64) BACKGROUND = pygame.Color(0, 64, 64)
ANTIALIASING = True ANTIALIASING = True
WIDTH = 800 WIDTH = 1000
HEIGHT = 600 HEIGHT = 700
MAP_PADDING = 100 MAP_PADDING = 100
class OverviewCanvas: class OverviewCanvas:
@ -55,6 +55,8 @@ class OverviewCanvas:
# Pygame objects # Pygame objects
self.map = None self.map = None
self.map_dusk_dawn = None
self.map_night = None
self.screen = None self.screen = None
self.surface: pygame.Surface = None self.surface: pygame.Surface = None
self.thread: Thread = None self.thread: Thread = None
@ -188,6 +190,14 @@ class OverviewCanvas:
pygame.draw.rect(self.map, BLACK, (0, 0, self.map.get_width(), self.map.get_height()), 10) pygame.draw.rect(self.map, BLACK, (0, 0, self.map.get_width(), self.map.get_height()), 10)
pygame.draw.rect(self.map, WHITE, (0, 0, self.map.get_width(), self.map.get_height()), 5) pygame.draw.rect(self.map, WHITE, (0, 0, self.map.get_width(), self.map.get_height()), 5)
# Generate map for night and dusk/dawn
self.map_night = self.map.copy()
self.map_night.fill((100, 100, 110, 128), special_flags=pygame.BLEND_MULT)
self.map_dusk_dawn = self.map.copy()
self.map_dusk_dawn.fill((220, 150, 125, 128), special_flags=pygame.BLEND_MULT)
# Create surfaces for drawing # Create surfaces for drawing
self.surface = pygame.Surface((self.map.get_width() + MAP_PADDING * 2, self.surface = pygame.Surface((self.map.get_width() + MAP_PADDING * 2,
self.map.get_height() + MAP_PADDING * 2)) self.map.get_height() + MAP_PADDING * 2))
@ -303,8 +313,17 @@ class OverviewCanvas:
self.redraw_required = False self.redraw_required = False
def draw_map(self, surface: pygame.Surface, overlay: pygame.Surface, mouse_pos: (int, int), mouse_down: [bool, bool]): def draw_map(self, surface: pygame.Surface, overlay: pygame.Surface, mouse_pos: (int, int), mouse_down: [bool, bool]):
daytime = self.game.current_turn_daytime
if daytime == "day":
self.surface.blit(self.map, (MAP_PADDING, MAP_PADDING)) self.surface.blit(self.map, (MAP_PADDING, MAP_PADDING))
elif daytime == "night":
self.surface.blit(self.map_night, (MAP_PADDING, MAP_PADDING))
else:
self.surface.blit(self.map_dusk_dawn, (MAP_PADDING, MAP_PADDING))
# Display zoom level on overlay # Display zoom level on overlay
zoom_lvl = self.font.render(" x " + str(self.zoom) + " ", ANTIALIASING, WHITE, DARK_BLUE) zoom_lvl = self.font.render(" x " + str(self.zoom) + " ", ANTIALIASING, WHITE, DARK_BLUE)
@ -647,9 +666,9 @@ class OverviewCanvas:
daytime = self.game.current_turn_daytime daytime = self.game.current_turn_daytime
if daytime == "dawn": if daytime == "dawn":
self.daytime_icon.configure(image=self.DAWN_ICON) self.daytime_icon.configure(image=self.DAWN_ICON)
if daytime == "day": elif daytime == "day":
self.daytime_icon.configure(image=self.DAY_ICON) self.daytime_icon.configure(image=self.DAY_ICON)
if daytime == "dusk": elif daytime == "dusk":
self.daytime_icon.configure(image=self.DUSK_ICON) self.daytime_icon.configure(image=self.DUSK_ICON)
if daytime == "night": elif daytime == "night":
self.daytime_icon.configure(image=self.NIGHT_ICON) self.daytime_icon.configure(image=self.NIGHT_ICON)