Compare commits
6 Commits
29822be2ad
...
af3fb2b621
| Author | SHA1 | Date |
|---|---|---|
|
|
af3fb2b621 | |
|
|
dbb4888299 | |
|
|
0620ec5477 | |
|
|
f2ae6b9e4f | |
|
|
acd9b09605 | |
|
|
26934c9213 |
|
|
@ -5,6 +5,10 @@
|
||||||
appsettings.Production.json
|
appsettings.Production.json
|
||||||
secrets.json
|
secrets.json
|
||||||
|
|
||||||
|
# --- Python ---
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
# --- .NET ---
|
# --- .NET ---
|
||||||
bin/
|
bin/
|
||||||
obj/
|
obj/
|
||||||
|
|
@ -46,6 +50,10 @@ client/Assets/StreamingAssets/aa/*
|
||||||
client/*.log
|
client/*.log
|
||||||
client/TestResults*.xml
|
client/TestResults*.xml
|
||||||
|
|
||||||
|
# Локальный 4x-арт (251 МБ, кодом не используется) — не коммитим
|
||||||
|
client/Assets/Vanguard/Resources/CardArt_4x/
|
||||||
|
client/Assets/Vanguard/Resources/CardArt_4x.meta
|
||||||
|
|
||||||
# --- Unity прочее ---
|
# --- Unity прочее ---
|
||||||
*.unitypackage
|
*.unitypackage
|
||||||
crashlytics-build.properties
|
crashlytics-build.properties
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,8 @@ description: Use for any work in the Vanguard ReMaster repository: Cardfight!! V
|
||||||
- **После блока:** клиентские EditMode, серверные тесты (на home), `validate`,
|
- **После блока:** клиентские EditMode, серверные тесты (на home), `validate`,
|
||||||
`translations check`, коммит и push.
|
`translations check`, коммит и push.
|
||||||
- **Сначала план, потом код:** новые изменения проходят анализ DeepSeek с
|
- **Сначала план, потом код:** новые изменения проходят анализ DeepSeek с
|
||||||
записью в `docs/Development/IMPLEMENTATION_PLAN.md`, затем реализацию Kimi.
|
записью в `docs/Development/IMPLEMENTATION_PLAN.md`, затем реализацию —
|
||||||
|
её тоже выполняет DeepSeek, отдельным проходом по готовому плану.
|
||||||
Передача — через файлы и Git, не через память модели. Детали —
|
Передача — через файлы и Git, не через память модели. Детали —
|
||||||
`docs/Development/AGENT-WORKFLOW.md`.
|
`docs/Development/AGENT-WORKFLOW.md`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,12 @@
|
||||||
|
|
||||||
- **[D]** 3D-сцена, отдельные сцены Login/Lobby/DeckBuilder/Battle; HUD —
|
- **[D]** 3D-сцена, отдельные сцены Login/Lobby/DeckBuilder/Battle; HUD —
|
||||||
uGUI; reference 1920×1080.
|
uGUI; reference 1920×1080.
|
||||||
|
- **[D]** Анимации описываются для локального игрока. Для противника
|
||||||
|
применяются те же правила, но зеркально с его стороны поля: направление,
|
||||||
|
сторона появления карты, наклон веера и порядок перекрытия зеркальны;
|
||||||
|
камера также отражается относительно центра стола. Отдельные
|
||||||
|
«противнические» анимации не делать, если это не подтверждённое
|
||||||
|
исключение.
|
||||||
- **[D]** Камера в покое фиксирована по центру поля с небольшим наклоном;
|
- **[D]** Камера в покое фиксирована по центру поля с небольшим наклоном;
|
||||||
временно двигается только `CameraDirector` в trigger-последовательности.
|
временно двигается только `CameraDirector` в trigger-последовательности.
|
||||||
- **[D]** Выбор карты/круга/зоны/цели — клик/драг по объекту; кнопки только
|
- **[D]** Выбор карты/круга/зоны/цели — клик/драг по объекту; кнопки только
|
||||||
|
|
@ -112,7 +118,8 @@
|
||||||
|
|
||||||
## 4. Процесс разработки
|
## 4. Процесс разработки
|
||||||
|
|
||||||
Формальный двухэтапный процесс DeepSeek → Kimi описан в
|
Формальный двухэтапный процесс (анализ → план → реализация; обе стадии
|
||||||
|
выполняет DeepSeek, но раздельно) описан в
|
||||||
`docs/Development/AGENT-WORKFLOW.md`; активный план задачи — в
|
`docs/Development/AGENT-WORKFLOW.md`; активный план задачи — в
|
||||||
`docs/Development/IMPLEMENTATION_PLAN.md`. Ниже — краткие правила, без
|
`docs/Development/IMPLEMENTATION_PLAN.md`. Ниже — краткие правила, без
|
||||||
дублирования шаблона плана.
|
дублирования шаблона плана.
|
||||||
|
|
|
||||||
24
AGENTS.md
|
|
@ -40,8 +40,9 @@
|
||||||
|
|
||||||
## Вопросы
|
## Вопросы
|
||||||
|
|
||||||
- Для существенной неопределённости используй специальный инструмент
|
- **Все вопросы задавай только через специальный инструмент `question`.**
|
||||||
`question` (если он недоступен — задай вопрос обычным сообщением).
|
Это относится к любым уточнениям, выборам и открытым вопросам. Обычным
|
||||||
|
сообщением вопрос задавай только если инструмент недоступен.
|
||||||
- Предлагай 2–4 коротких варианта с рекомендацией и возможность своего ответа.
|
- Предлагай 2–4 коротких варианта с рекомендацией и возможность своего ответа.
|
||||||
- Дождись ответа, прежде чем принимать зависящее от него решение.
|
- Дождись ответа, прежде чем принимать зависящее от него решение.
|
||||||
- Не спрашивай о том, что уже однозначно установлено кодом, документацией или
|
- Не спрашивай о том, что уже однозначно установлено кодом, документацией или
|
||||||
|
|
@ -50,22 +51,23 @@
|
||||||
## Двухэтапная разработка
|
## Двухэтапная разработка
|
||||||
|
|
||||||
- Любое пожелание, требующее изменения игры/кода, сначала проходит **анализ и
|
- Любое пожелание, требующее изменения игры/кода, сначала проходит **анализ и
|
||||||
план DeepSeek**, затем **реализацию Kimi**. Не начинай код без плана, кроме
|
план**, затем **реализацию**. Оба этапа выполняет DeepSeek, но раздельно:
|
||||||
явно тривиальной правки, которую пользователь разрешил сделать сразу.
|
не начинай код в том же проходе, где анализируешь, кроме явно тривиальной
|
||||||
|
правки, которую пользователь разрешил сделать сразу.
|
||||||
- Активный план и журнал задач — `docs/Development/IMPLEMENTATION_PLAN.md`;
|
- Активный план и журнал задач — `docs/Development/IMPLEMENTATION_PLAN.md`;
|
||||||
подробный процесс — `docs/Development/AGENT-WORKFLOW.md`.
|
подробный процесс — `docs/Development/AGENT-WORKFLOW.md`.
|
||||||
- DeepSeek на этапе анализа не меняет игровой код, сцены, префабы, SO и
|
- На этапе анализа не меняются игровой код, сцены, префабы, SO и конфиги;
|
||||||
конфиги; можно читать, задавать вопросы и обновлять план/документацию.
|
можно читать, задавать вопросы и обновлять план/документацию.
|
||||||
- Kimi перед реализацией читает `AGENTS.md`, Skill и раздел задачи, проверяет
|
- Перед реализацией прочитай `AGENTS.md`, Skill и раздел задачи, проверь Git и
|
||||||
Git и актуальность файлов/методов. Устаревший план не является разрешением на
|
актуальность файлов/методов. Устаревший план не является разрешением на
|
||||||
изменения.
|
изменения.
|
||||||
- Передача контекста — только через файлы репозитория и Git, не через память
|
- Передача контекста — только через файлы репозитория и Git, не через память
|
||||||
модели. Если агенты в разных ветках/копиях, это фиксируется в плане.
|
модели. Если агенты в разных ветках/копиях, это фиксируется в плане.
|
||||||
- Статусы пунктов: `[ ]`, `[x]`, `[!]`, `[-]`; отдельно указывается
|
- Статусы пунктов: `[ ]`, `[x]`, `[!]`, `[-]`; отдельно указывается
|
||||||
«Реализация» и «Проверка». `[x]` без проверки запрещён.
|
«Реализация» и «Проверка». `[x]` без проверки запрещён.
|
||||||
- Kimi не расширяет объём, не делает необязательный рефакторинг и не удаляет
|
- На этапе реализации не расширяй объём, не делай необязательный рефакторинг и
|
||||||
чужие изменения. При новом существенном решении пользователя — вопрос и
|
не удаляй чужие изменения. При новом существенном решении пользователя —
|
||||||
остановка зависимой части.
|
вопрос и остановка зависимой части.
|
||||||
|
|
||||||
## Изменения
|
## Изменения
|
||||||
|
|
||||||
|
|
|
||||||
18
README.md
|
|
@ -98,13 +98,22 @@ OK: ошибок 0, предупреждений 0
|
||||||
|
|
||||||
## Контент
|
## Контент
|
||||||
|
|
||||||
Первоисточник — официальный карт-лист `en.cf-vanguard.com`; триггеры и редкости
|
Первоисточник — официальный карт-лист `en.cf-vanguard.com`: и параметры карт,
|
||||||
выгружены из вики. Пересобрать YAML:
|
и арты берутся с одного сайта (`tools/import_official.py`). Пересобрать YAML
|
||||||
|
и докачать недостающие арты:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
python tools/import_cards.py
|
py tools/import_official.py --sets BT01,TD01,TD02
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Полезные режимы: `--list-sets` (какие сеты есть и их id), `--no-art`,
|
||||||
|
`--dry-run`, `--limit N` для пробного прогона. На Windows, где `python` —
|
||||||
|
заглушка Microsoft Store, используйте `py`.
|
||||||
|
|
||||||
|
`tools/import_cards.py` — прежний вариант (триггеры и редкости брались из вики,
|
||||||
|
арты — с Fandom); оставлен как справка. Ручные поля из существующих YAML
|
||||||
|
(`snipeBackRow`, `boost`, `nameRu`, `textRu`) новый импорт сохраняет.
|
||||||
|
|
||||||
Валидатор проверяет инварианты, которые легко нарушить вручную:
|
Валидатор проверяет инварианты, которые легко нарушить вручную:
|
||||||
|
|
||||||
- у grade 0 щит 5000 **только** у Draw-триггера, иначе 10000;
|
- у grade 0 щит 5000 **только** у Draw-триггера, иначе 10000;
|
||||||
|
|
@ -158,7 +167,8 @@ dotnet run --project server/src/Vanguard.Cli -- translations check
|
||||||
- `IMPLEMENTATION_CHECKLIST.md` — исторический план по блокам и гейтам.
|
- `IMPLEMENTATION_CHECKLIST.md` — исторический план по блокам и гейтам.
|
||||||
- `docs/Development/IMPLEMENTATION_PLAN.md` — активный журнал задач и шаблон
|
- `docs/Development/IMPLEMENTATION_PLAN.md` — активный журнал задач и шаблон
|
||||||
плана.
|
плана.
|
||||||
- `docs/Development/AGENT-WORKFLOW.md` — двухэтапный процесс DeepSeek → Kimi.
|
- `docs/Development/AGENT-WORKFLOW.md` — двухэтапный процесс: анализ → реализация
|
||||||
|
(обе стадии на DeepSeek).
|
||||||
- `docs/HANDOFF.md` — состояние на конец сессии и порядок следующих шагов.
|
- `docs/HANDOFF.md` — состояние на конец сессии и порядок следующих шагов.
|
||||||
- `docs/protocol.md` — протокол матча: кадры, интенты, события, таймеры, реконнект.
|
- `docs/protocol.md` — протокол матча: кадры, интенты, события, таймеры, реконнект.
|
||||||
- `docs/game-rules.md` — конспект правил и сверка с текущей реализацией.
|
- `docs/game-rules.md` — конспект правил и сверка с текущей реализацией.
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ MonoBehaviour:
|
||||||
m_SupportScreenSpaceLensFlare: 1
|
m_SupportScreenSpaceLensFlare: 1
|
||||||
m_GPUResidentDrawerMode: 0
|
m_GPUResidentDrawerMode: 0
|
||||||
m_SmallMeshScreenPercentage: 0
|
m_SmallMeshScreenPercentage: 0
|
||||||
|
m_ShadowSmallMeshScreenPercentages: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
|
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
|
||||||
m_ShadowType: 1
|
m_ShadowType: 1
|
||||||
m_LocalShadowsSupported: 0
|
m_LocalShadowsSupported: 0
|
||||||
|
|
@ -100,18 +101,18 @@ MonoBehaviour:
|
||||||
m_Keys: []
|
m_Keys: []
|
||||||
m_Values:
|
m_Values:
|
||||||
m_PrefilteringModeMainLightShadows: 3
|
m_PrefilteringModeMainLightShadows: 3
|
||||||
m_PrefilteringModeAdditionalLight: 4
|
m_PrefilteringModeAdditionalLight: 0
|
||||||
m_PrefilteringModeAdditionalLightShadows: 0
|
m_PrefilteringModeAdditionalLightShadows: 2
|
||||||
m_PrefilterXRKeywords: 1
|
m_PrefilterXRKeywords: 1
|
||||||
m_PrefilteringModeForwardPlus: 1
|
m_PrefilteringModeForwardPlus: 2
|
||||||
m_PrefilteringModeDeferredRendering: 0
|
m_PrefilteringModeDeferredRendering: 0
|
||||||
m_PrefilteringModeScreenSpaceOcclusion: 1
|
m_PrefilteringModeScreenSpaceOcclusion: 2
|
||||||
m_PrefilteringModeScreenSpaceReflection: 1
|
m_PrefilteringModeScreenSpaceReflection: 0
|
||||||
m_PrefilterWriteSmoothness: 1
|
m_PrefilterWriteSmoothness: 1
|
||||||
m_PrefilterDebugKeywords: 1
|
m_PrefilterDebugKeywords: 1
|
||||||
m_PrefilterWriteRenderingLayers: 0
|
m_PrefilterWriteRenderingLayers: 1
|
||||||
m_PrefilterHDROutput: 1
|
m_PrefilterHDROutput: 1
|
||||||
m_PrefilterAlphaOutput: 0
|
m_PrefilterAlphaOutput: 1
|
||||||
m_PrefilterSSAODepthNormals: 0
|
m_PrefilterSSAODepthNormals: 0
|
||||||
m_PrefilterSSAOSourceDepthLow: 1
|
m_PrefilterSSAOSourceDepthLow: 1
|
||||||
m_PrefilterSSAOSourceDepthMedium: 1
|
m_PrefilterSSAOSourceDepthMedium: 1
|
||||||
|
|
@ -123,20 +124,23 @@ MonoBehaviour:
|
||||||
m_PrefilterSSAOSampleCountHigh: 1
|
m_PrefilterSSAOSampleCountHigh: 1
|
||||||
m_PrefilterDBufferMRT1: 1
|
m_PrefilterDBufferMRT1: 1
|
||||||
m_PrefilterDBufferMRT2: 1
|
m_PrefilterDBufferMRT2: 1
|
||||||
m_PrefilterDBufferMRT3: 0
|
m_PrefilterDBufferMRT3: 1
|
||||||
m_PrefilterSoftShadowsQualityLow: 0
|
m_PrefilterSoftShadowsQualityLow: 1
|
||||||
m_PrefilterSoftShadowsQualityMedium: 0
|
m_PrefilterSoftShadowsQualityMedium: 1
|
||||||
m_PrefilterSoftShadowsQualityHigh: 0
|
m_PrefilterSoftShadowsQualityHigh: 1
|
||||||
m_PrefilterSoftShadows: 0
|
m_PrefilterSoftShadows: 0
|
||||||
m_PrefilterScreenCoord: 1
|
m_PrefilterScreenCoord: 1
|
||||||
m_PrefilterScreenSpaceIrradiance: 0
|
m_PrefilterScreenSpaceIrradiance: 1
|
||||||
m_PrefilterNativeRenderPass: 1
|
m_PrefilterNativeRenderPass: 1
|
||||||
m_PrefilterUseLegacyLightmaps: 0
|
m_PrefilterUseLegacyLightmaps: 0
|
||||||
m_PrefilterBicubicLightmapSampling: 0
|
m_PrefilterBicubicLightmapSampling: 1
|
||||||
m_PrefilterReflectionProbeRotation: 0
|
m_PrefilterReflectionProbeRotation: 0
|
||||||
m_PrefilterReflectionProbeBlending: 0
|
m_PrefilterReflectionProbeBlending: 0
|
||||||
m_PrefilterReflectionProbeBoxProjection: 0
|
m_PrefilterReflectionProbeBoxProjection: 0
|
||||||
m_PrefilterReflectionProbeAtlas: 0
|
m_PrefilterReflectionProbeAtlas: 0
|
||||||
|
m_PrefilterPointSamplingUpsampling: 1
|
||||||
|
m_Light2DPrefilteringMode: 0
|
||||||
|
m_Light2DKeptVariantCombos: []
|
||||||
m_ShaderVariantLogLevel: 0
|
m_ShaderVariantLogLevel: 0
|
||||||
m_ShadowCascades: 0
|
m_ShadowCascades: 0
|
||||||
m_Textures:
|
m_Textures:
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,22 @@ MonoBehaviour:
|
||||||
- rid: 6588237625532874761
|
- rid: 6588237625532874761
|
||||||
- rid: 6588237625532874762
|
- rid: 6588237625532874762
|
||||||
m_RuntimeSettings:
|
m_RuntimeSettings:
|
||||||
m_List: []
|
m_List:
|
||||||
|
- rid: 6852985685364965378
|
||||||
|
- rid: 6852985685364965380
|
||||||
|
- rid: 6852985685364965381
|
||||||
|
- rid: 6852985685364965384
|
||||||
|
- rid: 6852985685364965392
|
||||||
|
- rid: 6852985685364965394
|
||||||
|
- rid: 8712630790384254976
|
||||||
|
- rid: 4284062438471237637
|
||||||
|
- rid: 5747374308340793346
|
||||||
|
- rid: 5747374308340793347
|
||||||
|
- rid: 5747374308340793348
|
||||||
|
- rid: 6588237625532874753
|
||||||
|
- rid: 6588237625532874756
|
||||||
|
- rid: 6588237625532874759
|
||||||
|
- rid: 6588237625532874761
|
||||||
m_AssetVersion: 11
|
m_AssetVersion: 11
|
||||||
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
|
||||||
m_RenderingLayerNames:
|
m_RenderingLayerNames:
|
||||||
|
|
|
||||||
|
|
@ -115,17 +115,21 @@ namespace Vanguard.Editor
|
||||||
|
|
||||||
var active = SceneManager.GetActiveScene().name;
|
var active = SceneManager.GetActiveScene().name;
|
||||||
var environment = GameObject.Find("Vanguard 3D Environment");
|
var environment = GameObject.Find("Vanguard 3D Environment");
|
||||||
|
var backdrop = GameObject.Find("LoginBackdrop");
|
||||||
var login = GameObject.Find("LoginScreen");
|
var login = GameObject.Find("LoginScreen");
|
||||||
var lobby = GameObject.Find("MetaScreen");
|
var lobby = GameObject.Find("MetaScreen");
|
||||||
var onboarding = GameObject.Find("OnboardingScreen");
|
var onboarding = GameObject.Find("OnboardingScreen");
|
||||||
var success = environment != null
|
var isLogin = active == SceneFlow.Login;
|
||||||
&& (active == SceneFlow.Login || active == SceneFlow.Lobby)
|
var isLobby = active == SceneFlow.Lobby;
|
||||||
&& (login != null || lobby != null || onboarding != null);
|
var success = (isLogin || isLobby)
|
||||||
|
&& (login != null || lobby != null || onboarding != null)
|
||||||
|
&& (isLogin ? backdrop != null : environment != null);
|
||||||
|
|
||||||
Debug.Log(
|
Debug.Log(
|
||||||
"SCENE_SMOKE success=" + success
|
"SCENE_SMOKE success=" + success
|
||||||
+ " active=" + active
|
+ " active=" + active
|
||||||
+ " env=" + (environment != null)
|
+ " env=" + (environment != null)
|
||||||
|
+ " backdrop=" + (backdrop != null)
|
||||||
+ " login=" + (login != null)
|
+ " login=" + (login != null)
|
||||||
+ " lobby=" + (lobby != null)
|
+ " lobby=" + (lobby != null)
|
||||||
+ " onboarding=" + (onboarding != null)
|
+ " onboarding=" + (onboarding != null)
|
||||||
|
|
|
||||||
|
|
@ -28,15 +28,25 @@ MonoBehaviour:
|
||||||
intercept: 1.9
|
intercept: 1.9
|
||||||
perfectGuard: 2
|
perfectGuard: 2
|
||||||
inputLockTail: 0.15
|
inputLockTail: 0.15
|
||||||
|
eventPause: 1.5
|
||||||
|
postDrivePause: 1.5
|
||||||
|
postTriggerPause: 1.5
|
||||||
|
postDamagePause: 1.5
|
||||||
arrowShowDuration: 0.25
|
arrowShowDuration: 0.25
|
||||||
arrowHideDuration: 0.2
|
arrowHideDuration: 0.2
|
||||||
moveDuration: 0.5
|
moveDuration: 0.8
|
||||||
importantMoveDuration: 0.9
|
importantMoveDuration: 1.3
|
||||||
moveDelayBetweenCards: 0.18
|
moveDelayBetweenCards: 0.22
|
||||||
arcHeight: 0.45
|
arcHeight: 0.45
|
||||||
cameraZoomDuration: 0.35
|
introOverheadHold: 1.5
|
||||||
triggerRevealHold: 1.2
|
introCameraMoveDuration: 1
|
||||||
cameraReturnDuration: 0.4
|
introMainHold: 1.5
|
||||||
|
introDrawDuration: 0.6
|
||||||
|
cameraZoomDuration: 0.5
|
||||||
|
vanguardRevealDuration: 0.8
|
||||||
|
triggerRevealDuration: 0.35
|
||||||
|
triggerRevealHold: 0.75
|
||||||
|
cameraReturnDuration: 0.5
|
||||||
cameraRezoomDuration: 0.3
|
cameraRezoomDuration: 0.3
|
||||||
growDuration: 0.35
|
growDuration: 0.35
|
||||||
dashScrollSpeed: 1.5
|
dashScrollSpeed: 1.5
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 381 KiB |
|
Before Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 418 KiB |
|
Before Width: | Height: | Size: 465 KiB |
|
After Width: | Height: | Size: 422 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 412 KiB |
|
Before Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 426 KiB |
|
Before Width: | Height: | Size: 117 KiB |
|
After Width: | Height: | Size: 391 KiB |
|
Before Width: | Height: | Size: 189 KiB |
|
After Width: | Height: | Size: 396 KiB |
|
Before Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 400 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 466 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 443 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 356 KiB |
|
Before Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 406 KiB |
|
Before Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 409 KiB |
|
Before Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 383 KiB |
|
Before Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 452 KiB |
|
Before Width: | Height: | Size: 187 KiB |
|
After Width: | Height: | Size: 353 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 398 KiB |
|
Before Width: | Height: | Size: 212 KiB |
|
After Width: | Height: | Size: 455 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 349 KiB |
|
Before Width: | Height: | Size: 399 KiB |
|
After Width: | Height: | Size: 400 KiB |
|
Before Width: | Height: | Size: 186 KiB |
|
After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 204 KiB |
|
After Width: | Height: | Size: 435 KiB |
|
Before Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 393 KiB |
|
Before Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 353 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 420 KiB |
|
Before Width: | Height: | Size: 187 KiB |
|
After Width: | Height: | Size: 410 KiB |
|
Before Width: | Height: | Size: 186 KiB |
|
After Width: | Height: | Size: 380 KiB |
|
Before Width: | Height: | Size: 192 KiB |