com.amanotes.echo.dailyreward
v1.0.4
Published
Daily reward module for Echo games. Two systems: a free recurring coin reward (60-min cooldown) and a sequential 4-node RV ad track that resets daily at 00:00 local time.
Maintainers
Readme
Echo DailyReward
Package: com.amanotes.echo.dailyreward v1.0.2
Unity: 2022.3+
Namespace: Amanotes.Echo.DailyReward
Dependencies: com.amanotes.orchestra 0.2.41, com.amanotes.echo.foundation 1.0.0, visual-state-2 0.9.3
Daily reward module for Echo games. Two systems: a free recurring coin reward (60-min cooldown) and a sequential 4-node rewarded-video ad track that resets daily at 00:00 local time.
Setup
- Add the package: it's already embedded under
Packages/in this repo, or install it into another project via a scoped registry. In that project'sPackages/manifest.json:{ "scopedRegistries": [ { "name": "Amanotes", "url": "https://registry.npmjs.org", "scopes": ["com.amanotes"] } ], "dependencies": { "com.amanotes.echo.dailyreward": "1.0.2" } }com.amanotes.echo.foundationresolves automatically as a transitive dependency. No auth token needed — it's a public package on npmjs.org.visual-state-2has no registry of its own — it isn't published anywhere (npmjs.org, OpenUPM, or otherwise). Installing this package via a scoped registry (as above) only works if your project already hasvisual-state-2present (e.g. embedded under its ownPackages/visual-state-2/), otherwise Unity's Package Manager fails to resolve it. If you don't already have it, install via the exported.unitypackageinstead (Echo → DailyReward → Export Package, or Echo → Export All Modules…) — itsExportPackageOptions.Recursebundles the module'svisual-state-2asset dependencies into the.unitypackageautomatically, no separate step needed. (Same caveat applies to every other Echo module depending onvisual-state-2— see the Leaderboard package's README.)
- Run Echo → DailyReward → Setup Wizard to generate the host-integration layer (
DailyRewardBridge,DailyRewardConfigBridge,SRCheat.DailyReward) into your game'sAssets/_Echo/. - Wire the bridge
// TODO:markers to your host systems (PlayerData, Ads for the RV track). - To try the module standalone with zero host code, import the DailyReward Entry Point sample
(Package Manager → DailyReward → Samples) and open
Samples/Scenes/DailyRewardSample.unity— see "Debug tooling" below for the cheats available in that scene.
Debug tooling
Two interchangeable options — both call the same DailyRewardManager public API, so their cheats never
drift out of sync:
- With SRDebugger:
SRCheat.DailyReward.cs, generated by the Setup Wizard, adds an Is Unlocked / Unlock DailyReward panel to the SRDebugger overlay. - Without SRDebugger: drop
DailyRewardDebugGUI(Scripts/Debug/DailyRewardDebugGUI.cs, ships with the module, zero third-party dependencies) onto any scene GameObject for a Force Unlock / Claim Recurring Reward / Force-Claim RV NodeOnGUI()toggle panel. Already included in the sample scene.
Architecture
DailyRewardManager (logic) + DailyRewardConfig (tunables) + DailyRewardFileStorage (persistence) + DailyRewardState (read model) + DailyRewardService (facade). The module emits KEventBus events — including DailyRewardRequestRvAdEvent dispatched upward for the host to serve an ad — and never references host systems directly.
See DailyReward.md for the full design doc.
