diff --git a/scripts/redraw-readable-tactical-units.py b/scripts/redraw-readable-tactical-units.py index 030b392..5b0e9dc 100644 --- a/scripts/redraw-readable-tactical-units.py +++ b/scripts/redraw-readable-tactical-units.py @@ -31,7 +31,7 @@ ACTION_COLUMN_OFFSETS = { for index, action in enumerate(ACTION_ORDER) } ACTION_FRAMES_PER_DIRECTION = sum(ACTION_FRAME_COUNTS.values()) -PROCESSING_VERSION = "readable-tactical-v1" +PROCESSING_VERSION = "readable-tactical-v2" Color = tuple[int, int, int] @@ -42,6 +42,7 @@ DARK_INK: Color = (4, 4, 4) HIGHLIGHT: Color = (245, 220, 132) METAL: Color = (207, 213, 202) METAL_DARK: Color = (92, 98, 91) +LEATHER: Color = (95, 58, 34) SKIN: Color = (201, 148, 94) SKIN_DARK: Color = (126, 78, 49) @@ -162,7 +163,7 @@ def unit_spec(stem: str) -> UnitSpec: bulk += 0.14 if role in ("archer", "strategist", "shaman"): bulk -= 0.06 - scale = 1.0 + min(rank - 1, 2) * 0.04 + scale = 1.06 + min(rank - 1, 2) * 0.04 hair = (44, 31, 23) skin = SKIN if faction == "nanman": @@ -401,9 +402,19 @@ def draw_human(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: fl (cx - shoulder * 0.62, torso_bottom + 52), ] draw_poly(draw, cape_points, darken(spec.palette.primary, 0.22), INK, 8) + draw.line( + (cx - shoulder * 0.44, torso_top + 24, cx - shoulder * 0.28, torso_bottom + 42), + fill=darken(spec.palette.primary, 0.38), + width=max(3, round(4 * scale)), + ) + draw.line( + (cx + shoulder * 0.38, torso_top + 26, cx + shoulder * 0.2, torso_bottom + 44), + fill=lighten(spec.palette.primary, 0.12), + width=max(2, round(3 * scale)), + ) leg_color = darken(spec.palette.primary, 0.15) - draw_leg_pair(draw, cx, bottom, waist, scale, leg_color, motion.step, side) + draw_leg_pair(draw, cx, bottom, waist, scale, leg_color, motion.step, side, spec) torso = [ (cx - shoulder, torso_top), @@ -414,6 +425,30 @@ def draw_human(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: fl (cx - waist, torso_bottom), ] draw_poly(draw, torso, spec.palette.primary, INK, 10) + draw_poly( + draw, + [ + (cx - shoulder * 0.95, torso_top + 12), + (cx - shoulder * 0.2, torso_top + 10), + (cx - waist * 0.16, torso_bottom + 20), + (cx - waist * 0.76, torso_bottom + 20), + ], + darken(spec.palette.primary, 0.17), + darken(spec.palette.primary, 0.32), + 2, + ) + draw_poly( + draw, + [ + (cx + shoulder * 0.18, torso_top + 10), + (cx + shoulder * 0.86, torso_top + 13), + (cx + waist * 0.68, torso_bottom + 20), + (cx + waist * 0.18, torso_bottom + 16), + ], + lighten(spec.palette.primary, 0.08), + lighten(spec.palette.primary, 0.16), + 2, + ) draw_poly( draw, [ @@ -426,8 +461,25 @@ def draw_human(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: fl INK, 5, ) + draw_poly( + draw, + [ + (cx - shoulder * 0.38, torso_top + 10), + (cx, torso_top + 39 * scale), + (cx + shoulder * 0.38, torso_top + 10), + (cx + shoulder * 0.18, torso_top + 20), + (cx, torso_top + 60 * scale), + (cx - shoulder * 0.18, torso_top + 20), + ], + spec.palette.cloth if spec.role != "strategist" else (226, 220, 176), + INK, + 3, + ) draw_rect(draw, (cx - waist, torso_bottom - 8, cx + waist, torso_bottom + 8), spec.palette.accent, INK, 5) + draw.line((cx - waist * 0.78, torso_bottom + 6, cx + waist * 0.78, torso_bottom + 6), fill=lighten(spec.palette.accent, 0.24), width=3) draw.line((cx, torso_top + 8, cx, torso_bottom - 8), fill=darken(spec.palette.primary, 0.24), width=5) + if spec.role in ("officer", "lord", "spearman"): + draw_armor_skirt(draw, cx, torso_bottom + 7 * scale, waist, scale, spec) arm_y = torso_top + 30 * scale left_hand = (cx - shoulder - 18 * scale, arm_y + 48 * scale + motion.arm * 8) @@ -440,8 +492,14 @@ def draw_human(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: fl right_hand = (right_hand[0], right_hand[1] - 42 * motion.raise_arm) left_hand = (left_hand[0], left_hand[1] - 22 * motion.raise_arm) - draw_limb(draw, (cx - shoulder * 0.78, arm_y), left_hand, spec.palette.cloth, 16) - draw_limb(draw, (cx + shoulder * 0.78, arm_y), right_hand, spec.palette.cloth, 16) + left_shoulder = (cx - shoulder * 0.78, arm_y) + right_shoulder = (cx + shoulder * 0.78, arm_y) + draw_limb(draw, left_shoulder, left_hand, spec.palette.cloth, 16) + draw_limb(draw, right_shoulder, right_hand, spec.palette.cloth, 16) + draw_shoulder_guard(draw, left_shoulder[0], left_shoulder[1] - 1 * scale, scale, spec, -1) + draw_shoulder_guard(draw, right_shoulder[0], right_shoulder[1] - 1 * scale, scale, spec, 1) + draw_cuff(draw, left_hand, scale, spec) + draw_cuff(draw, right_hand, scale, spec) draw_ellipse(draw, around(left_hand, 10), spec.skin, INK, 4) draw_ellipse(draw, around(right_hand, 10), spec.skin, INK, 4) @@ -449,6 +507,8 @@ def draw_human(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: fl shield_x = left_hand[0] - 6 if side >= 0 else right_hand[0] + 6 shield_y = (left_hand[1] + right_hand[1]) / 2 + 4 draw_shield(draw, shield_x, shield_y, spec) + elif spec.role == "archer": + draw_quiver(draw, cx - shoulder * 0.64, torso_top + 46 * scale, scale, spec) draw_weapon(draw, spec, direction, left_hand, right_hand, cx, bottom, motion, action) draw_head(draw, spec, direction, cx + side * 8 * scale, head_y, scale, back) @@ -462,9 +522,13 @@ def draw_cavalry(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: if side: body = (cx - 82 * scale, bottom - 112 * scale, cx + 78 * scale, bottom - 44 * scale) draw_round(draw, body, horse_color, INK, 10, 26) + draw_round(draw, (cx - 62 * scale, bottom - 105 * scale, cx + 44 * scale, bottom - 56 * scale), lighten(horse_color, 0.1), darken(horse_color, 0.3), 3, 18) head_x = cx + side * 88 * scale draw_ellipse(draw, (head_x - 28 * scale, bottom - 140 * scale, head_x + 28 * scale, bottom - 82 * scale), horse_color, INK, 9) draw_poly(draw, [(head_x + side * 14 * scale, bottom - 138 * scale), (head_x + side * 40 * scale, bottom - 158 * scale), (head_x + side * 28 * scale, bottom - 118 * scale)], horse_color, INK, 7) + draw.line((head_x - side * 22 * scale, bottom - 118 * scale, head_x + side * 28 * scale, bottom - 102 * scale), fill=darken(horse_color, 0.42), width=max(4, round(5 * scale))) + draw.line((head_x - side * 20 * scale, bottom - 132 * scale, cx + side * 18 * scale, bottom - 102 * scale), fill=INK, width=max(3, round(4 * scale))) + draw_ellipse(draw, around((head_x + side * 10 * scale, bottom - 122 * scale), 4 * scale), DARK_INK, DARK_INK, 1) draw_limb(draw, (cx - 52 * scale, bottom - 48 * scale), (cx - 68 * scale + motion.step * 12, bottom - 4 * scale), horse_dark, 15) draw_limb(draw, (cx - 18 * scale, bottom - 46 * scale), (cx - 8 * scale - motion.step * 16, bottom - 2 * scale), horse_dark, 15) draw_limb(draw, (cx + 26 * scale, bottom - 46 * scale), (cx + 42 * scale + motion.step * 16, bottom - 3 * scale), horse_dark, 15) @@ -473,12 +537,16 @@ def draw_cavalry(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: else: body = (cx - 62 * scale, bottom - 128 * scale, cx + 62 * scale, bottom - 40 * scale) draw_round(draw, body, horse_color, INK, 10, 28) + draw_round(draw, (cx - 42 * scale, bottom - 118 * scale, cx + 42 * scale, bottom - 58 * scale), lighten(horse_color, 0.1), darken(horse_color, 0.3), 3, 18) draw_ellipse(draw, (cx - 40 * scale, bottom - 164 * scale, cx + 40 * scale, bottom - 96 * scale), horse_color, INK, 9) + draw_ellipse(draw, around((cx - 16 * scale, bottom - 130 * scale), 4 * scale), DARK_INK, DARK_INK, 1) + draw_ellipse(draw, around((cx + 16 * scale, bottom - 130 * scale), 4 * scale), DARK_INK, DARK_INK, 1) draw_limb(draw, (cx - 38 * scale, bottom - 48 * scale), (cx - 56 * scale, bottom - 2 * scale), horse_dark, 16) draw_limb(draw, (cx + 38 * scale, bottom - 48 * scale), (cx + 56 * scale, bottom - 2 * scale), horse_dark, 16) draw_limb(draw, (cx - 12 * scale, bottom - 46 * scale), (cx - 16 * scale, bottom - 2 * scale), horse_dark, 13) draw_limb(draw, (cx + 12 * scale, bottom - 46 * scale), (cx + 16 * scale, bottom - 2 * scale), horse_dark, 13) + draw_saddle(draw, cx, bottom - 98 * scale, scale, spec, side) rider_bottom = bottom - 88 * scale rider_spec = UnitSpec( **{ @@ -493,13 +561,24 @@ def draw_cavalry(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: draw_human(draw, rider_spec, direction, cx, rider_bottom, motion, action) -def draw_leg_pair(draw: ImageDraw.ImageDraw, cx: float, bottom: float, waist: float, scale: float, color: Color, step: float, side: int) -> None: +def draw_leg_pair(draw: ImageDraw.ImageDraw, cx: float, bottom: float, waist: float, scale: float, color: Color, step: float, side: int, spec: UnitSpec) -> None: if side: - draw_limb(draw, (cx - 18 * scale, bottom - 60 * scale), (cx - 34 * scale - step * 6, bottom - 7 * scale), color, 18) - draw_limb(draw, (cx + 20 * scale, bottom - 60 * scale), (cx + 36 * scale + step * 7, bottom - 7 * scale), color, 18) + left_start = (cx - 18 * scale, bottom - 60 * scale) + left_end = (cx - 34 * scale - step * 6, bottom - 7 * scale) + right_start = (cx + 20 * scale, bottom - 60 * scale) + right_end = (cx + 36 * scale + step * 7, bottom - 7 * scale) else: - draw_limb(draw, (cx - waist * 0.45, bottom - 62 * scale), (cx - 36 * scale - step * 7, bottom - 8 * scale), color, 18) - draw_limb(draw, (cx + waist * 0.45, bottom - 62 * scale), (cx + 36 * scale + step * 7, bottom - 8 * scale), color, 18) + left_start = (cx - waist * 0.45, bottom - 62 * scale) + left_end = (cx - 36 * scale - step * 7, bottom - 8 * scale) + right_start = (cx + waist * 0.45, bottom - 62 * scale) + right_end = (cx + 36 * scale + step * 7, bottom - 8 * scale) + draw_limb(draw, left_start, left_end, color, 18) + draw_limb(draw, right_start, right_end, color, 18) + draw_limb(draw, (left_start[0], left_start[1] + 25 * scale), (left_end[0], left_end[1] + 1 * scale), darken(color, 0.18), 6) + draw_limb(draw, (right_start[0], right_start[1] + 25 * scale), (right_end[0], right_end[1] + 1 * scale), lighten(color, 0.08), 5) + if spec.rank > 1: + draw_rect(draw, (cx - 50 * scale, bottom - 58 * scale, cx - 20 * scale, bottom - 37 * scale), spec.palette.armor, INK, 3) + draw_rect(draw, (cx + 20 * scale, bottom - 58 * scale, cx + 50 * scale, bottom - 37 * scale), spec.palette.armor, INK, 3) draw_ellipse(draw, (cx - 58 * scale, bottom - 18 * scale, cx - 16 * scale, bottom + 2 * scale), darken(color, 0.2), INK, 4) draw_ellipse(draw, (cx + 16 * scale, bottom - 18 * scale, cx + 58 * scale, bottom + 2 * scale), darken(color, 0.2), INK, 4) @@ -507,22 +586,39 @@ def draw_leg_pair(draw: ImageDraw.ImageDraw, cx: float, bottom: float, waist: fl def draw_head(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: float, cy: float, scale: float, back: bool) -> None: r = 27 * scale draw_ellipse(draw, (cx - r, cy - r, cx + r, cy + r), spec.skin, INK, 8) + if not back: + draw_ellipse(draw, (cx - r * 0.42, cy - r * 0.18, cx + r * 0.78, cy + r * 0.62), lighten(spec.skin, 0.16), spec.skin, 1) + draw.line((cx - r * 0.62, cy + r * 0.1, cx + r * 0.64, cy + r * 0.12), fill=SKIN_DARK, width=max(2, round(2 * scale))) if spec.turban: draw_round(draw, (cx - r * 1.15, cy - r * 0.98, cx + r * 1.15, cy - r * 0.33), spec.palette.accent, INK, 5, 10) draw.line((cx - r * 0.9, cy - r * 0.36, cx + r * 0.9, cy - r * 0.36), fill=darken(spec.palette.accent, 0.25), width=5) + knot_x = cx + r * 0.82 + draw_poly(draw, [(knot_x, cy - r * 0.72), (knot_x + r * 0.36, cy - r * 0.42), (knot_x, cy - r * 0.25)], spec.palette.accent, INK, 3) elif spec.helmet: draw_poly(draw, [(cx - r * 1.08, cy - r * 0.45), (cx, cy - r * 1.34), (cx + r * 1.08, cy - r * 0.45)], spec.palette.armor, INK, 6) draw_rect(draw, (cx - r * 0.92, cy - r * 0.58, cx + r * 0.92, cy - r * 0.22), spec.palette.accent, INK, 4) + if spec.rank > 1: + draw.line((cx, cy - r * 1.32, cx, cy - r * 1.78), fill=INK, width=max(4, round(5 * scale))) + draw.line((cx, cy - r * 1.32, cx, cy - r * 1.72), fill=spec.palette.accent, width=max(2, round(3 * scale))) else: draw_ellipse(draw, (cx - r * 1.08, cy - r * 1.1, cx + r * 1.08, cy - r * 0.1), spec.hair, INK, 5) + draw_ellipse(draw, (cx - r * 0.35, cy - r * 1.48, cx + r * 0.35, cy - r * 0.92), spec.hair, INK, 4) if not back: eye_y = cy - r * 0.04 - draw.line((cx - r * 0.52, eye_y, cx - r * 0.18, eye_y + 1), fill=DARK_INK, width=4) - draw.line((cx + r * 0.18, eye_y + 1, cx + r * 0.52, eye_y), fill=DARK_INK, width=4) - if spec.stem in ("unit-guan-yu", "unit-zhang-fei"): - draw.line((cx - r * 0.38, cy + r * 0.42, cx + r * 0.38, cy + r * 0.42), fill=spec.hair, width=8) - draw.line((cx, cy + r * 0.42, cx, cy + r * 1.05), fill=spec.hair, width=8) + brow = 5 if spec.role in ("lord", "officer", "spearman", "cavalry") else 4 + draw.line((cx - r * 0.58, eye_y - r * 0.14, cx - r * 0.14, eye_y - r * 0.04), fill=DARK_INK, width=brow) + draw.line((cx + r * 0.14, eye_y - r * 0.04, cx + r * 0.58, eye_y - r * 0.14), fill=DARK_INK, width=brow) + draw.line((cx - r * 0.48, eye_y + r * 0.05, cx - r * 0.22, eye_y + r * 0.06), fill=DARK_INK, width=3) + draw.line((cx + r * 0.22, eye_y + r * 0.06, cx + r * 0.48, eye_y + r * 0.05), fill=DARK_INK, width=3) + draw.line((cx + r * 0.02, cy + r * 0.05, cx - r * 0.06, cy + r * 0.25), fill=SKIN_DARK, width=3) + if spec.stem in ("unit-guan-yu", "unit-zhang-fei", "unit-cao-cao", "unit-lu-bu") or spec.role == "officer": + beard_color = spec.hair + if spec.stem == "unit-guan-yu": + beard_color = (31, 24, 18) + draw.line((cx - r * 0.44, cy + r * 0.39, cx + r * 0.44, cy + r * 0.39), fill=beard_color, width=max(6, round(7 * scale))) + draw.line((cx, cy + r * 0.42, cx, cy + r * 1.12), fill=beard_color, width=max(6, round(8 * scale))) + draw.line((cx - r * 0.22, cy + r * 0.56, cx - r * 0.1, cy + r * 0.95), fill=lighten(beard_color, 0.15), width=2) def draw_weapon( @@ -549,6 +645,7 @@ def draw_weapon( start = (cx + 45, bottom - 38) end = (cx - 38, bottom - 238) draw_limb(draw, start, end, (92, 59, 31), 11) + draw_limb(draw, (start[0], start[1] - 8), (end[0], end[1] + 8), (143, 91, 44), 4) blade = 30 if spec.weapon != "glaive" else 42 draw_poly( draw, @@ -562,8 +659,16 @@ def draw_weapon( INK, 5, ) + draw.line((end[0] - 6, end[1] - blade * 0.64, end[0] + 8, end[1] + 8), fill=(246, 249, 232), width=3) + if spec.weapon in ("spear", "glaive"): + tassel_color = (196, 38, 34) if spec.faction != "rebel" else spec.palette.accent + draw.line((end[0] - 17, end[1] + 22, end[0] - 32, end[1] + 48), fill=INK, width=7) + draw.line((end[0] - 17, end[1] + 22, end[0] - 32, end[1] + 48), fill=tassel_color, width=4) + draw.line((end[0] + 17, end[1] + 22, end[0] + 31, end[1] + 46), fill=INK, width=7) + draw.line((end[0] + 17, end[1] + 22, end[0] + 31, end[1] + 46), fill=lighten(tassel_color, 0.14), width=4) if spec.weapon == "glaive": draw_poly(draw, [(end[0] + 5, end[1] - 6), (end[0] + 40, end[1] + 22), (end[0] + 8, end[1] + 35)], METAL, INK, 5) + draw.line((end[0] + 11, end[1] + 1, end[0] + 31, end[1] + 20), fill=(246, 249, 232), width=3) elif spec.weapon in ("bow", "crossbow"): bow_cx = hand[0] + (side or 1) * 22 bow_cy = hand[1] - 22 @@ -575,6 +680,7 @@ def draw_weapon( bbox = (bow_cx - 42, bow_cy - 72, bow_cx + 42, bow_cy + 72) draw.arc(bbox, 255 if side < 0 else -75, 105 if side < 0 else 75, fill=INK, width=14) draw.arc(bbox, 255 if side < 0 else -75, 105 if side < 0 else 75, fill=(118, 68, 34), width=7) + draw.arc((bbox[0] + 7, bbox[1] + 7, bbox[2] - 7, bbox[3] - 7), 255 if side < 0 else -75, 105 if side < 0 else 75, fill=(193, 122, 55), width=3) draw.line((bow_cx, bow_cy - 68, bow_cx, bow_cy + 68), fill=METAL_DARK, width=3) draw_limb(draw, (bow_cx - 48 * (side or -1), bow_cy), (bow_cx + 62 * (side or 1), bow_cy - 8), METAL, 5) elif spec.weapon == "fan": @@ -589,6 +695,7 @@ def draw_weapon( if direction == "west": fan_points = [(2 * fan_cx - x, y) for x, y in fan_points] draw_poly(draw, fan_points, (230, 220, 172), INK, 6) + draw_poly(draw, [(fan_cx, fan_cy), fan_points[1], fan_points[2]], (246, 237, 190), (205, 184, 96), 2) for angle in (-36, -15, 8, 28): dx = math.cos(math.radians(angle)) * 66 dy = math.sin(math.radians(angle)) * 66 @@ -603,6 +710,7 @@ def draw_weapon( else: end = (hand[0] + 52, hand[1] - 74) draw_limb(draw, hand, end, METAL, 10) + draw_limb(draw, hand, end, (246, 249, 232), 4) draw_rect(draw, (hand[0] - 22, hand[1] - 8, hand[0] + 22, hand[1] + 8), spec.palette.accent, INK, 4) @@ -610,6 +718,8 @@ def draw_shield(draw: ImageDraw.ImageDraw, cx: float, cy: float, spec: UnitSpec) points = [(cx, cy - 42), (cx + 34, cy - 22), (cx + 24, cy + 38), (cx, cy + 54), (cx - 24, cy + 38), (cx - 34, cy - 22)] draw_poly(draw, points, spec.palette.armor, INK, 7) draw.line((cx, cy - 30, cx, cy + 38), fill=spec.palette.accent, width=5) + draw.line((cx - 20, cy - 14, cx + 20, cy + 2), fill=lighten(spec.palette.armor, 0.18), width=4) + draw_ellipse(draw, around((cx, cy + 6), 8), spec.palette.accent, INK, 3) def draw_banner(draw: ImageDraw.ImageDraw, x: float, y: float, spec: UnitSpec) -> None: @@ -617,6 +727,48 @@ def draw_banner(draw: ImageDraw.ImageDraw, x: float, y: float, spec: UnitSpec) - flag = [(x, y - 34), (x + 58, y - 22), (x + 46, y + 28), (x, y + 18)] draw_poly(draw, flag, spec.palette.accent, INK, 5) draw.line((x + 11, y - 13, x + 42, y - 7), fill=darken(spec.palette.accent, 0.35), width=5) + draw.line((x + 8, y + 8, x + 39, y + 12), fill=lighten(spec.palette.accent, 0.2), width=4) + + +def draw_armor_skirt(draw: ImageDraw.ImageDraw, cx: float, y: float, waist: float, scale: float, spec: UnitSpec) -> None: + plate_w = 20 * scale + for index, offset in enumerate((-0.56, 0, 0.56)): + x = cx + waist * offset + fill = spec.palette.armor if index != 1 else lighten(spec.palette.armor, 0.08) + points = [(x - plate_w, y - 8 * scale), (x + plate_w, y - 8 * scale), (x + plate_w * 0.74, y + 34 * scale), (x - plate_w * 0.74, y + 34 * scale)] + draw_poly(draw, points, fill, INK, 3) + draw.line((x, y - 3 * scale, x, y + 26 * scale), fill=darken(fill, 0.25), width=max(2, round(2 * scale))) + + +def draw_shoulder_guard(draw: ImageDraw.ImageDraw, x: float, y: float, scale: float, spec: UnitSpec, side: int) -> None: + box = (x - 22 * scale, y - 17 * scale, x + 22 * scale, y + 15 * scale) + draw_ellipse(draw, box, spec.palette.armor, INK, 4) + draw.line((x - side * 14 * scale, y - 6 * scale, x + side * 12 * scale, y + 4 * scale), fill=lighten(spec.palette.armor, 0.18), width=max(2, round(3 * scale))) + + +def draw_cuff(draw: ImageDraw.ImageDraw, hand: tuple[float, float], scale: float, spec: UnitSpec) -> None: + draw_rect( + draw, + (hand[0] - 14 * scale, hand[1] - 15 * scale, hand[0] + 14 * scale, hand[1] - 2 * scale), + darken(spec.palette.cloth, 0.14), + INK, + 2, + ) + + +def draw_quiver(draw: ImageDraw.ImageDraw, x: float, y: float, scale: float, spec: UnitSpec) -> None: + draw_round(draw, (x - 13 * scale, y - 24 * scale, x + 17 * scale, y + 50 * scale), LEATHER, INK, 4, 8) + for offset in (-9, 0, 9): + draw_limb(draw, (x + offset * scale, y - 42 * scale), (x + offset * scale + 8 * scale, y - 12 * scale), METAL, 3) + draw.line((x - 6 * scale, y - 12 * scale, x + 10 * scale, y + 32 * scale), fill=lighten(LEATHER, 0.18), width=max(2, round(3 * scale))) + + +def draw_saddle(draw: ImageDraw.ImageDraw, cx: float, y: float, scale: float, spec: UnitSpec, side: int) -> None: + draw_round(draw, (cx - 46 * scale, y - 19 * scale, cx + 46 * scale, y + 18 * scale), darken(spec.palette.cloth, 0.18), INK, 5, 10) + draw_round(draw, (cx - 32 * scale, y - 12 * scale, cx + 32 * scale, y + 12 * scale), spec.palette.accent, darken(spec.palette.accent, 0.34), 2, 8) + if side: + draw.line((cx - side * 14 * scale, y + 13 * scale, cx - side * 22 * scale, y + 43 * scale), fill=INK, width=max(3, round(4 * scale))) + draw.line((cx - side * 14 * scale, y + 13 * scale, cx - side * 22 * scale, y + 43 * scale), fill=LEATHER, width=max(2, round(2 * scale))) def draw_attack_effect(draw: ImageDraw.ImageDraw, spec: UnitSpec, direction: str, cx: float, bottom: float, frame_index: int, frame_count: int) -> None: diff --git a/src/assets/images/units/unit-cao-cao-actions.png b/src/assets/images/units/unit-cao-cao-actions.png index d9d7481..41c89af 100644 Binary files a/src/assets/images/units/unit-cao-cao-actions.png and b/src/assets/images/units/unit-cao-cao-actions.png differ diff --git a/src/assets/images/units/unit-cao-cao.png b/src/assets/images/units/unit-cao-cao.png index a3908d2..975ea07 100644 Binary files a/src/assets/images/units/unit-cao-cao.png and b/src/assets/images/units/unit-cao-cao.png differ diff --git a/src/assets/images/units/unit-fa-zheng-actions.png b/src/assets/images/units/unit-fa-zheng-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-fa-zheng-actions.png and b/src/assets/images/units/unit-fa-zheng-actions.png differ diff --git a/src/assets/images/units/unit-fa-zheng.png b/src/assets/images/units/unit-fa-zheng.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-fa-zheng.png and b/src/assets/images/units/unit-fa-zheng.png differ diff --git a/src/assets/images/units/unit-gong-zhi-actions.png b/src/assets/images/units/unit-gong-zhi-actions.png index e84f1fc..8fb1a70 100644 Binary files a/src/assets/images/units/unit-gong-zhi-actions.png and b/src/assets/images/units/unit-gong-zhi-actions.png differ diff --git a/src/assets/images/units/unit-gong-zhi.png b/src/assets/images/units/unit-gong-zhi.png index aff0c74..9fb3a17 100644 Binary files a/src/assets/images/units/unit-gong-zhi.png and b/src/assets/images/units/unit-gong-zhi.png differ diff --git a/src/assets/images/units/unit-guan-yu-actions.png b/src/assets/images/units/unit-guan-yu-actions.png index ec83751..7979f22 100644 Binary files a/src/assets/images/units/unit-guan-yu-actions.png and b/src/assets/images/units/unit-guan-yu-actions.png differ diff --git a/src/assets/images/units/unit-guan-yu.png b/src/assets/images/units/unit-guan-yu.png index 320fa3d..bbc3a1f 100644 Binary files a/src/assets/images/units/unit-guan-yu.png and b/src/assets/images/units/unit-guan-yu.png differ diff --git a/src/assets/images/units/unit-huang-quan-actions.png b/src/assets/images/units/unit-huang-quan-actions.png index e84f1fc..8fb1a70 100644 Binary files a/src/assets/images/units/unit-huang-quan-actions.png and b/src/assets/images/units/unit-huang-quan-actions.png differ diff --git a/src/assets/images/units/unit-huang-quan.png b/src/assets/images/units/unit-huang-quan.png index aff0c74..9fb3a17 100644 Binary files a/src/assets/images/units/unit-huang-quan.png and b/src/assets/images/units/unit-huang-quan.png differ diff --git a/src/assets/images/units/unit-huang-zhong-actions.png b/src/assets/images/units/unit-huang-zhong-actions.png index 79b4235..e8799d7 100644 Binary files a/src/assets/images/units/unit-huang-zhong-actions.png and b/src/assets/images/units/unit-huang-zhong-actions.png differ diff --git a/src/assets/images/units/unit-huang-zhong.png b/src/assets/images/units/unit-huang-zhong.png index 635d222..316026b 100644 Binary files a/src/assets/images/units/unit-huang-zhong.png and b/src/assets/images/units/unit-huang-zhong.png differ diff --git a/src/assets/images/units/unit-jiang-wei-actions.png b/src/assets/images/units/unit-jiang-wei-actions.png index da27601..7459b85 100644 Binary files a/src/assets/images/units/unit-jiang-wei-actions.png and b/src/assets/images/units/unit-jiang-wei-actions.png differ diff --git a/src/assets/images/units/unit-jiang-wei.png b/src/assets/images/units/unit-jiang-wei.png index 91f0842..216b1aa 100644 Binary files a/src/assets/images/units/unit-jiang-wei.png and b/src/assets/images/units/unit-jiang-wei.png differ diff --git a/src/assets/images/units/unit-li-yan-actions.png b/src/assets/images/units/unit-li-yan-actions.png index e84f1fc..8fb1a70 100644 Binary files a/src/assets/images/units/unit-li-yan-actions.png and b/src/assets/images/units/unit-li-yan-actions.png differ diff --git a/src/assets/images/units/unit-li-yan.png b/src/assets/images/units/unit-li-yan.png index aff0c74..9fb3a17 100644 Binary files a/src/assets/images/units/unit-li-yan.png and b/src/assets/images/units/unit-li-yan.png differ diff --git a/src/assets/images/units/unit-liu-bei-actions.png b/src/assets/images/units/unit-liu-bei-actions.png index 1dd9abe..55f6be1 100644 Binary files a/src/assets/images/units/unit-liu-bei-actions.png and b/src/assets/images/units/unit-liu-bei-actions.png differ diff --git a/src/assets/images/units/unit-liu-bei.png b/src/assets/images/units/unit-liu-bei.png index 10c2df7..137c760 100644 Binary files a/src/assets/images/units/unit-liu-bei.png and b/src/assets/images/units/unit-liu-bei.png differ diff --git a/src/assets/images/units/unit-lu-bu-actions.png b/src/assets/images/units/unit-lu-bu-actions.png index 38d3a8f..b873f08 100644 Binary files a/src/assets/images/units/unit-lu-bu-actions.png and b/src/assets/images/units/unit-lu-bu-actions.png differ diff --git a/src/assets/images/units/unit-lu-bu.png b/src/assets/images/units/unit-lu-bu.png index b42ecae..ea6f0c0 100644 Binary files a/src/assets/images/units/unit-lu-bu.png and b/src/assets/images/units/unit-lu-bu.png differ diff --git a/src/assets/images/units/unit-lu-meng-actions.png b/src/assets/images/units/unit-lu-meng-actions.png index 97b11ac..f395c19 100644 Binary files a/src/assets/images/units/unit-lu-meng-actions.png and b/src/assets/images/units/unit-lu-meng-actions.png differ diff --git a/src/assets/images/units/unit-lu-meng.png b/src/assets/images/units/unit-lu-meng.png index f18c348..6d1033f 100644 Binary files a/src/assets/images/units/unit-lu-meng.png and b/src/assets/images/units/unit-lu-meng.png differ diff --git a/src/assets/images/units/unit-ma-chao-actions.png b/src/assets/images/units/unit-ma-chao-actions.png index 19b15c1..6a0bcb6 100644 Binary files a/src/assets/images/units/unit-ma-chao-actions.png and b/src/assets/images/units/unit-ma-chao-actions.png differ diff --git a/src/assets/images/units/unit-ma-chao.png b/src/assets/images/units/unit-ma-chao.png index 34e9552..074a545 100644 Binary files a/src/assets/images/units/unit-ma-chao.png and b/src/assets/images/units/unit-ma-chao.png differ diff --git a/src/assets/images/units/unit-ma-dai-actions.png b/src/assets/images/units/unit-ma-dai-actions.png index 2fa2f68..54ece86 100644 Binary files a/src/assets/images/units/unit-ma-dai-actions.png and b/src/assets/images/units/unit-ma-dai-actions.png differ diff --git a/src/assets/images/units/unit-ma-dai.png b/src/assets/images/units/unit-ma-dai.png index 17a32d6..e98a204 100644 Binary files a/src/assets/images/units/unit-ma-dai.png and b/src/assets/images/units/unit-ma-dai.png differ diff --git a/src/assets/images/units/unit-ma-liang-actions.png b/src/assets/images/units/unit-ma-liang-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-ma-liang-actions.png and b/src/assets/images/units/unit-ma-liang-actions.png differ diff --git a/src/assets/images/units/unit-ma-liang.png b/src/assets/images/units/unit-ma-liang.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-ma-liang.png and b/src/assets/images/units/unit-ma-liang.png differ diff --git a/src/assets/images/units/unit-meng-huo-actions.png b/src/assets/images/units/unit-meng-huo-actions.png index d18cd33..b109a3a 100644 Binary files a/src/assets/images/units/unit-meng-huo-actions.png and b/src/assets/images/units/unit-meng-huo-actions.png differ diff --git a/src/assets/images/units/unit-meng-huo.png b/src/assets/images/units/unit-meng-huo.png index 1f79419..1799928 100644 Binary files a/src/assets/images/units/unit-meng-huo.png and b/src/assets/images/units/unit-meng-huo.png differ diff --git a/src/assets/images/units/unit-nanman-infantry-actions.png b/src/assets/images/units/unit-nanman-infantry-actions.png index 85fc41a..3f4259f 100644 Binary files a/src/assets/images/units/unit-nanman-infantry-actions.png and b/src/assets/images/units/unit-nanman-infantry-actions.png differ diff --git a/src/assets/images/units/unit-nanman-infantry-jungle-actions.png b/src/assets/images/units/unit-nanman-infantry-jungle-actions.png index 85fc41a..3f4259f 100644 Binary files a/src/assets/images/units/unit-nanman-infantry-jungle-actions.png and b/src/assets/images/units/unit-nanman-infantry-jungle-actions.png differ diff --git a/src/assets/images/units/unit-nanman-infantry-jungle.png b/src/assets/images/units/unit-nanman-infantry-jungle.png index fe441c0..fa7fafe 100644 Binary files a/src/assets/images/units/unit-nanman-infantry-jungle.png and b/src/assets/images/units/unit-nanman-infantry-jungle.png differ diff --git a/src/assets/images/units/unit-nanman-infantry-spear-actions.png b/src/assets/images/units/unit-nanman-infantry-spear-actions.png index 85fc41a..3f4259f 100644 Binary files a/src/assets/images/units/unit-nanman-infantry-spear-actions.png and b/src/assets/images/units/unit-nanman-infantry-spear-actions.png differ diff --git a/src/assets/images/units/unit-nanman-infantry-spear.png b/src/assets/images/units/unit-nanman-infantry-spear.png index fe441c0..fa7fafe 100644 Binary files a/src/assets/images/units/unit-nanman-infantry-spear.png and b/src/assets/images/units/unit-nanman-infantry-spear.png differ diff --git a/src/assets/images/units/unit-nanman-infantry.png b/src/assets/images/units/unit-nanman-infantry.png index fe441c0..fa7fafe 100644 Binary files a/src/assets/images/units/unit-nanman-infantry.png and b/src/assets/images/units/unit-nanman-infantry.png differ diff --git a/src/assets/images/units/unit-nanman-officer-actions.png b/src/assets/images/units/unit-nanman-officer-actions.png index 4836ed7..923ad72 100644 Binary files a/src/assets/images/units/unit-nanman-officer-actions.png and b/src/assets/images/units/unit-nanman-officer-actions.png differ diff --git a/src/assets/images/units/unit-nanman-officer-bronze-actions.png b/src/assets/images/units/unit-nanman-officer-bronze-actions.png index 9e8fd8a..6f75e35 100644 Binary files a/src/assets/images/units/unit-nanman-officer-bronze-actions.png and b/src/assets/images/units/unit-nanman-officer-bronze-actions.png differ diff --git a/src/assets/images/units/unit-nanman-officer-bronze.png b/src/assets/images/units/unit-nanman-officer-bronze.png index e9f7fb7..38488b2 100644 Binary files a/src/assets/images/units/unit-nanman-officer-bronze.png and b/src/assets/images/units/unit-nanman-officer-bronze.png differ diff --git a/src/assets/images/units/unit-nanman-officer-warlord-actions.png b/src/assets/images/units/unit-nanman-officer-warlord-actions.png index 6ef558e..74eb2dc 100644 Binary files a/src/assets/images/units/unit-nanman-officer-warlord-actions.png and b/src/assets/images/units/unit-nanman-officer-warlord-actions.png differ diff --git a/src/assets/images/units/unit-nanman-officer-warlord.png b/src/assets/images/units/unit-nanman-officer-warlord.png index 827bc1f..e532b57 100644 Binary files a/src/assets/images/units/unit-nanman-officer-warlord.png and b/src/assets/images/units/unit-nanman-officer-warlord.png differ diff --git a/src/assets/images/units/unit-nanman-officer.png b/src/assets/images/units/unit-nanman-officer.png index 877764d..d85e2a0 100644 Binary files a/src/assets/images/units/unit-nanman-officer.png and b/src/assets/images/units/unit-nanman-officer.png differ diff --git a/src/assets/images/units/unit-nanman-shaman-actions.png b/src/assets/images/units/unit-nanman-shaman-actions.png index 1361fdc..5502744 100644 Binary files a/src/assets/images/units/unit-nanman-shaman-actions.png and b/src/assets/images/units/unit-nanman-shaman-actions.png differ diff --git a/src/assets/images/units/unit-nanman-shaman-ember-actions.png b/src/assets/images/units/unit-nanman-shaman-ember-actions.png index 1361fdc..5502744 100644 Binary files a/src/assets/images/units/unit-nanman-shaman-ember-actions.png and b/src/assets/images/units/unit-nanman-shaman-ember-actions.png differ diff --git a/src/assets/images/units/unit-nanman-shaman-ember.png b/src/assets/images/units/unit-nanman-shaman-ember.png index 6354e20..f129eea 100644 Binary files a/src/assets/images/units/unit-nanman-shaman-ember.png and b/src/assets/images/units/unit-nanman-shaman-ember.png differ diff --git a/src/assets/images/units/unit-nanman-shaman-storm-actions.png b/src/assets/images/units/unit-nanman-shaman-storm-actions.png index 1361fdc..5502744 100644 Binary files a/src/assets/images/units/unit-nanman-shaman-storm-actions.png and b/src/assets/images/units/unit-nanman-shaman-storm-actions.png differ diff --git a/src/assets/images/units/unit-nanman-shaman-storm.png b/src/assets/images/units/unit-nanman-shaman-storm.png index 6354e20..f129eea 100644 Binary files a/src/assets/images/units/unit-nanman-shaman-storm.png and b/src/assets/images/units/unit-nanman-shaman-storm.png differ diff --git a/src/assets/images/units/unit-nanman-shaman.png b/src/assets/images/units/unit-nanman-shaman.png index 6354e20..f129eea 100644 Binary files a/src/assets/images/units/unit-nanman-shaman.png and b/src/assets/images/units/unit-nanman-shaman.png differ diff --git a/src/assets/images/units/unit-pang-tong-actions.png b/src/assets/images/units/unit-pang-tong-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-pang-tong-actions.png and b/src/assets/images/units/unit-pang-tong-actions.png differ diff --git a/src/assets/images/units/unit-pang-tong.png b/src/assets/images/units/unit-pang-tong.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-pang-tong.png and b/src/assets/images/units/unit-pang-tong.png differ diff --git a/src/assets/images/units/unit-rebel-actions.png b/src/assets/images/units/unit-rebel-actions.png index 0e529ff..84c71af 100644 Binary files a/src/assets/images/units/unit-rebel-actions.png and b/src/assets/images/units/unit-rebel-actions.png differ diff --git a/src/assets/images/units/unit-rebel-archer-actions.png b/src/assets/images/units/unit-rebel-archer-actions.png index 2dca943..8100546 100644 Binary files a/src/assets/images/units/unit-rebel-archer-actions.png and b/src/assets/images/units/unit-rebel-archer-actions.png differ diff --git a/src/assets/images/units/unit-rebel-archer-fire-actions.png b/src/assets/images/units/unit-rebel-archer-fire-actions.png index 2dca943..8100546 100644 Binary files a/src/assets/images/units/unit-rebel-archer-fire-actions.png and b/src/assets/images/units/unit-rebel-archer-fire-actions.png differ diff --git a/src/assets/images/units/unit-rebel-archer-fire.png b/src/assets/images/units/unit-rebel-archer-fire.png index 3b5afbe..f2220f3 100644 Binary files a/src/assets/images/units/unit-rebel-archer-fire.png and b/src/assets/images/units/unit-rebel-archer-fire.png differ diff --git a/src/assets/images/units/unit-rebel-archer-veteran-actions.png b/src/assets/images/units/unit-rebel-archer-veteran-actions.png index 477110b..e72dd5f 100644 Binary files a/src/assets/images/units/unit-rebel-archer-veteran-actions.png and b/src/assets/images/units/unit-rebel-archer-veteran-actions.png differ diff --git a/src/assets/images/units/unit-rebel-archer-veteran.png b/src/assets/images/units/unit-rebel-archer-veteran.png index f186a40..39562de 100644 Binary files a/src/assets/images/units/unit-rebel-archer-veteran.png and b/src/assets/images/units/unit-rebel-archer-veteran.png differ diff --git a/src/assets/images/units/unit-rebel-archer.png b/src/assets/images/units/unit-rebel-archer.png index 3b5afbe..f2220f3 100644 Binary files a/src/assets/images/units/unit-rebel-archer.png and b/src/assets/images/units/unit-rebel-archer.png differ diff --git a/src/assets/images/units/unit-rebel-cavalry-actions.png b/src/assets/images/units/unit-rebel-cavalry-actions.png index 33e4484..fe96c0c 100644 Binary files a/src/assets/images/units/unit-rebel-cavalry-actions.png and b/src/assets/images/units/unit-rebel-cavalry-actions.png differ diff --git a/src/assets/images/units/unit-rebel-cavalry-veteran-actions.png b/src/assets/images/units/unit-rebel-cavalry-veteran-actions.png index db25403..dcd94fa 100644 Binary files a/src/assets/images/units/unit-rebel-cavalry-veteran-actions.png and b/src/assets/images/units/unit-rebel-cavalry-veteran-actions.png differ diff --git a/src/assets/images/units/unit-rebel-cavalry-veteran.png b/src/assets/images/units/unit-rebel-cavalry-veteran.png index 61f18ab..aff25e6 100644 Binary files a/src/assets/images/units/unit-rebel-cavalry-veteran.png and b/src/assets/images/units/unit-rebel-cavalry-veteran.png differ diff --git a/src/assets/images/units/unit-rebel-cavalry.png b/src/assets/images/units/unit-rebel-cavalry.png index 8900fb2..9506ace 100644 Binary files a/src/assets/images/units/unit-rebel-cavalry.png and b/src/assets/images/units/unit-rebel-cavalry.png differ diff --git a/src/assets/images/units/unit-rebel-leader-actions.png b/src/assets/images/units/unit-rebel-leader-actions.png index 1316ae7..22c6d10 100644 Binary files a/src/assets/images/units/unit-rebel-leader-actions.png and b/src/assets/images/units/unit-rebel-leader-actions.png differ diff --git a/src/assets/images/units/unit-rebel-leader-warlord-actions.png b/src/assets/images/units/unit-rebel-leader-warlord-actions.png index 1c0a0f4..bad9a7d 100644 Binary files a/src/assets/images/units/unit-rebel-leader-warlord-actions.png and b/src/assets/images/units/unit-rebel-leader-warlord-actions.png differ diff --git a/src/assets/images/units/unit-rebel-leader-warlord.png b/src/assets/images/units/unit-rebel-leader-warlord.png index 84f6aff..f815682 100644 Binary files a/src/assets/images/units/unit-rebel-leader-warlord.png and b/src/assets/images/units/unit-rebel-leader-warlord.png differ diff --git a/src/assets/images/units/unit-rebel-leader.png b/src/assets/images/units/unit-rebel-leader.png index 791925f..ad2bd8d 100644 Binary files a/src/assets/images/units/unit-rebel-leader.png and b/src/assets/images/units/unit-rebel-leader.png differ diff --git a/src/assets/images/units/unit-rebel-ragged-actions.png b/src/assets/images/units/unit-rebel-ragged-actions.png index 0e529ff..84c71af 100644 Binary files a/src/assets/images/units/unit-rebel-ragged-actions.png and b/src/assets/images/units/unit-rebel-ragged-actions.png differ diff --git a/src/assets/images/units/unit-rebel-ragged.png b/src/assets/images/units/unit-rebel-ragged.png index b625efb..1cdc123 100644 Binary files a/src/assets/images/units/unit-rebel-ragged.png and b/src/assets/images/units/unit-rebel-ragged.png differ diff --git a/src/assets/images/units/unit-rebel.png b/src/assets/images/units/unit-rebel.png index b625efb..1cdc123 100644 Binary files a/src/assets/images/units/unit-rebel.png and b/src/assets/images/units/unit-rebel.png differ diff --git a/src/assets/images/units/unit-shu-archer-actions.png b/src/assets/images/units/unit-shu-archer-actions.png index 79b4235..e8799d7 100644 Binary files a/src/assets/images/units/unit-shu-archer-actions.png and b/src/assets/images/units/unit-shu-archer-actions.png differ diff --git a/src/assets/images/units/unit-shu-archer-longbow-actions.png b/src/assets/images/units/unit-shu-archer-longbow-actions.png index 79b4235..e8799d7 100644 Binary files a/src/assets/images/units/unit-shu-archer-longbow-actions.png and b/src/assets/images/units/unit-shu-archer-longbow-actions.png differ diff --git a/src/assets/images/units/unit-shu-archer-longbow.png b/src/assets/images/units/unit-shu-archer-longbow.png index 635d222..316026b 100644 Binary files a/src/assets/images/units/unit-shu-archer-longbow.png and b/src/assets/images/units/unit-shu-archer-longbow.png differ diff --git a/src/assets/images/units/unit-shu-archer-veteran-actions.png b/src/assets/images/units/unit-shu-archer-veteran-actions.png index e68a244..af4736c 100644 Binary files a/src/assets/images/units/unit-shu-archer-veteran-actions.png and b/src/assets/images/units/unit-shu-archer-veteran-actions.png differ diff --git a/src/assets/images/units/unit-shu-archer-veteran.png b/src/assets/images/units/unit-shu-archer-veteran.png index d508b2f..02b6547 100644 Binary files a/src/assets/images/units/unit-shu-archer-veteran.png and b/src/assets/images/units/unit-shu-archer-veteran.png differ diff --git a/src/assets/images/units/unit-shu-archer.png b/src/assets/images/units/unit-shu-archer.png index 635d222..316026b 100644 Binary files a/src/assets/images/units/unit-shu-archer.png and b/src/assets/images/units/unit-shu-archer.png differ diff --git a/src/assets/images/units/unit-shu-cavalry-actions.png b/src/assets/images/units/unit-shu-cavalry-actions.png index 2fa2f68..54ece86 100644 Binary files a/src/assets/images/units/unit-shu-cavalry-actions.png and b/src/assets/images/units/unit-shu-cavalry-actions.png differ diff --git a/src/assets/images/units/unit-shu-cavalry-scout-actions.png b/src/assets/images/units/unit-shu-cavalry-scout-actions.png index 2fa2f68..54ece86 100644 Binary files a/src/assets/images/units/unit-shu-cavalry-scout-actions.png and b/src/assets/images/units/unit-shu-cavalry-scout-actions.png differ diff --git a/src/assets/images/units/unit-shu-cavalry-scout.png b/src/assets/images/units/unit-shu-cavalry-scout.png index 17a32d6..e98a204 100644 Binary files a/src/assets/images/units/unit-shu-cavalry-scout.png and b/src/assets/images/units/unit-shu-cavalry-scout.png differ diff --git a/src/assets/images/units/unit-shu-cavalry-white-actions.png b/src/assets/images/units/unit-shu-cavalry-white-actions.png index 2218432..8fd14d7 100644 Binary files a/src/assets/images/units/unit-shu-cavalry-white-actions.png and b/src/assets/images/units/unit-shu-cavalry-white-actions.png differ diff --git a/src/assets/images/units/unit-shu-cavalry-white.png b/src/assets/images/units/unit-shu-cavalry-white.png index 61e926d..721ffaf 100644 Binary files a/src/assets/images/units/unit-shu-cavalry-white.png and b/src/assets/images/units/unit-shu-cavalry-white.png differ diff --git a/src/assets/images/units/unit-shu-cavalry.png b/src/assets/images/units/unit-shu-cavalry.png index 17a32d6..e98a204 100644 Binary files a/src/assets/images/units/unit-shu-cavalry.png and b/src/assets/images/units/unit-shu-cavalry.png differ diff --git a/src/assets/images/units/unit-shu-infantry-actions.png b/src/assets/images/units/unit-shu-infantry-actions.png index 0dc311c..1b1b114 100644 Binary files a/src/assets/images/units/unit-shu-infantry-actions.png and b/src/assets/images/units/unit-shu-infantry-actions.png differ diff --git a/src/assets/images/units/unit-shu-infantry-banner-actions.png b/src/assets/images/units/unit-shu-infantry-banner-actions.png index 8022e32..19b0236 100644 Binary files a/src/assets/images/units/unit-shu-infantry-banner-actions.png and b/src/assets/images/units/unit-shu-infantry-banner-actions.png differ diff --git a/src/assets/images/units/unit-shu-infantry-banner.png b/src/assets/images/units/unit-shu-infantry-banner.png index 2967d00..e8a724e 100644 Binary files a/src/assets/images/units/unit-shu-infantry-banner.png and b/src/assets/images/units/unit-shu-infantry-banner.png differ diff --git a/src/assets/images/units/unit-shu-infantry-guard-actions.png b/src/assets/images/units/unit-shu-infantry-guard-actions.png index 32f031c..2ca19d7 100644 Binary files a/src/assets/images/units/unit-shu-infantry-guard-actions.png and b/src/assets/images/units/unit-shu-infantry-guard-actions.png differ diff --git a/src/assets/images/units/unit-shu-infantry-guard.png b/src/assets/images/units/unit-shu-infantry-guard.png index ad66348..993a8a4 100644 Binary files a/src/assets/images/units/unit-shu-infantry-guard.png and b/src/assets/images/units/unit-shu-infantry-guard.png differ diff --git a/src/assets/images/units/unit-shu-infantry.png b/src/assets/images/units/unit-shu-infantry.png index 40d7780..535a451 100644 Binary files a/src/assets/images/units/unit-shu-infantry.png and b/src/assets/images/units/unit-shu-infantry.png differ diff --git a/src/assets/images/units/unit-shu-officer-actions.png b/src/assets/images/units/unit-shu-officer-actions.png index e84f1fc..8fb1a70 100644 Binary files a/src/assets/images/units/unit-shu-officer-actions.png and b/src/assets/images/units/unit-shu-officer-actions.png differ diff --git a/src/assets/images/units/unit-shu-officer-council-actions.png b/src/assets/images/units/unit-shu-officer-council-actions.png index e84f1fc..8fb1a70 100644 Binary files a/src/assets/images/units/unit-shu-officer-council-actions.png and b/src/assets/images/units/unit-shu-officer-council-actions.png differ diff --git a/src/assets/images/units/unit-shu-officer-council.png b/src/assets/images/units/unit-shu-officer-council.png index aff0c74..9fb3a17 100644 Binary files a/src/assets/images/units/unit-shu-officer-council.png and b/src/assets/images/units/unit-shu-officer-council.png differ diff --git a/src/assets/images/units/unit-shu-officer-vanguard-actions.png b/src/assets/images/units/unit-shu-officer-vanguard-actions.png index 1fac977..aefe5e3 100644 Binary files a/src/assets/images/units/unit-shu-officer-vanguard-actions.png and b/src/assets/images/units/unit-shu-officer-vanguard-actions.png differ diff --git a/src/assets/images/units/unit-shu-officer-vanguard.png b/src/assets/images/units/unit-shu-officer-vanguard.png index 0001d71..003bfec 100644 Binary files a/src/assets/images/units/unit-shu-officer-vanguard.png and b/src/assets/images/units/unit-shu-officer-vanguard.png differ diff --git a/src/assets/images/units/unit-shu-officer.png b/src/assets/images/units/unit-shu-officer.png index aff0c74..9fb3a17 100644 Binary files a/src/assets/images/units/unit-shu-officer.png and b/src/assets/images/units/unit-shu-officer.png differ diff --git a/src/assets/images/units/unit-shu-spearman-actions.png b/src/assets/images/units/unit-shu-spearman-actions.png index da27601..7459b85 100644 Binary files a/src/assets/images/units/unit-shu-spearman-actions.png and b/src/assets/images/units/unit-shu-spearman-actions.png differ diff --git a/src/assets/images/units/unit-shu-spearman-guard-actions.png b/src/assets/images/units/unit-shu-spearman-guard-actions.png index a226cd6..d56587d 100644 Binary files a/src/assets/images/units/unit-shu-spearman-guard-actions.png and b/src/assets/images/units/unit-shu-spearman-guard-actions.png differ diff --git a/src/assets/images/units/unit-shu-spearman-guard.png b/src/assets/images/units/unit-shu-spearman-guard.png index 0b91cd9..5e8deef 100644 Binary files a/src/assets/images/units/unit-shu-spearman-guard.png and b/src/assets/images/units/unit-shu-spearman-guard.png differ diff --git a/src/assets/images/units/unit-shu-spearman-veteran-actions.png b/src/assets/images/units/unit-shu-spearman-veteran-actions.png index a226cd6..d56587d 100644 Binary files a/src/assets/images/units/unit-shu-spearman-veteran-actions.png and b/src/assets/images/units/unit-shu-spearman-veteran-actions.png differ diff --git a/src/assets/images/units/unit-shu-spearman-veteran.png b/src/assets/images/units/unit-shu-spearman-veteran.png index 0b91cd9..5e8deef 100644 Binary files a/src/assets/images/units/unit-shu-spearman-veteran.png and b/src/assets/images/units/unit-shu-spearman-veteran.png differ diff --git a/src/assets/images/units/unit-shu-spearman.png b/src/assets/images/units/unit-shu-spearman.png index 91f0842..216b1aa 100644 Binary files a/src/assets/images/units/unit-shu-spearman.png and b/src/assets/images/units/unit-shu-spearman.png differ diff --git a/src/assets/images/units/unit-shu-strategist-actions.png b/src/assets/images/units/unit-shu-strategist-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-shu-strategist-actions.png and b/src/assets/images/units/unit-shu-strategist-actions.png differ diff --git a/src/assets/images/units/unit-shu-strategist-field-actions.png b/src/assets/images/units/unit-shu-strategist-field-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-shu-strategist-field-actions.png and b/src/assets/images/units/unit-shu-strategist-field-actions.png differ diff --git a/src/assets/images/units/unit-shu-strategist-field.png b/src/assets/images/units/unit-shu-strategist-field.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-shu-strategist-field.png and b/src/assets/images/units/unit-shu-strategist-field.png differ diff --git a/src/assets/images/units/unit-shu-strategist-white-actions.png b/src/assets/images/units/unit-shu-strategist-white-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-shu-strategist-white-actions.png and b/src/assets/images/units/unit-shu-strategist-white-actions.png differ diff --git a/src/assets/images/units/unit-shu-strategist-white.png b/src/assets/images/units/unit-shu-strategist-white.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-shu-strategist-white.png and b/src/assets/images/units/unit-shu-strategist-white.png differ diff --git a/src/assets/images/units/unit-shu-strategist.png b/src/assets/images/units/unit-shu-strategist.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-shu-strategist.png and b/src/assets/images/units/unit-shu-strategist.png differ diff --git a/src/assets/images/units/unit-sima-yi-actions.png b/src/assets/images/units/unit-sima-yi-actions.png index a58e9c0..a15c668 100644 Binary files a/src/assets/images/units/unit-sima-yi-actions.png and b/src/assets/images/units/unit-sima-yi-actions.png differ diff --git a/src/assets/images/units/unit-sima-yi.png b/src/assets/images/units/unit-sima-yi.png index 54cd724..ecbb7a6 100644 Binary files a/src/assets/images/units/unit-sima-yi.png and b/src/assets/images/units/unit-sima-yi.png differ diff --git a/src/assets/images/units/unit-wang-ping-actions.png b/src/assets/images/units/unit-wang-ping-actions.png index e84f1fc..8fb1a70 100644 Binary files a/src/assets/images/units/unit-wang-ping-actions.png and b/src/assets/images/units/unit-wang-ping-actions.png differ diff --git a/src/assets/images/units/unit-wang-ping.png b/src/assets/images/units/unit-wang-ping.png index aff0c74..9fb3a17 100644 Binary files a/src/assets/images/units/unit-wang-ping.png and b/src/assets/images/units/unit-wang-ping.png differ diff --git a/src/assets/images/units/unit-wei-archer-actions.png b/src/assets/images/units/unit-wei-archer-actions.png index 610755f..b3dfdf3 100644 Binary files a/src/assets/images/units/unit-wei-archer-actions.png and b/src/assets/images/units/unit-wei-archer-actions.png differ diff --git a/src/assets/images/units/unit-wei-archer-crossbow-actions.png b/src/assets/images/units/unit-wei-archer-crossbow-actions.png index c55de5a..a366d16 100644 Binary files a/src/assets/images/units/unit-wei-archer-crossbow-actions.png and b/src/assets/images/units/unit-wei-archer-crossbow-actions.png differ diff --git a/src/assets/images/units/unit-wei-archer-crossbow.png b/src/assets/images/units/unit-wei-archer-crossbow.png index 0aad26b..89b0b61 100644 Binary files a/src/assets/images/units/unit-wei-archer-crossbow.png and b/src/assets/images/units/unit-wei-archer-crossbow.png differ diff --git a/src/assets/images/units/unit-wei-archer-veteran-actions.png b/src/assets/images/units/unit-wei-archer-veteran-actions.png index 2ed4013..aa66424 100644 Binary files a/src/assets/images/units/unit-wei-archer-veteran-actions.png and b/src/assets/images/units/unit-wei-archer-veteran-actions.png differ diff --git a/src/assets/images/units/unit-wei-archer-veteran.png b/src/assets/images/units/unit-wei-archer-veteran.png index 089d10a..e0f4122 100644 Binary files a/src/assets/images/units/unit-wei-archer-veteran.png and b/src/assets/images/units/unit-wei-archer-veteran.png differ diff --git a/src/assets/images/units/unit-wei-archer.png b/src/assets/images/units/unit-wei-archer.png index 1fd15b1..ee3255a 100644 Binary files a/src/assets/images/units/unit-wei-archer.png and b/src/assets/images/units/unit-wei-archer.png differ diff --git a/src/assets/images/units/unit-wei-cavalry-actions.png b/src/assets/images/units/unit-wei-cavalry-actions.png index d76c28d..ca058db 100644 Binary files a/src/assets/images/units/unit-wei-cavalry-actions.png and b/src/assets/images/units/unit-wei-cavalry-actions.png differ diff --git a/src/assets/images/units/unit-wei-cavalry-elite-actions.png b/src/assets/images/units/unit-wei-cavalry-elite-actions.png index 3569f7e..530b0a2 100644 Binary files a/src/assets/images/units/unit-wei-cavalry-elite-actions.png and b/src/assets/images/units/unit-wei-cavalry-elite-actions.png differ diff --git a/src/assets/images/units/unit-wei-cavalry-elite.png b/src/assets/images/units/unit-wei-cavalry-elite.png index cf7a1b6..6588fa0 100644 Binary files a/src/assets/images/units/unit-wei-cavalry-elite.png and b/src/assets/images/units/unit-wei-cavalry-elite.png differ diff --git a/src/assets/images/units/unit-wei-cavalry-iron-actions.png b/src/assets/images/units/unit-wei-cavalry-iron-actions.png index 3569f7e..530b0a2 100644 Binary files a/src/assets/images/units/unit-wei-cavalry-iron-actions.png and b/src/assets/images/units/unit-wei-cavalry-iron-actions.png differ diff --git a/src/assets/images/units/unit-wei-cavalry-iron.png b/src/assets/images/units/unit-wei-cavalry-iron.png index cf7a1b6..6588fa0 100644 Binary files a/src/assets/images/units/unit-wei-cavalry-iron.png and b/src/assets/images/units/unit-wei-cavalry-iron.png differ diff --git a/src/assets/images/units/unit-wei-cavalry.png b/src/assets/images/units/unit-wei-cavalry.png index 081c3f2..e2ea49a 100644 Binary files a/src/assets/images/units/unit-wei-cavalry.png and b/src/assets/images/units/unit-wei-cavalry.png differ diff --git a/src/assets/images/units/unit-wei-infantry-actions.png b/src/assets/images/units/unit-wei-infantry-actions.png index 28ad405..22bf5d7 100644 Binary files a/src/assets/images/units/unit-wei-infantry-actions.png and b/src/assets/images/units/unit-wei-infantry-actions.png differ diff --git a/src/assets/images/units/unit-wei-infantry-shield-actions.png b/src/assets/images/units/unit-wei-infantry-shield-actions.png index 28ad405..22bf5d7 100644 Binary files a/src/assets/images/units/unit-wei-infantry-shield-actions.png and b/src/assets/images/units/unit-wei-infantry-shield-actions.png differ diff --git a/src/assets/images/units/unit-wei-infantry-shield.png b/src/assets/images/units/unit-wei-infantry-shield.png index af80f14..64f600a 100644 Binary files a/src/assets/images/units/unit-wei-infantry-shield.png and b/src/assets/images/units/unit-wei-infantry-shield.png differ diff --git a/src/assets/images/units/unit-wei-infantry-veteran-actions.png b/src/assets/images/units/unit-wei-infantry-veteran-actions.png index 8cb8d14..c2f7dfe 100644 Binary files a/src/assets/images/units/unit-wei-infantry-veteran-actions.png and b/src/assets/images/units/unit-wei-infantry-veteran-actions.png differ diff --git a/src/assets/images/units/unit-wei-infantry-veteran.png b/src/assets/images/units/unit-wei-infantry-veteran.png index d4aa1e3..5c720c9 100644 Binary files a/src/assets/images/units/unit-wei-infantry-veteran.png and b/src/assets/images/units/unit-wei-infantry-veteran.png differ diff --git a/src/assets/images/units/unit-wei-infantry.png b/src/assets/images/units/unit-wei-infantry.png index af80f14..64f600a 100644 Binary files a/src/assets/images/units/unit-wei-infantry.png and b/src/assets/images/units/unit-wei-infantry.png differ diff --git a/src/assets/images/units/unit-wei-officer-actions.png b/src/assets/images/units/unit-wei-officer-actions.png index 08011a0..3acae76 100644 Binary files a/src/assets/images/units/unit-wei-officer-actions.png and b/src/assets/images/units/unit-wei-officer-actions.png differ diff --git a/src/assets/images/units/unit-wei-officer-gate-actions.png b/src/assets/images/units/unit-wei-officer-gate-actions.png index 08011a0..3acae76 100644 Binary files a/src/assets/images/units/unit-wei-officer-gate-actions.png and b/src/assets/images/units/unit-wei-officer-gate-actions.png differ diff --git a/src/assets/images/units/unit-wei-officer-gate.png b/src/assets/images/units/unit-wei-officer-gate.png index 8007640..db0ef11 100644 Binary files a/src/assets/images/units/unit-wei-officer-gate.png and b/src/assets/images/units/unit-wei-officer-gate.png differ diff --git a/src/assets/images/units/unit-wei-officer-iron-actions.png b/src/assets/images/units/unit-wei-officer-iron-actions.png index 146f29a..910eae5 100644 Binary files a/src/assets/images/units/unit-wei-officer-iron-actions.png and b/src/assets/images/units/unit-wei-officer-iron-actions.png differ diff --git a/src/assets/images/units/unit-wei-officer-iron.png b/src/assets/images/units/unit-wei-officer-iron.png index 608cc14..28c928d 100644 Binary files a/src/assets/images/units/unit-wei-officer-iron.png and b/src/assets/images/units/unit-wei-officer-iron.png differ diff --git a/src/assets/images/units/unit-wei-officer.png b/src/assets/images/units/unit-wei-officer.png index 8007640..db0ef11 100644 Binary files a/src/assets/images/units/unit-wei-officer.png and b/src/assets/images/units/unit-wei-officer.png differ diff --git a/src/assets/images/units/unit-wei-strategist-actions.png b/src/assets/images/units/unit-wei-strategist-actions.png index a58e9c0..a15c668 100644 Binary files a/src/assets/images/units/unit-wei-strategist-actions.png and b/src/assets/images/units/unit-wei-strategist-actions.png differ diff --git a/src/assets/images/units/unit-wei-strategist-black-actions.png b/src/assets/images/units/unit-wei-strategist-black-actions.png index a58e9c0..a15c668 100644 Binary files a/src/assets/images/units/unit-wei-strategist-black-actions.png and b/src/assets/images/units/unit-wei-strategist-black-actions.png differ diff --git a/src/assets/images/units/unit-wei-strategist-black.png b/src/assets/images/units/unit-wei-strategist-black.png index 54cd724..ecbb7a6 100644 Binary files a/src/assets/images/units/unit-wei-strategist-black.png and b/src/assets/images/units/unit-wei-strategist-black.png differ diff --git a/src/assets/images/units/unit-wei-strategist-blue-actions.png b/src/assets/images/units/unit-wei-strategist-blue-actions.png index a58e9c0..a15c668 100644 Binary files a/src/assets/images/units/unit-wei-strategist-blue-actions.png and b/src/assets/images/units/unit-wei-strategist-blue-actions.png differ diff --git a/src/assets/images/units/unit-wei-strategist-blue.png b/src/assets/images/units/unit-wei-strategist-blue.png index 54cd724..ecbb7a6 100644 Binary files a/src/assets/images/units/unit-wei-strategist-blue.png and b/src/assets/images/units/unit-wei-strategist-blue.png differ diff --git a/src/assets/images/units/unit-wei-strategist.png b/src/assets/images/units/unit-wei-strategist.png index 54cd724..ecbb7a6 100644 Binary files a/src/assets/images/units/unit-wei-strategist.png and b/src/assets/images/units/unit-wei-strategist.png differ diff --git a/src/assets/images/units/unit-wei-yan-actions.png b/src/assets/images/units/unit-wei-yan-actions.png index b3f7956..6ae6020 100644 Binary files a/src/assets/images/units/unit-wei-yan-actions.png and b/src/assets/images/units/unit-wei-yan-actions.png differ diff --git a/src/assets/images/units/unit-wei-yan.png b/src/assets/images/units/unit-wei-yan.png index cb4177d..1759cfb 100644 Binary files a/src/assets/images/units/unit-wei-yan.png and b/src/assets/images/units/unit-wei-yan.png differ diff --git a/src/assets/images/units/unit-wu-archer-actions.png b/src/assets/images/units/unit-wu-archer-actions.png index 4cb4bc5..9413439 100644 Binary files a/src/assets/images/units/unit-wu-archer-actions.png and b/src/assets/images/units/unit-wu-archer-actions.png differ diff --git a/src/assets/images/units/unit-wu-archer-naval-actions.png b/src/assets/images/units/unit-wu-archer-naval-actions.png index 4cb4bc5..9413439 100644 Binary files a/src/assets/images/units/unit-wu-archer-naval-actions.png and b/src/assets/images/units/unit-wu-archer-naval-actions.png differ diff --git a/src/assets/images/units/unit-wu-archer-naval.png b/src/assets/images/units/unit-wu-archer-naval.png index 1e60130..81c5123 100644 Binary files a/src/assets/images/units/unit-wu-archer-naval.png and b/src/assets/images/units/unit-wu-archer-naval.png differ diff --git a/src/assets/images/units/unit-wu-archer-river-actions.png b/src/assets/images/units/unit-wu-archer-river-actions.png index 4cb4bc5..9413439 100644 Binary files a/src/assets/images/units/unit-wu-archer-river-actions.png and b/src/assets/images/units/unit-wu-archer-river-actions.png differ diff --git a/src/assets/images/units/unit-wu-archer-river.png b/src/assets/images/units/unit-wu-archer-river.png index 1e60130..81c5123 100644 Binary files a/src/assets/images/units/unit-wu-archer-river.png and b/src/assets/images/units/unit-wu-archer-river.png differ diff --git a/src/assets/images/units/unit-wu-archer.png b/src/assets/images/units/unit-wu-archer.png index 1e60130..81c5123 100644 Binary files a/src/assets/images/units/unit-wu-archer.png and b/src/assets/images/units/unit-wu-archer.png differ diff --git a/src/assets/images/units/unit-wu-cavalry-actions.png b/src/assets/images/units/unit-wu-cavalry-actions.png index bc205f0..515cb5f 100644 Binary files a/src/assets/images/units/unit-wu-cavalry-actions.png and b/src/assets/images/units/unit-wu-cavalry-actions.png differ diff --git a/src/assets/images/units/unit-wu-cavalry-elite-actions.png b/src/assets/images/units/unit-wu-cavalry-elite-actions.png index bd2415e..c429f2f 100644 Binary files a/src/assets/images/units/unit-wu-cavalry-elite-actions.png and b/src/assets/images/units/unit-wu-cavalry-elite-actions.png differ diff --git a/src/assets/images/units/unit-wu-cavalry-elite.png b/src/assets/images/units/unit-wu-cavalry-elite.png index bd9a122..83aad44 100644 Binary files a/src/assets/images/units/unit-wu-cavalry-elite.png and b/src/assets/images/units/unit-wu-cavalry-elite.png differ diff --git a/src/assets/images/units/unit-wu-cavalry-river-actions.png b/src/assets/images/units/unit-wu-cavalry-river-actions.png index bc205f0..515cb5f 100644 Binary files a/src/assets/images/units/unit-wu-cavalry-river-actions.png and b/src/assets/images/units/unit-wu-cavalry-river-actions.png differ diff --git a/src/assets/images/units/unit-wu-cavalry-river.png b/src/assets/images/units/unit-wu-cavalry-river.png index 819cc69..825622b 100644 Binary files a/src/assets/images/units/unit-wu-cavalry-river.png and b/src/assets/images/units/unit-wu-cavalry-river.png differ diff --git a/src/assets/images/units/unit-wu-cavalry.png b/src/assets/images/units/unit-wu-cavalry.png index 819cc69..825622b 100644 Binary files a/src/assets/images/units/unit-wu-cavalry.png and b/src/assets/images/units/unit-wu-cavalry.png differ diff --git a/src/assets/images/units/unit-wu-infantry-actions.png b/src/assets/images/units/unit-wu-infantry-actions.png index 97b11ac..f395c19 100644 Binary files a/src/assets/images/units/unit-wu-infantry-actions.png and b/src/assets/images/units/unit-wu-infantry-actions.png differ diff --git a/src/assets/images/units/unit-wu-infantry-marine-actions.png b/src/assets/images/units/unit-wu-infantry-marine-actions.png index 97b11ac..f395c19 100644 Binary files a/src/assets/images/units/unit-wu-infantry-marine-actions.png and b/src/assets/images/units/unit-wu-infantry-marine-actions.png differ diff --git a/src/assets/images/units/unit-wu-infantry-marine.png b/src/assets/images/units/unit-wu-infantry-marine.png index f18c348..6d1033f 100644 Binary files a/src/assets/images/units/unit-wu-infantry-marine.png and b/src/assets/images/units/unit-wu-infantry-marine.png differ diff --git a/src/assets/images/units/unit-wu-infantry-river-actions.png b/src/assets/images/units/unit-wu-infantry-river-actions.png index 97b11ac..f395c19 100644 Binary files a/src/assets/images/units/unit-wu-infantry-river-actions.png and b/src/assets/images/units/unit-wu-infantry-river-actions.png differ diff --git a/src/assets/images/units/unit-wu-infantry-river.png b/src/assets/images/units/unit-wu-infantry-river.png index f18c348..6d1033f 100644 Binary files a/src/assets/images/units/unit-wu-infantry-river.png and b/src/assets/images/units/unit-wu-infantry-river.png differ diff --git a/src/assets/images/units/unit-wu-infantry.png b/src/assets/images/units/unit-wu-infantry.png index f18c348..6d1033f 100644 Binary files a/src/assets/images/units/unit-wu-infantry.png and b/src/assets/images/units/unit-wu-infantry.png differ diff --git a/src/assets/images/units/unit-wu-officer-actions.png b/src/assets/images/units/unit-wu-officer-actions.png index ca32622..8b80676 100644 Binary files a/src/assets/images/units/unit-wu-officer-actions.png and b/src/assets/images/units/unit-wu-officer-actions.png differ diff --git a/src/assets/images/units/unit-wu-officer-harbor-actions.png b/src/assets/images/units/unit-wu-officer-harbor-actions.png index ca32622..8b80676 100644 Binary files a/src/assets/images/units/unit-wu-officer-harbor-actions.png and b/src/assets/images/units/unit-wu-officer-harbor-actions.png differ diff --git a/src/assets/images/units/unit-wu-officer-harbor.png b/src/assets/images/units/unit-wu-officer-harbor.png index e3ab9df..a178de1 100644 Binary files a/src/assets/images/units/unit-wu-officer-harbor.png and b/src/assets/images/units/unit-wu-officer-harbor.png differ diff --git a/src/assets/images/units/unit-wu-officer-river-actions.png b/src/assets/images/units/unit-wu-officer-river-actions.png index ca32622..8b80676 100644 Binary files a/src/assets/images/units/unit-wu-officer-river-actions.png and b/src/assets/images/units/unit-wu-officer-river-actions.png differ diff --git a/src/assets/images/units/unit-wu-officer-river.png b/src/assets/images/units/unit-wu-officer-river.png index e3ab9df..a178de1 100644 Binary files a/src/assets/images/units/unit-wu-officer-river.png and b/src/assets/images/units/unit-wu-officer-river.png differ diff --git a/src/assets/images/units/unit-wu-officer.png b/src/assets/images/units/unit-wu-officer.png index e3ab9df..a178de1 100644 Binary files a/src/assets/images/units/unit-wu-officer.png and b/src/assets/images/units/unit-wu-officer.png differ diff --git a/src/assets/images/units/unit-wu-strategist-actions.png b/src/assets/images/units/unit-wu-strategist-actions.png index 561d42d..fb2258f 100644 Binary files a/src/assets/images/units/unit-wu-strategist-actions.png and b/src/assets/images/units/unit-wu-strategist-actions.png differ diff --git a/src/assets/images/units/unit-wu-strategist-fire-actions.png b/src/assets/images/units/unit-wu-strategist-fire-actions.png index 561d42d..fb2258f 100644 Binary files a/src/assets/images/units/unit-wu-strategist-fire-actions.png and b/src/assets/images/units/unit-wu-strategist-fire-actions.png differ diff --git a/src/assets/images/units/unit-wu-strategist-fire.png b/src/assets/images/units/unit-wu-strategist-fire.png index 5a3328e..cde6b23 100644 Binary files a/src/assets/images/units/unit-wu-strategist-fire.png and b/src/assets/images/units/unit-wu-strategist-fire.png differ diff --git a/src/assets/images/units/unit-wu-strategist-river-actions.png b/src/assets/images/units/unit-wu-strategist-river-actions.png index 561d42d..fb2258f 100644 Binary files a/src/assets/images/units/unit-wu-strategist-river-actions.png and b/src/assets/images/units/unit-wu-strategist-river-actions.png differ diff --git a/src/assets/images/units/unit-wu-strategist-river.png b/src/assets/images/units/unit-wu-strategist-river.png index 5a3328e..cde6b23 100644 Binary files a/src/assets/images/units/unit-wu-strategist-river.png and b/src/assets/images/units/unit-wu-strategist-river.png differ diff --git a/src/assets/images/units/unit-wu-strategist.png b/src/assets/images/units/unit-wu-strategist.png index 5a3328e..cde6b23 100644 Binary files a/src/assets/images/units/unit-wu-strategist.png and b/src/assets/images/units/unit-wu-strategist.png differ diff --git a/src/assets/images/units/unit-wu-yi-actions.png b/src/assets/images/units/unit-wu-yi-actions.png index ca32622..8b80676 100644 Binary files a/src/assets/images/units/unit-wu-yi-actions.png and b/src/assets/images/units/unit-wu-yi-actions.png differ diff --git a/src/assets/images/units/unit-wu-yi.png b/src/assets/images/units/unit-wu-yi.png index e3ab9df..a178de1 100644 Binary files a/src/assets/images/units/unit-wu-yi.png and b/src/assets/images/units/unit-wu-yi.png differ diff --git a/src/assets/images/units/unit-yan-yan-actions.png b/src/assets/images/units/unit-yan-yan-actions.png index da27601..7459b85 100644 Binary files a/src/assets/images/units/unit-yan-yan-actions.png and b/src/assets/images/units/unit-yan-yan-actions.png differ diff --git a/src/assets/images/units/unit-yan-yan.png b/src/assets/images/units/unit-yan-yan.png index 91f0842..216b1aa 100644 Binary files a/src/assets/images/units/unit-yan-yan.png and b/src/assets/images/units/unit-yan-yan.png differ diff --git a/src/assets/images/units/unit-yi-ji-actions.png b/src/assets/images/units/unit-yi-ji-actions.png index e1d2470..5d35820 100644 Binary files a/src/assets/images/units/unit-yi-ji-actions.png and b/src/assets/images/units/unit-yi-ji-actions.png differ diff --git a/src/assets/images/units/unit-yi-ji.png b/src/assets/images/units/unit-yi-ji.png index e30dcaf..415e925 100644 Binary files a/src/assets/images/units/unit-yi-ji.png and b/src/assets/images/units/unit-yi-ji.png differ diff --git a/src/assets/images/units/unit-zhang-fei-actions.png b/src/assets/images/units/unit-zhang-fei-actions.png index 2dc4e99..618b54c 100644 Binary files a/src/assets/images/units/unit-zhang-fei-actions.png and b/src/assets/images/units/unit-zhang-fei-actions.png differ diff --git a/src/assets/images/units/unit-zhang-fei.png b/src/assets/images/units/unit-zhang-fei.png index 1c1f32c..4bbbdeb 100644 Binary files a/src/assets/images/units/unit-zhang-fei.png and b/src/assets/images/units/unit-zhang-fei.png differ diff --git a/src/assets/images/units/unit-zhao-yun-actions.png b/src/assets/images/units/unit-zhao-yun-actions.png index d177b8d..9f9bce6 100644 Binary files a/src/assets/images/units/unit-zhao-yun-actions.png and b/src/assets/images/units/unit-zhao-yun-actions.png differ diff --git a/src/assets/images/units/unit-zhao-yun.png b/src/assets/images/units/unit-zhao-yun.png index 9db9cdf..95f7c24 100644 Binary files a/src/assets/images/units/unit-zhao-yun.png and b/src/assets/images/units/unit-zhao-yun.png differ diff --git a/src/assets/images/units/unit-zhuge-liang-actions.png b/src/assets/images/units/unit-zhuge-liang-actions.png index 1a2c021..9235d31 100644 Binary files a/src/assets/images/units/unit-zhuge-liang-actions.png and b/src/assets/images/units/unit-zhuge-liang-actions.png differ diff --git a/src/assets/images/units/unit-zhuge-liang.png b/src/assets/images/units/unit-zhuge-liang.png index 2290b0a..e451bcb 100644 Binary files a/src/assets/images/units/unit-zhuge-liang.png and b/src/assets/images/units/unit-zhuge-liang.png differ diff --git a/src/game/scenes/BattleScene.ts b/src/game/scenes/BattleScene.ts index cf1cdba..45e0e05 100644 --- a/src/game/scenes/BattleScene.ts +++ b/src/game/scenes/BattleScene.ts @@ -3200,7 +3200,7 @@ export class BattleScene extends Phaser.Scene { private drawUnits() { battleUnits.forEach((unit) => { - const sizeRatio = unit.faction === 'ally' ? 1.16 : 1.1; + const sizeRatio = unit.faction === 'ally' ? 1.22 : 1.16; const textureBase = this.unitTextureKey(unit); const centerX = this.tileCenterX(unit.x); const centerY = this.tileCenterY(unit.y);