def update_ui(self): self.canvas.create_image(0, 0, anchor=tk.NW, image=self.BG) for n in Logic.network: self.canvas.create_image(n.x, n.y, anchor=tk.CENTER, image=self.NODE_IMG[n.rank]) if n.occupant == PLAYER_AXIS: self.canvas.create_image(n.x, n.y - NODE_R[n.rank] - 5, anchor=tk.S, image=self.FLAG_AXIS) if n.occupant == PLAYER_ALLY: self.canvas.create_image(n.x, n.y - NODE_R[n.rank] - 5, anchor=tk.S, image=self.FLAG_ALLY) if n.cannon or n.cannon_time > -1: self.canvas.create_image(n.x - NODE_R[n.rank] - 5, n.y, anchor=tk.E, image=self.CANNON) if n.cannon_time > -1: self.canvas.create_text( n.x - NODE_R[n.rank] - 5, n.y + NODE_R[n.rank] + 5, anchor=tk.NE, text=str(Logic.cannon_makers) ) if n.fortress or n.fortress_time > -1: self.canvas.create_image(n.x + NODE_R[n.rank] + 5, n.y, anchor=tk.W, image=self.FORTRESS) if n.fortress_time > -1: self.canvas.create_text( n.x + NODE_R[n.rank] + 5, n.y + NODE_R[n.rank] + 5, anchor=tk.NW, text=str(Logic.fortress_makers) ) self.canvas.create_text(n.x, n.y + NODE_R[n.rank] + 5, anchor=tk.N, text=str(n.allowed)) if self.selected is not None: self.canvas.create_oval( self.selected.x - NODE_R[self.selected.rank] - 5, self.selected.y - NODE_R[self.selected.rank] - 5, self.selected.x + NODE_R[self.selected.rank] + 5, self.selected.y + NODE_R[self.selected.rank] + 5, width=3, outline="#0000FF", ) for n in Logic.adjacent_levels(self.selected): self.canvas.create_line(self.selected.x, self.selected.y, n.x, n.y, arrow=tk.LAST, dash=(3, 3)) if self.selected_2 is not None: self.canvas.create_oval( self.selected_2.x - NODE_R[self.selected_2.rank] - 5, self.selected_2.y - NODE_R[self.selected_2.rank] - 5, self.selected_2.x + NODE_R[self.selected_2.rank] + 5, self.selected_2.y + NODE_R[self.selected_2.rank] + 5, width=3, outline="#FF0000", )