From 8df9d06eff906609eae225c20c5e369c4aeac3e7 Mon Sep 17 00:00:00 2001 From: Ninjananas Date: Sun, 8 Sep 2024 17:58:00 +0200 Subject: [PATCH] New graphics, new reversed icons --- data/cards.xlsx | Bin 8365 -> 8373 bytes graphics/bundled/graphics.svg | 2501 ------- graphics/bundled/icones_bannieres.svg | 8862 +++++++++++++++++++++++++ scripts/generate_layouts.py | 29 +- src/deck.rb | 49 +- 5 files changed, 8927 insertions(+), 2514 deletions(-) delete mode 100644 graphics/bundled/graphics.svg create mode 100644 graphics/bundled/icones_bannieres.svg diff --git a/data/cards.xlsx b/data/cards.xlsx index 0a58a23f7eecb1b8449f4a730d3551f3b18cf74e..8a4d3c753f88a5ee6806fc2202af4e5543724f73 100644 GIT binary patch delta 4747 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 delta 4684 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 diff --git a/graphics/bundled/graphics.svg b/graphics/bundled/graphics.svg deleted file mode 100644 index 92e90f4..0000000 --- a/graphics/bundled/graphics.svg +++ /dev/null @@ -1,2501 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/graphics/bundled/icones_bannieres.svg b/graphics/bundled/icones_bannieres.svg new file mode 100644 index 0000000..2737900 --- /dev/null +++ b/graphics/bundled/icones_bannieres.svg @@ -0,0 +1,8862 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + point de votecarte magouillecarte effetrobocaïneretournement de vestespin-doctorpropagandecampagne de comm' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ACTION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CANDIDAT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/scripts/generate_layouts.py b/scripts/generate_layouts.py index 6dd246a..783c7a2 100644 --- a/scripts/generate_layouts.py +++ b/scripts/generate_layouts.py @@ -20,22 +20,29 @@ ICON_MARGIN_TOP = 0 ICON_X = ICON_MARGIN_LEFT + SAFE_MARGIN ICON_Y = ICON_MARGIN_TOP + SAFE_MARGIN +# Ret Icon info +RET_ICON_SIZE = ICON_SIZE * 0.9 +RET_ICON_X = ICON_X + ((ICON_SIZE - RET_ICON_SIZE) / 2.) +RET_ICON_Y = ICON_Y + ICON_SIZE - 0.1 + + # Banner info BANNER_WIDTH = 2 BANNER_HEIGHT = 6 BANNER_X = ICON_X + ICON_SIZE + 0.3 BANNER_Y = 0 -BANNER_TEXT_FONT = "\"ethnocentric 12\"" +BANNER_TEXT_FONT = "\"ethnocentric 11\"" BANNER_TEXT_X = BANNER_X - 0.3 -BANNER_TEXT_Y = BANNER_HEIGHT / 3 +BANNER_TEXT_Y = BANNER_HEIGHT / 2.2 BANNER_TEXT_WIDTH = BANNER_WIDTH + 0.6 +BANNER_TEXT_MOD_T = BANNER_TEXT_Y + 0.2 # Name info NAME_X = ICON_X + ICON_SIZE NAME_Y = SAFE_MARGIN + 0.1 NAME_WIDTH = MAX_SAFE_X - NAME_X NAME_HEIGHT = 3.4 -NAME_FONT = "\"ethnocentric 11\"" +NAME_FONT = "\"ethnocentric 10\"" NAME_WITH_BANNER_X = BANNER_X + BANNER_WIDTH NAME_WITH_BANNER_WIDTH = NAME_WIDTH - (NAME_WITH_BANNER_X - NAME_X) @@ -45,6 +52,7 @@ def central_sym(x: int, y: int) -> Tuple[int, int]: # Alternative objects ALT_ICON_X, ALT_ICON_Y = central_sym(ICON_X, ICON_Y) +ALT_RET_ICON_X, ALT_RET_ICON_Y = central_sym(RET_ICON_X, RET_ICON_Y) ALT_BANNER_X, ALT_BANNER_Y = central_sym(BANNER_X, BANNER_Y) ALT_BANNER_TEXT_X, ALT_BANNER_TEXT_Y = central_sym(BANNER_TEXT_X, BANNER_TEXT_Y) @@ -52,7 +60,7 @@ ALT_BANNER_TEXT_X, ALT_BANNER_TEXT_Y = central_sym(BANNER_TEXT_X, BANNER_TEXT_Y) EFFECT_FRAME_WIDTH = SAFE_WIDTH - 2 EFFECT_FRAME_HEIGHT = 6 EFFECT_FRAME_RADIUS = 0.2 -EFFECT_FRAME_MARGIN_BOTTOM = 2 +EFFECT_FRAME_MARGIN_BOTTOM = 4.1 EFFECT_FRAME_X = (TOTAL_WIDTH - EFFECT_FRAME_WIDTH) / 2. EFFECT_FRAME_Y = MAX_SAFE_Y - EFFECT_FRAME_MARGIN_BOTTOM - EFFECT_FRAME_HEIGHT @@ -75,12 +83,24 @@ icon: width: {ICON_SIZE}c height: {ICON_SIZE}c +ret_icon: + x: {RET_ICON_X}c + y: {RET_ICON_Y}c + width: {RET_ICON_SIZE}c + height: {RET_ICON_SIZE}c + alt_icon: extends: icon x: {ALT_ICON_X}c y: {ALT_ICON_Y}c angle: 3.14159 +alt_ret_icon: + extends: ret_icon + x: {ALT_RET_ICON_X}c + y: {ALT_RET_ICON_Y}c + angle: 3.14159 + banner: x: {BANNER_X}c y: {BANNER_Y}c @@ -94,6 +114,7 @@ banner_text: height: 1c font: {BANNER_TEXT_FONT} align: center + color: '#fff' # hint: blue alt_banner: diff --git a/src/deck.rb b/src/deck.rb index 7d3a935..a494078 100644 --- a/src/deck.rb +++ b/src/deck.rb @@ -6,8 +6,32 @@ def icon_to_svg(icon) icon.nil? ? nil : "icone_#{icon}.svg" end +def ret_icon_to_svg(icon) + icon.nil? ? nil : "retourner_#{icon}.svg" +end + +def banner_text_layout(rank) + if rank.nil? + nil + elsif rank.start_with?('+') + "banniere_bonus.svg" + elsif rank.start_with?('-') + "banniere_malus.svg" + else + "banniere_rang.svg" + end +end + def rank_to_banner_svg(rank) - rank.nil? ? nil : (rank.start_with?('+') || rank.start_with?('-')) ? "banniere_mod.svg" : "banniere_rang.svg" + if rank.nil? + nil + elsif rank.start_with?('+') + "banniere_bonus.svg" + elsif rank.start_with?('-') + "banniere_malus.svg" + else + "banniere_rang.svg" + end end def embed_custom(embed, id) @@ -50,23 +74,30 @@ Squib::Deck.new( alt_icon_file = data['icone_alt'].map { |icon| icon_to_svg(icon) } svg file: alt_icon_file, layout: 'alt_icon' + ret_icon_file = data['icone_alt'].map { |icon| ret_icon_to_svg(icon) } + svg file: ret_icon_file, layout: 'ret_icon' + + alt_ret_icon_file = data['icone'].zip(data['icone_alt']).map { |icon, alt_icon| alt_icon.nil? ? nil : ret_icon_to_svg(icon) } + svg file: alt_ret_icon_file, layout: 'alt_ret_icon' + + alt_banner_file = data['rang_alt'].map { |rank| rank_to_banner_svg(rank) } svg file: alt_banner_file, layout: 'alt_banner' text str: data['rang_alt'], layout: 'alt_banner_text' - fill_color = data['effet'].map { |effet| effet.nil? ? '#0000': '#f5f5f5ff' } - stroke_color = data['effet'].map { |effet| effet.nil? ? '#0000': '#bb98' } + fill_color = data['effet'].map { |effet| effet.nil? ? '#0000': '#f7f7f7ff' } + stroke_color = data['effet'].map { |effet| effet.nil? ? '#0000': '#cca9' } rect layout: 'effect_frame', fill_color: fill_color, stroke_color: stroke_color text(str: data['effet'], layout: 'effect_text') do |embed| embed_custom(embed, 'effet') embed_custom(embed, 'magouille') embed_custom(embed, 'pv') - embed_custom(embed, 'icone_ind') - embed_custom(embed, 'icone_gau') - embed_custom(embed, 'icone_roy') - embed_custom(embed, 'icone_ana') - embed_custom(embed, 'icone_dro') - embed_custom(embed, 'icone_eco') + embed_custom(embed, 'symbole_ind') + embed_custom(embed, 'symbole_gau') + embed_custom(embed, 'symbole_roy') + embed_custom(embed, 'symbole_ana') + embed_custom(embed, 'symbole_dro') + embed_custom(embed, 'symbole_eco') end build :debug do