Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdcb8b2216 | ||
|
|
d47ddf9ad4 | ||
|
|
9e1732d2f8 | ||
|
|
d0e0792538 |
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"version": "2.0.2.3-rc.2",
|
||||
"generated_at": "2026-10-05T13:47:47.322399+00:00",
|
||||
"version": "2.0.2.1",
|
||||
"generated_at": "2026-10-04T11:39:56.824012+00:00",
|
||||
"algorithm": "sha256",
|
||||
"update_channels": true,
|
||||
"file_count": 278,
|
||||
"size_bytes": 55498582,
|
||||
"folder_sha256": "b1f12f33bc8775deef47799b715ad34428abf8f0aa16232aa800c8d1db07499c",
|
||||
"size_bytes": 55472293,
|
||||
"folder_sha256": "874bf6414e4d4f761bc9ccb25a6a8f46e2efdf35609887ea856b9b68b3c8c9a3",
|
||||
"core": [
|
||||
"extension.js",
|
||||
"menu.js",
|
||||
@@ -396,20 +396,20 @@
|
||||
"sha256": "d7f3da55f8b2e8bf77ace03bd4911497a4abb9e1f942555f7685337801278205"
|
||||
},
|
||||
"extension.css": {
|
||||
"size": 55501,
|
||||
"sha256": "0907c22921f33d3180378dfcec4cdea793227d325c281d5f3a3f698c83b42b85"
|
||||
"size": 51738,
|
||||
"sha256": "356aa9473ab72ad43850c13451fd15a25c6ce2d93678cd0dcba5568d10443b40"
|
||||
},
|
||||
"extension.js": {
|
||||
"size": 15464,
|
||||
"sha256": "11db6f84273c2928db92b42d9ab1f2def6e2f796393119f7f7a0177ad2b9d818"
|
||||
"size": 15459,
|
||||
"sha256": "9656c118dfc744e89fef826d75fc1d58515507021ad1e710d7fd6d479cc631ee"
|
||||
},
|
||||
"function.js": {
|
||||
"size": 36025,
|
||||
"sha256": "39a02025adc2459c93c4f5539c7c3a9b70c0d344284d43252af8be52e8565c33"
|
||||
"size": 33746,
|
||||
"sha256": "df1aa3102a214986723af365da1029485680519d355a1ff88973eb36f8a6f909"
|
||||
},
|
||||
"menu.js": {
|
||||
"size": 29114,
|
||||
"sha256": "bd54fda361282e08102d6d7557b21216fb74198c3db9d164405b12f74fcc7f3b"
|
||||
"size": 24566,
|
||||
"sha256": "d6f1fb89707de3558ca9a00814a1d79f12f5799cd85328e764e02a66e4ffba5e"
|
||||
},
|
||||
"pve/audio/dead/十二生肖/chenlong.mp3": {
|
||||
"size": 68757,
|
||||
@@ -1300,12 +1300,12 @@
|
||||
"sha256": "41914d7d542ddfb93c89aefffc245869d63a9fb2f52293df8e6667009832afd8"
|
||||
},
|
||||
"update.js": {
|
||||
"size": 74815,
|
||||
"sha256": "8f9bb238f87e20f7874154a00e0e5d05c39df80a14d83e2d1a2ca34558b66455"
|
||||
"size": 60005,
|
||||
"sha256": "f809d6e3ea5114f78a0773314c23b4120ccbd763b1f2f0f1f400753287af76f7"
|
||||
},
|
||||
"update.txt": {
|
||||
"size": 4787,
|
||||
"sha256": "cba4f2eb6c04eee700423c0336311a86019666232763100d0a33cca5fe09c824"
|
||||
"size": 3903,
|
||||
"sha256": "8ef4a71189bdfc4068e0ebab27dad13f7551354f72a0c6ed51d77b62c8c06fb2"
|
||||
},
|
||||
"voices.js": {
|
||||
"size": 1711,
|
||||
@@ -1565,23 +1565,23 @@
|
||||
},
|
||||
"extension.css": {
|
||||
"type": "file",
|
||||
"size": 55501,
|
||||
"sha256": "0907c22921f33d3180378dfcec4cdea793227d325c281d5f3a3f698c83b42b85"
|
||||
"size": 51738,
|
||||
"sha256": "356aa9473ab72ad43850c13451fd15a25c6ce2d93678cd0dcba5568d10443b40"
|
||||
},
|
||||
"extension.js": {
|
||||
"type": "file",
|
||||
"size": 15464,
|
||||
"sha256": "11db6f84273c2928db92b42d9ab1f2def6e2f796393119f7f7a0177ad2b9d818"
|
||||
"size": 15459,
|
||||
"sha256": "9656c118dfc744e89fef826d75fc1d58515507021ad1e710d7fd6d479cc631ee"
|
||||
},
|
||||
"function.js": {
|
||||
"type": "file",
|
||||
"size": 36025,
|
||||
"sha256": "39a02025adc2459c93c4f5539c7c3a9b70c0d344284d43252af8be52e8565c33"
|
||||
"size": 33746,
|
||||
"sha256": "df1aa3102a214986723af365da1029485680519d355a1ff88973eb36f8a6f909"
|
||||
},
|
||||
"menu.js": {
|
||||
"type": "file",
|
||||
"size": 29114,
|
||||
"sha256": "bd54fda361282e08102d6d7557b21216fb74198c3db9d164405b12f74fcc7f3b"
|
||||
"size": 24566,
|
||||
"sha256": "d6f1fb89707de3558ca9a00814a1d79f12f5799cd85328e764e02a66e4ffba5e"
|
||||
},
|
||||
"pve": {
|
||||
"type": "directory",
|
||||
@@ -2825,13 +2825,13 @@
|
||||
},
|
||||
"update.js": {
|
||||
"type": "file",
|
||||
"size": 74815,
|
||||
"sha256": "8f9bb238f87e20f7874154a00e0e5d05c39df80a14d83e2d1a2ca34558b66455"
|
||||
"size": 60005,
|
||||
"sha256": "f809d6e3ea5114f78a0773314c23b4120ccbd763b1f2f0f1f400753287af76f7"
|
||||
},
|
||||
"update.txt": {
|
||||
"type": "file",
|
||||
"size": 4787,
|
||||
"sha256": "cba4f2eb6c04eee700423c0336311a86019666232763100d0a33cca5fe09c824"
|
||||
"size": 3903,
|
||||
"sha256": "8ef4a71189bdfc4068e0ebab27dad13f7551354f72a0c6ed51d77b62c8c06fb2"
|
||||
},
|
||||
"voices.js": {
|
||||
"type": "file",
|
||||
@@ -2975,8 +2975,8 @@
|
||||
"title": "梦三模式",
|
||||
"entry": "mengsan/register.js",
|
||||
"manifest": "dist/modules/mengsan.json",
|
||||
"file_count": 458,
|
||||
"size_bytes": 145105480,
|
||||
"file_count": 457,
|
||||
"size_bytes": 705642606,
|
||||
"legacy_manifest": "dist/modules/mengsan.legacy.json"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "2.0.2.3-rc.2",
|
||||
"version": "2.0.2.1",
|
||||
"module_id": "mengsan",
|
||||
"snapshot": "legacy",
|
||||
"files": [
|
||||
@@ -309,7 +309,6 @@
|
||||
"mengsan/battle/battle-resources.js",
|
||||
"mengsan/battle/battle-session.js",
|
||||
"mengsan/battle/battle-settlement.js",
|
||||
"mengsan/battle/camps.js",
|
||||
"mengsan/battle/combat-rules.js",
|
||||
"mengsan/battle/death-blow.js",
|
||||
"mengsan/battle/engine-session.js",
|
||||
|
||||
@@ -1096,109 +1096,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* 更新设置:沿用选择窗口材质,两个选项与取消/确认按钮适配窄屏。 */
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] {
|
||||
--setting-muted: #d1c9bc;
|
||||
--setting-focus: #ffe2a0;
|
||||
padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
|
||||
max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)) !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog {
|
||||
width: min(600px, 100%) !important;
|
||||
max-height: calc(100vh - 32px) !important;
|
||||
max-height: calc(100dvh - max(12px, env(safe-area-inset-top)) - max(12px, env(safe-area-inset-bottom))) !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-title,
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-intro,
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-controls {
|
||||
flex: none !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-intro,
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-tag,
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-description {
|
||||
color: var(--setting-muted) !important;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-options {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
|
||||
min-height: 0 !important;
|
||||
gap: 12px !important;
|
||||
padding: 18px !important;
|
||||
overflow-x: hidden !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-card {
|
||||
min-height: 170px !important;
|
||||
padding: 38px 18px 18px !important;
|
||||
transform: none !important;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-order {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-name {
|
||||
margin-top: 0 !important;
|
||||
font-size: 25px !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-description {
|
||||
margin-top: 12px !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-controls {
|
||||
gap: 12px !important;
|
||||
padding: 0 18px 18px !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-confirm {
|
||||
flex: 1 !important;
|
||||
min-width: 0 !important;
|
||||
min-height: 48px !important;
|
||||
height: auto !important;
|
||||
padding: 10px 8px !important;
|
||||
font-size: 16px !important;
|
||||
line-height: 1.4 !important;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-cancel {
|
||||
background: rgba(255, 255, 255, 0.04) !important;
|
||||
border-color: rgba(232, 190, 99, 0.4) !important;
|
||||
color: var(--setting-muted) !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] button:focus-visible {
|
||||
outline: 2px solid var(--setting-focus) !important;
|
||||
outline-offset: 2px !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] button:active:not(:disabled) {
|
||||
opacity: 0.85 !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-confirm:disabled {
|
||||
opacity: 0.5 !important;
|
||||
cursor: default !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 520px) {
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-options {
|
||||
grid-template-columns: minmax(0, 1fr) !important;
|
||||
padding: 12px !important;
|
||||
}
|
||||
|
||||
.shuYing-option-dialog-mask[data-variant="settings"] .shuYing-option-dialog-card {
|
||||
min-height: 140px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* 天书对局羁绊入口与概览:不依赖十周年 UI 节点,原版和扩展 UI 共用。 */
|
||||
.shuYing-bond-overview-button {
|
||||
all: unset !important;
|
||||
|
||||
@@ -5,7 +5,7 @@ import initShuYingMenu from "./menu.js";
|
||||
|
||||
export const type = "extension";
|
||||
export let shuYing = new Object();
|
||||
const shuYingLocalVersion = "2.0.2.3-rc.2";
|
||||
const shuYingLocalVersion = "2.0.2.1";
|
||||
|
||||
shuYing.name = "术樱包";
|
||||
shuYing.editable = false;
|
||||
|
||||
@@ -225,8 +225,7 @@ export default function initFunction(lib, game, ui, get, ai, _status, shuYing =
|
||||
};
|
||||
|
||||
// 创建可复用的对局单选界面;单击选中卡片,确认后返回对应键值。
|
||||
shuYing.chooseSingleOptionDialog = ({ title = "请选择", intro = "", options = [], defaultKey = null,
|
||||
currentKey = null, cancelable = false, variant = "default", confirmText = "确定" } = {}) => {
|
||||
shuYing.chooseSingleOptionDialog = ({ title = "请选择", intro = "", options = [], defaultKey = null } = {}) => {
|
||||
return new Promise(resolve => {
|
||||
const items = options.map(option => typeof option == "string" ? { key: option, name: option } : option)
|
||||
.filter(option => option?.key);
|
||||
@@ -241,26 +240,18 @@ export default function initFunction(lib, game, ui, get, ai, _status, shuYing =
|
||||
if (parent) parent.appendChild(node);
|
||||
return node;
|
||||
};
|
||||
const previousFocus = document.activeElement;
|
||||
const mask = createNode("div", "shuYing-option-dialog-mask", null, document.body);
|
||||
mask.dataset.variant = variant;
|
||||
const dialog = createNode("div", "shuYing-option-dialog", null, mask);
|
||||
dialog.setAttribute("role", "dialog");
|
||||
dialog.setAttribute("aria-modal", "true");
|
||||
dialog.setAttribute("aria-label", title);
|
||||
createNode("div", "shuYing-option-dialog-title", title, dialog);
|
||||
if (intro) createNode("div", "shuYing-option-dialog-intro", intro, dialog);
|
||||
const optionArea = createNode("div", "shuYing-option-dialog-options", null, dialog);
|
||||
const controls = createNode("div", "shuYing-option-dialog-controls", null, dialog);
|
||||
let closed = false;
|
||||
let onKeydown = null;
|
||||
let selectedKey = defaultKey && items.some(item => item.key == defaultKey) ? defaultKey : items[0].key;
|
||||
const finish = key => {
|
||||
if (closed) return;
|
||||
closed = true;
|
||||
if (onKeydown) document.removeEventListener("keydown", onKeydown, true);
|
||||
mask.remove();
|
||||
if (cancelable && previousFocus?.isConnected) previousFocus.focus?.({ preventScroll: true });
|
||||
resolve(key);
|
||||
};
|
||||
const refreshSelection = () => {
|
||||
@@ -269,7 +260,6 @@ export default function initFunction(lib, game, ui, get, ai, _status, shuYing =
|
||||
card.classList.toggle("selected", selected);
|
||||
card.setAttribute("aria-pressed", String(selected));
|
||||
});
|
||||
confirm.disabled = currentKey != null && selectedKey == currentKey;
|
||||
};
|
||||
items.forEach((option, index) => {
|
||||
const card = createNode("button", "shuYing-option-dialog-card", null, optionArea);
|
||||
@@ -286,44 +276,14 @@ export default function initFunction(lib, game, ui, get, ai, _status, shuYing =
|
||||
refreshSelection();
|
||||
});
|
||||
});
|
||||
if (cancelable) {
|
||||
const cancel = createNode("button", "shuYing-option-dialog-confirm shuYing-option-dialog-cancel", "取消", controls);
|
||||
cancel.type = "button";
|
||||
cancel.addEventListener("click", event => { event.stopPropagation(); finish(null); });
|
||||
}
|
||||
const confirm = createNode("button", "shuYing-option-dialog-confirm", confirmText, controls);
|
||||
const confirm = createNode("button", "shuYing-option-dialog-confirm", "确定", controls);
|
||||
confirm.type = "button";
|
||||
confirm.addEventListener("click", event => {
|
||||
event.stopPropagation();
|
||||
if (!confirm.disabled) finish(selectedKey);
|
||||
});
|
||||
mask.addEventListener("click", event => {
|
||||
event.stopPropagation();
|
||||
if (cancelable && event.target == mask) finish(null);
|
||||
finish(selectedKey);
|
||||
});
|
||||
mask.addEventListener("click", event => event.stopPropagation());
|
||||
dialog.addEventListener("click", event => event.stopPropagation());
|
||||
if (cancelable) {
|
||||
dialog.addEventListener("keydown", event => event.stopPropagation());
|
||||
onKeydown = event => {
|
||||
if (event.key == "Escape") {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
finish(null);
|
||||
}
|
||||
else if (event.key == "Tab") {
|
||||
const buttons = Array.from(dialog.querySelectorAll("button:not(:disabled)"));
|
||||
const first = buttons[0], last = buttons[buttons.length - 1];
|
||||
if (!dialog.contains(document.activeElement)
|
||||
|| event.shiftKey && document.activeElement == first
|
||||
|| !event.shiftKey && document.activeElement == last) {
|
||||
event.preventDefault();
|
||||
(event.shiftKey ? last : first)?.focus();
|
||||
}
|
||||
event.stopPropagation();
|
||||
}
|
||||
};
|
||||
document.addEventListener("keydown", onKeydown, true);
|
||||
}
|
||||
refreshSelection();
|
||||
const initial = Array.from(optionArea.querySelectorAll(".shuYing-option-dialog-card")).find(node => node.dataset.key == selectedKey)
|
||||
|| optionArea.querySelector(".shuYing-option-dialog-card");
|
||||
|
||||
@@ -2,22 +2,6 @@
|
||||
|
||||
`register.js` 是扩展加载入口,`mode.js` 负责组装模式、注册技能并连接各领域模块,`config.js` 提供模式配置。发布器和外部扩展应继续从 `register.js` 加载,避免依赖内部文件路径。
|
||||
|
||||
梦三独立组装模式,不加载或继承身份模式。敌我关系统一由
|
||||
`battle/camps.js` 读取角色的 `storage.mengsanCamp_shuying`:主角、支援和
|
||||
羁绊助战为 `ally`,怪物及敌方援军为 `enemy`。`side` 与梦三专属的
|
||||
`identity` 标记只用于核心及界面兼容,不赋予主公、忠臣或反贼规则。
|
||||
|
||||
技能应使用 `isFriendOf` / `isEnemyOf`、`getFriends` / `getEnemies` 或
|
||||
`get.attitude` 判断敌我。基础态度为同阵营及自身 `+8`、对立阵营 `-8`,
|
||||
未设置有效阵营的其他对象为 `0`;剧情切换阵营后按新阵营判断。
|
||||
`get.effect`、`get.effect_use`、`get.damageEffect`、`get.recoverEffect` 和
|
||||
牌价值、技能效果修正继续使用核心算法,并通过上述态度计算行动收益。
|
||||
有益效果不一律视为正收益,伤害也不一律视为负收益,仍遵循技能自己的 AI 配置。
|
||||
|
||||
梦三不启用主公技,初始技能及动态授予技能均按此限制处理。阵营始终公开,
|
||||
出牌或技能的 `logAi` / `addExpose` 调用不推断隐藏身份;击杀不附加身份奖惩,
|
||||
胜负与奖励沿用梦三关卡和结算流程。
|
||||
|
||||
| 目录 | 职责 |
|
||||
| --- | --- |
|
||||
| `battle/` | 战斗会话、回合、结算、费用与通用战斗效果 |
|
||||
|
||||
@@ -5,11 +5,9 @@
|
||||
用户于 2026-10-02 指定以截图 `C:\Users\Diuse\Downloads\Ai\49.png` 中“防御”为同系列基准。
|
||||
|
||||
- 后续新增及转换的梦三卡牌使用约 5:7 的完整竖幅立绘;手牌常规尺寸 112×156,窄屏 82×114。禁止直接使用横向拆包图作为运行时卡面,也不要拉伸横图。
|
||||
- 运行时 PNG 限制在 480×672 像素以内、单张不超过 300 KiB;5:7 立绘统一缩小到 480×672,现有小图不放大,其他旧比例等比例缩小。生成的大原图必须先优化再接入,不裁切、不拉伸;保留透明度、文件名和引用。使用 `node extension/术樱包/mengsan/tools/optimize-card-art.cjs --all` 批量处理,或将 `--all` 换成单张实际卡牌 PNG 的绝对路径;需要 sharp,可由 `MENGSAN_SHARP_MODULE` 指定模块位置。共享牌的 `record-art.py` 已在写入流程中调用优化器。
|
||||
- 批量优化只处理 `mengsan_*.png` 运行时卡牌,参考原件如 `wound-original.png` 不参与。
|
||||
- 画风:泛黄宣纸、黑褐水墨、飞白与淡赭色、中国古代人物或兵器;根据卡牌效果独立安排竖幅构图。拆包图只作题材参考,不修改拆包原件。
|
||||
- 立绘不绘制名称、费用、花色、强化角标或边框。左上花色点数、左侧中段费用、右下名称由游戏原生节点和梦三样式叠加;左侧信息栏和右下名称需留空间。
|
||||
- 卡牌定义使用 `fullimage: true` 与明确的 `image` 路径,不使用横图 `fullskin`。手牌叠层按实际注册定义的 `fullimage: true` 及 `ext:术樱包/mengsan/assets/cards/牌名.png` 自动设置 `data-mengsan-local-art="full"`;四字及以上的翻译名称自动标记为长名,常规和窄屏样式统一,不再维护逐牌 CSS 名单。保持 `cover`,不使用 `100% 100%` 拉伸。
|
||||
- 卡牌定义使用 `fullimage: true` 与明确的 `image` 路径,不使用横图 `fullskin`。`mengsan_ic_`、`mengsan_colorless_`、`mengsan_event_`、`mengsan_status_`、`mengsan_curse_` 已按前缀接入 `ui/hand/style.css` 的本地完整卡面选择器;其他命名的新增卡牌须单独接入,长牌名同时加入长名称窄屏规则。保持 `cover`,不使用 `100% 100%` 拉伸。
|
||||
- 费用和强化角标继续使用现有 `data-*` 与伪元素,避免向卡牌子节点写入额外文字而触发十周年 UI 扫描。
|
||||
- 不改变卡牌费用、效果、强化、奖励与存档数据;不修改全局标准/军争牌或十周年 UI。
|
||||
- 接入后检查完整立绘、花色/费用/名称、扇形叠牌、悬停放大和窄屏。文件检查、隔离行为测试及预览不代表实机验收。
|
||||
|
||||
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 3.3 MiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 255 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 261 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 269 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 3.2 MiB |
|
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 3.3 MiB |
|
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 2.9 MiB |