From 9f52fe018b89fcd08a3d4de0b6de31960ce729f4 Mon Sep 17 00:00:00 2001 From: "Jan D. Behrens" Date: Sat, 25 Aug 2012 19:46:09 +0200 Subject: [PATCH] Added 1st version of Archer's background; some finetuning --- xonstat/batch/badges/gen_badges.py | 68 +++++++++++------- .../batch/badges/img/background_archer-v1.png | Bin 0 -> 20734 bytes 2 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 xonstat/batch/badges/img/background_archer-v1.png diff --git a/xonstat/batch/badges/gen_badges.py b/xonstat/batch/badges/gen_badges.py index 3a688bc..d930d14 100644 --- a/xonstat/batch/badges/gen_badges.py +++ b/xonstat/batch/badges/gen_badges.py @@ -47,20 +47,20 @@ NICK_MAXWIDTH = 330 GAMES_POS = (60,35) GAMES_WIDTH = 110 -WINLOSS_POS = (505,11) -WINLOSS_WIDTH = 100 +WINLOSS_POS = (508,6) +WINLOSS_WIDTH = 104 -KILLDEATH_POS = (395,11) -KILLDEATH_WIDTH = 100 +KILLDEATH_POS = (390,6) +KILLDEATH_WIDTH = 104 -PLAYTIME_POS = (450,64) -PLAYTIME_WIDTH = 210 +PLAYTIME_POS = (452,64) +PLAYTIME_WIDTH = 218 # parameters to affect the output, could be changed via URL params = { - 'bg': 1, # 0 - black, 1 - dark_wall, ... - 'overlay': 1, # 0 - none, 1 - Archer, ... + 'bg': 8, # 0 - black, 1 - dark_wall, ... + 'overlay': 0, # 0 - none, 1 - default overlay, ... 'font': 0, # 0 - xolonium, 1 - dejavu sans } @@ -202,6 +202,8 @@ def render_image(data): bg = C.ImageSurface.create_from_png("img/txture.png") elif params['bg'] == 7: bg = C.ImageSurface.create_from_png("img/black_linen_v2.png") + elif params['bg'] == 8: + bg = C.ImageSurface.create_from_png("img/background_archer-v1.png") # tile image if bg: @@ -358,7 +360,7 @@ def render_image(data): # print win percentage - ctx.rectangle(WINLOSS_POS[0]-WINLOSS_WIDTH/2, WINLOSS_POS[1]-7, WINLOSS_WIDTH, 14) + ctx.rectangle(WINLOSS_POS[0]-WINLOSS_WIDTH/2, WINLOSS_POS[1]-7, WINLOSS_WIDTH, 15) ctx.set_source_rgba(0.8, 0.8, 0.8, 0.1) ctx.fill(); @@ -370,10 +372,13 @@ def render_image(data): ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]-yoff-3) ctx.show_text(txt) + wins, losses = total_stats["wins"], total_games-total_stats["wins"] txt = "???" - if total_games > 0 and total_stats['wins'] is not None: - ratio = float(total_stats['wins'])/total_games + try: + ratio = float(wins)/total_games txt = "%.2f%%" % round(ratio * 100, 2) + except: + ratio = 0 ctx.select_font_face(font, C.FONT_SLANT_NORMAL, C.FONT_WEIGHT_BOLD) ctx.set_font_size(12) if ratio >= 0.90: @@ -387,26 +392,30 @@ def render_image(data): else: ctx.set_source_rgb(1.0, 1.0, 0.5) xoff, yoff, tw, th = ctx.text_extents(txt)[:4] - ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]+16-yoff-4) + ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]+18-yoff-4) ctx.show_text(txt) ctx.select_font_face(font, C.FONT_SLANT_NORMAL, C.FONT_WEIGHT_NORMAL) ctx.set_font_size(8) - ctx.set_source_rgb(0.6, 0.8, 0.6) - txt = "%d wins" % total_stats["wins"] + ctx.set_source_rgb(0.6, 0.8, 0.8) + txt = "%d win" % wins + if wins != 1: + txt += "s" xoff, yoff, tw, th = ctx.text_extents(txt)[:4] - ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]+28-yoff-3) + ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]+30-yoff-3) ctx.show_text(txt) - ctx.set_source_rgb(0.8, 0.6, 0.6) - txt = "%d losses" % (total_games-total_stats['wins']) + ctx.set_source_rgb(0.8, 0.8, 0.6) + txt = "%d loss" % losses + if losses != 1: + txt += "es" xoff, yoff, tw, th = ctx.text_extents(txt)[:4] - ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]+38-yoff-3) + ctx.move_to(WINLOSS_POS[0]-xoff-tw/2, WINLOSS_POS[1]+40-yoff-3) ctx.show_text(txt) # print kill/death ratio - ctx.rectangle(KILLDEATH_POS[0]-KILLDEATH_WIDTH/2, KILLDEATH_POS[1]-7, KILLDEATH_WIDTH, 14) + ctx.rectangle(KILLDEATH_POS[0]-KILLDEATH_WIDTH/2, KILLDEATH_POS[1]-7, KILLDEATH_WIDTH, 15) ctx.set_source_rgba(0.8, 0.8, 0.8, 0.1) ctx.fill() @@ -418,10 +427,13 @@ def render_image(data): ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]-yoff-3) ctx.show_text(txt) + kills, deaths = total_stats['kills'] , total_stats['deaths'] txt = "???" - if total_stats['deaths'] > 0 and total_stats['kills'] is not None: - ratio = float(total_stats['kills'])/total_stats['deaths'] + try: + ratio = float(kills)/deaths txt = "%.3f" % round(ratio, 3) + except: + ratio = 0 ctx.select_font_face(font, C.FONT_SLANT_NORMAL, C.FONT_WEIGHT_BOLD) ctx.set_font_size(12) if ratio >= 3: @@ -435,20 +447,24 @@ def render_image(data): else: ctx.set_source_rgb(1.0, 0.2, 0.2) xoff, yoff, tw, th = ctx.text_extents(txt)[:4] - ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]+16-yoff-4) + ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]+18-yoff-4) ctx.show_text(txt) ctx.select_font_face(font, C.FONT_SLANT_NORMAL, C.FONT_WEIGHT_NORMAL) ctx.set_font_size(8) ctx.set_source_rgb(0.6, 0.8, 0.6) - txt = "%d kills" % total_stats["kills"] + txt = "%d kill" % kills + if kills != 1: + txt += "s" xoff, yoff, tw, th = ctx.text_extents(txt)[:4] - ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]+28-yoff-3) + ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]+30-yoff-3) ctx.show_text(txt) ctx.set_source_rgb(0.8, 0.6, 0.6) - txt = "%d deaths" % total_stats['deaths'] + txt = "%d death" % deaths + if deaths != 1: + txt += "s" xoff, yoff, tw, th = ctx.text_extents(txt)[:4] - ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]+38-yoff-3) + ctx.move_to(KILLDEATH_POS[0]-xoff-tw/2, KILLDEATH_POS[1]+40-yoff-3) ctx.show_text(txt) diff --git a/xonstat/batch/badges/img/background_archer-v1.png b/xonstat/batch/badges/img/background_archer-v1.png new file mode 100644 index 0000000000000000000000000000000000000000..c5773214c5a29b3024b979d7dfbc6b22bf6a40b8 GIT binary patch literal 20734 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 `YNpRnA^cr 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