Commit ef02cb21 authored by captnfab's avatar captnfab 🦃
Browse files

New greaves portrait and factorize characters data

WIP #39
parent 1b57b7b9
......@@ -219,7 +219,12 @@ class Round:
self.ships.reverse()
self.player = None
self.cpu = None
self.characters = [ "Ethel Bonny", "Billy Wright", "Greaves Black Beard" ]
self.characters = [
("Ethel Bonny", "ethel-bonny"),
("Billy Wright", "bill-wright"),
("Greaves Black Beard","greaves"),
#("Damien Monbars", "bill-wright"),
]
self.params = sync_config(None)
try:
......
......@@ -624,11 +624,11 @@ class GuiSelection:
x,y = self.menu_label_rect.midleft
self.menu_prev_rect.midright = x-50, y
characters = [
("Ethel Bonny", "ethel-bonny", "On sait peu de choses d'Ethel Bonny, dont seuls quelques récits de pirates font mention. Elle serait liée à Anne Bonny, peut-être une descendante spirituelle de cette dernière. Une chose est sûre, c'est une commandante hors pair et aucun pirate des sept mers ne lui chercherait des noises sans s'être bien préparé."),
("Bill Wright", "bill-wright", "Bill Wright est un corsaire originaire de Saint Domingue. Acceptant une commission de guerre du gouverneur français, il fit plus tard une descente dans la colonie espagnole de Ségovie (aujourd'hui le Nicaragua) avec plusieurs autres corsaires."),
("Greaves Black Beard", "greaves", "Les matelots navigant dans les mers des Caraïbes connaissent tous cet écossais à la barbe noire insolite. Greaves a l'humour aussi tranchant que ses deux sabres. Ont dit que ses adversaires deviennent fou, ou perdent la tête."),
#("Damien Monbars", "bill-wright", "Damien Monbars, dit Monbars l'exterminateur, est un pirate Français du XVIIe siècle qui attaquait les bateaux espagnols afin de venger le peuple indien et les esclaves noirs."),
characters_descr = [
"On sait peu de choses d'Ethel Bonny, dont seuls quelques récits de pirates font mention. Elle serait liée à Anne Bonny, peut-être une descendante spirituelle de cette dernière. Une chose est sûre, c'est une commandante hors pair et aucun pirate des sept mers ne lui chercherait des noises sans s'être bien préparé.",
"Bill Wright est un corsaire originaire de Saint Domingue. Acceptant une commission de guerre du gouverneur français, il fit plus tard une descente dans la colonie espagnole de Ségovie (aujourd'hui le Nicaragua) avec plusieurs autres corsaires.",
"Les matelots navigant dans les mers des Caraïbes connaissent tous cet écossais à la barbe noire insolite. Greaves a l'humour aussi tranchant que ses deux sabres. Ont dit que ses adversaires deviennent fou, ou perdent la tête.",
#"Damien Monbars, dit Monbars l'exterminateur, est un pirate Français du XVIIe siècle qui attaquait les bateaux espagnols afin de venger le peuple indien et les esclaves noirs.",
]
charmenu_center = (int(WIDTH * 0.25), int(HEIGHT * 0.65))
......@@ -642,7 +642,7 @@ class GuiSelection:
self.charmenu_items = []
cmaxwidth,cmaxheight=0,0
dmaxwidth,dmaxheight=0,0
for (n,(name, slug, descr)) in enumerate(characters):
for n,((name, slug), descr) in enumerate(zip(self.rnd.characters,characters_descr)):
charname = charname_font.render(name, 1, WHITE)
crect = charname.get_rect()
crect.center = charmenu_center
......@@ -820,15 +820,10 @@ class GuiSetupShips:
self.bg.fill(BLUEGRAY)
## Render player portrait
characters = [
("Ethel Bonny", "ethel-bonny"),
("Bill Wright", "bill-wright"),
("Greaves Black Beard", "greaves"),
]
pygame.draw.circle(self.bg, LIGHTBLUEGRAY, (int(WIDTH*0.05), int(HEIGHT*0.15)), int(WIDTH*0.13))
portrait_size = 240
name,slug = characters[self.rnd.player.character]
name,slug = self.rnd.characters[self.rnd.player.character]
portrait_player = pygame.image.load("gfx/portrait_"+slug+".png")
portrait_player = pygame.transform.smoothscale(portrait_player, (portrait_size, portrait_size))
portrait_player_rect = portrait_player.get_rect()
......@@ -1260,13 +1255,6 @@ class GuiBattleShips:
self.portrait_cpu = None
self.portrait_cpu_rect = None
self.characters = [
("Ethel Bonny", "ethel-bonny"),
("Bill Wright", "bill-wright"),
("Greaves Black Beard", "greaves"),
#("Damien Monbars", "bill-wright"),
]
self.font_player = pygame.font.Font(FONT, 22)
self._prepare_grids(bg)
......@@ -1544,8 +1532,8 @@ class GuiBattleShips:
self.prev_cpu_hits = self.rnd.cpu.hits.copy()
if self.portrait_player is None or self.portrait_cpu is None:
pname,pslug = self.characters[self.rnd.player.character]
cname,cslug = self.characters[self.rnd.cpu.character]
pname,pslug = self.rnd.characters[self.rnd.player.character]
cname,cslug = self.rnd.characters[self.rnd.cpu.character]
portrait_size = 240
self.portrait_player = pygame.image.load("gfx/portrait_"+pslug+".png")
self.portrait_cpu = pygame.image.load("gfx/portrait_"+cslug+".png")
......@@ -1599,8 +1587,8 @@ class GuiBattleShips:
bigocean.midbottom = b.midbottom
update_rects.append(bigocean)
label_player = self.font_player.render(self.rnd.characters[self.rnd.player.character], 1, WHITE)
label_enemy = self.font_player.render(self.rnd.characters[self.rnd.cpu.character], 1, WHITE)
label_player = self.font_player.render(self.rnd.characters[self.rnd.player.character][0], 1, WHITE)
label_enemy = self.font_player.render(self.rnd.characters[self.rnd.cpu.character][0], 1, WHITE)
r = label_enemy.get_rect()
r.topright = (s.get_width()-250, 10)
s.blit(label_player, (250, 10))
......@@ -1673,18 +1661,11 @@ class GuiGameOver:
if self.rnd.state.options.get('victory', None) is None:
self.rnd.state.options['victory'] = False
self.characters = [
("Ethel Bonny", "ethel-bonny"),
("Bill Wright", "bill-wright"),
("Greaves Black Beard", "greaves"),
#("Damien Monbars", "bill-wright"),
]
# Precompute background
if self.rnd.state.options.get('victory', False):
slug = self.characters[self.rnd.player.character][1]
slug = self.rnd.characters[self.rnd.player.character][1]
else:
slug = self.characters[self.rnd.cpu.character][1]
slug = self.rnd.characters[self.rnd.cpu.character][1]
self.bg = pygame.image.load("gfx/gameover_"+slug+".jpg").convert()
......@@ -1705,11 +1686,11 @@ class GuiGameOver:
font_score = pygame.font.Font(FONT, 12)
### Print players labels
label_player = font_score.render(self.rnd.characters[self.rnd.player.character], 1, WHITE)
label_player = font_score.render(self.rnd.characters[self.rnd.player.character][0], 1, WHITE)
p_rect = label_player.get_rect()
p_rect.center = pos_score[0]-150, pos_score[1]-20
label_enemy = font_score.render(self.rnd.characters[self.rnd.cpu.character], 1, WHITE)
label_enemy = font_score.render(self.rnd.characters[self.rnd.cpu.character][0], 1, WHITE)
c_rect = label_enemy.get_rect()
c_rect.center = pos_score[0]+150, pos_score[1]-20
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment