Commit Graph

42 Commits

Author SHA1 Message Date
horooko 6a48d68f75 Delete Editor.meta 2026-03-01 06:32:50 +07:00
horooko 549fffd69e [Fix] DI 2026-03-01 06:31:21 +07:00
horooko 10a9417039 [Fix] 2026-03-01 06:29:09 +07:00
horooko 85aedc6def [Add] Meta 2026-03-01 06:25:06 +07:00
horooko 68c4abace3 [Refactor] Replace enum-driven modifier system with data-driven SO composition
Replace the entire static, enum-based modifier pipeline with a
composition-based, data-driven architecture using ScriptableObject
polymorphism. New modifiers can now be created by assembling SO building
blocks (Conditions + Effects + Behaviors) — no core code edits needed.

New architecture:
- Core/: TriggerType, ModifierPhase, ModifierContext, ICondition, IEffect
- Definition/: ModifierDefinitionSO, ModifierBehaviorSO, ConditionSO, EffectSO, ModifierCatalogSO
- Conditions/: DieValueCondition, CategoryCondition, MinScoreCondition, DiceCountCondition
- Effects/: AddFlat, AddPerDie, Multiply, MultiplyPerDie, PostMultiply, AddCurrency, ConsumeCharge
- Runtime/: ModifierInstance, ModifierRegistry (non-static service)
- Pipeline/: async ModifierPipeline with phase ordering, tracing, anti-recursion
- Editor/: ModifierDefinitionValidator with menu items
- Events/: GameEventBus (non-static typed dispatcher)
- DI/: GameLifetimeScope (VContainer composition root)

Deleted old system: ModifierData, ModifierEffect, ModifierEnums,
ModifierPipeline (static), ModifierRuntime, ModifierTarget, ShopCatalog,
ModifierAssetCreator.

Updated: ScoringSystem (VContainer + async), InventoryModel (delegates to
ModifierRegistry), ShopModel (uses ModifierDefinitionSO), GameController
(VContainer injection), SaveData (uses Runtime.ModifierSaveEntry), all
views/controllers, and all test files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 06:20:23 +07:00
horooko 6e19de2f3d [Add] VContainer 2026-02-28 20:15:13 +07:00
horooko 159cfd49a9 [Add] Unitask 2026-02-28 19:33:34 +07:00
horooko e24b30743b [Fix] Code visual 2026-02-28 19:25:26 +07:00
horooko bee20fd1f8 [Refactor] Add folder-based namespaces to all C# scripts
Wrap all 39 scripts and 6 test files in namespaces matching their folder
structure (e.g. Assets/Scripts/Dice/ → YachtDice.Dice). Add cross-namespace
using directives where types are referenced across modules. Set rootNamespace
in both .asmdef files (YachtDice, YachtDice.Tests).

Namespace mapping:
- YachtDice.Dice — Dice, DiceRoller
- YachtDice.Economy — CurrencyBank
- YachtDice.Game — GameManager, DiceManager, DebugGameInput
- YachtDice.Inventory — InventoryController/Model/SlotView/View
- YachtDice.Modifiers — ModifierData/Effect/Enums/Pipeline/Runtime/Target
- YachtDice.Persistence — SaveData, SaveSystem
- YachtDice.Scoring — CategoryScorer, ScoreResult, ScoringSystem, YachtCategory
- YachtDice.Shop — ShopCatalog/Controller/ItemView/Model/View
- YachtDice.UI — CategoryRowView, DicePanelView, GameController, GameInfoView, ScoreCardView
- YachtDice.Editor — ModifierAssetCreator
- YachtDice.Tests — all test files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 19:06:57 +07:00
horooko d3594f23f9 [Add] Project meta 2026-02-28 06:43:59 +07:00
horooko ba626acb9b [Add] Universal modifier system, shop, inventory & persistence
Replace hardcoded BonusForOnes/MultiplierForSixes with data-driven
modifier system supporting 2 scopes (SelectedCategory, AnyCategoryClosed),
4 effect types, durability modes (Permanent, LimitedUses), and
configurable targets via ScriptableObject (ModifierData).

- Modifier domain: ModifierEnums, ModifierTarget, ModifierData,
  ModifierRuntime, ModifierEffect (dict-based strategy), ModifierPipeline
  (4-pass: cat-additive → cat-multiplicative → final-additive → final-multiplicative)
- ScoringSystem: replaced old modifier list with ModifierPipeline integration,
  added OnCategoryConfirmed event
- Shop MVC: ShopCatalog (SO), ShopModel, ShopView, ShopItemView, ShopController
- Inventory MVC: InventoryModel (activate/deactivate/sell/durability),
  InventoryView, InventorySlotView, InventoryController
- CurrencyBank: editor-adjustable balance with events
- Persistence: SaveData + SaveSystem (Newtonsoft JSON + PlayerPrefs)
- Editor: ModifierAssetCreator menu item to generate 6 example modifiers + catalog
- Tests: 6 test classes covering effects, pipeline, scoring, shop, inventory, save
- GameController: wired shop/inventory/save lifecycle
- GameInfoView: added currency display, shop/inventory toggle buttons

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 06:40:33 +07:00
horooko 4f8db3158f [Add] Category Row 2026-02-28 05:02:49 +07:00
horooko 2b4daff8ee Merge branch 'claude/keen-pasteur' 2026-02-27 19:16:53 +07:00
horooko c56d145714 [Update] Split CategoryRowView scoreText into preview and recorded fields
Separate the single scoreText into previewText (potential score) and
recordedScoreText (committed value) so both are visible simultaneously.
Public API preserved — no changes needed in ScoreCardView or GameController.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 19:15:44 +07:00
horooko 545e27c145 [Rem] Demo 2026-02-27 17:06:33 +07:00
horooko 6340a011f9 [Add] Ultimate Preview 2026-02-27 04:40:03 +07:00
horooko 37076cfaaf Update SampleScene.unity 2026-02-27 04:33:57 +07:00
horooko d7c6488e74 Update SampleScene.unity 2026-02-27 04:19:24 +07:00
horooko 3b02df06fa [Fix] Move UnityMCP 2026-02-27 04:19:03 +07:00
horooko 263259f3fc [Add] Base Roll UI 2026-02-27 04:14:19 +07:00
horooko 788dbc69e0 [Add] meta 2026-02-27 03:49:04 +07:00
horooko 58db4df9c4 Merge branch 'claude/nifty-turing' 2026-02-27 03:45:03 +07:00
horooko d06ad78645 [Add] MVC UI for Yacht Dice scorecard
View layer: CategoryRowView (reusable x13 row with preview/recorded
score display), ScoreCardView (full scorecard panel with Russian
category names, upper bonus tracking), DicePanelView (5 dice buttons
with lock toggle + roll counter), GameInfoView (turn display + game
over overlay).

Controller layer: GameController bridges Model and View — subscribes
to model events in Awake() to catch GameManager.Start(), routes UI
clicks to game logic, computes preview scores for all unfilled
categories after each roll, handles upper section bonus (63+ = +35).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 03:44:37 +07:00
horooko 15608d4994 [Add] Unity MCP 2026-02-27 03:43:41 +07:00
horooko 9557633ff3 [Fix] Move files in project, add color folders 2026-02-27 03:23:21 +07:00
horooko 6ee2053a7a [Rem] Docs 2026-02-27 03:19:23 +07:00
horooko 442544a84a [Fix] Move VFavorites & VFolders 2026-02-27 03:18:12 +07:00
horooko d924cf78f5 [Add] vFolders 2 2026-02-27 03:17:32 +07:00
horooko e04f8a4395 [Add] vFavorites 2 2026-02-27 03:17:04 +07:00
horooko b37579153b [Add] Hot Reload 2026-02-27 03:16:18 +07:00
horooko 5067cb51a1 [Add] System to Scene 2026-02-27 03:06:55 +07:00
horooko f49cda7cdc [Add] Yacht scoring system with Balatro-like modifier pipeline
Implements the core game loop for Yacht dice: 5-dice rolling with
lock/unlock, 3 rolls per turn, 13 standard scoring categories, and
an extensible ScriptableObject-based modifier system that applies
additive then multiplicative bonuses (chips+mult pattern).

Includes two test modifiers: BonusForOnes (+10 per 1) and
MultiplierForSixes (x6 per 6).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 03:01:19 +07:00
horooko b33017a320 [Add] New Dice 2026-02-26 23:14:26 +07:00
horooko 6da112fb97 [Add] Dice to Scene 2026-02-26 16:06:30 +07:00
horooko 55e4857af4 [Add] DiceRoller — beautiful physics-based dice throw animation
Adds a coroutine-driven roller that tosses the dice with random impulse
and torque, waits for physics to settle, then smoothly snaps to the
nearest aligned face via Slerp. Exposes OnRollFinished event with the
rolled value.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:46:38 +07:00
horooko 688b623625 [Add] Base Scene 2026-02-26 07:09:51 +07:00
horooko 91b4f3f119 [Add] Dice Final 2026-02-23 23:57:45 +07:00
horooko d39b1e88b5 [Add] TextMeshPro and Base Dice System 2026-02-23 23:19:57 +07:00
horooko 2f9e082d75 [Fix] All in one + add dice 2026-02-23 22:24:46 +07:00
horooko 4f942cd7c0 [Add] All in one shader 2026-02-23 22:01:07 +07:00
horooko ec0aa86ac2 Init Project 2026-02-23 21:56:13 +07:00
Konstantin Dyachenko 1aa8e66401 Initial commit 2026-02-23 21:17:18 +07:00