Skip to content

Release/1.35.0#3269

Merged
ipdae merged 25 commits intomainfrom
release/1.35.0
Mar 25, 2026
Merged

Release/1.35.0#3269
ipdae merged 25 commits intomainfrom
release/1.35.0

Conversation

@ipdae
Copy link
Copy Markdown
Contributor

@ipdae ipdae commented Mar 17, 2026

No description provided.

jaeho0103 and others added 25 commits February 18, 2026 15:21
- Add FavRewardData (Ticker, Ratio, Min, Max) to StageSheet, replacing fixed ticker+amount fields
- Add FavRewards list (5 entries × 4 fields) in CSV columns 53-72, before EntryCostItemId/Count
- Add StageSimulator.GetFavWaveRewards() using WeightedSelector, mirroring GetWaveRewards()
- Integrate FAV drops into HackAndSlash inner Execute loop (pre-determined, Wave 2 condition)
- Integrate FAV drops into HackAndSlashSweep per play count
- Add Execute_StageFavReward tests for both HackAndSlash and HackAndSlashSweep

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- StageSimulator now computes FAV rewards internally (wave 2) and
  exposes them via FungibleAssetRewards property, mirroring
  InfiniteTowerSimulator's pattern
- GetReward battle-log event now carries both item and FAV rewards
  in a single event (consistent with infinite tower)
- HackAndSlash reads FAV rewards from simulator.FungibleAssetRewards
  instead of computing them separately before simulation
- Remove stage-number normalization (451-900 → 1-450) from
  StageRewardExpHelper.GetExp that is no longer needed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove auto-clone logic from StageSheet, StageWaveSheet,
  CrystalStageBuffGachaSheet; add explicit CSV rows for stages 451-900
- Stages 451-900 clone stats from 1-450 with entry_cost_item_id=50000
- Add fav_drop_min/fav_drop_max columns to StageSheet (fields 73-74);
  entry cost shifts to fields 75-76
- StageSheet.Row exposes FavDropMin/FavDropMax properties
- GetFavWaveRewards now draws from the FAV pool fav_drop_count times,
  merging amounts per ticker (same behavior as item drop pool)
- Stages 451-900 configured with 5 FAV tickers (CRYSTAL + 4 RUNESTONE),
  fav_drop_min=max=5, each ticker min=max=1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- SweepRequiredCPSheet: RequiredCP int → long (current max ~1.5B, approaching int32 limit)
- StakeRegularRewardSheet: RequiredGold ParseInt → ParseLong (field declared as long)
- StakeAchievementRewardSheet: RequiredGold/RequiredBlockIndex ParseInt → ParseLong (fields declared as long)
- EnhancementCostSheet: Cost ParseInt → ParseBigInteger (field declared as BigInteger)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add FAV rewards to stage drops via WeightedSelector
Add optional `tradable` CSV column to `StakeRegularFixedRewardSheet` so
that fixed staking rewards can control item tradability, consistent with
the existing behavior in `StakeRegularRewardSheet`. Omitting the column
defaults to `true`, preserving backward compatibility with existing data.

- `RewardInfo`: add `Tradable` field with XML doc; parse from optional
  `fields[2]` (default `true`); reflect in `Equals`/`GetHashCode`
- `StakeRewardCalculator.CalculateFixedRewards`: branch on `reward.Tradable`
  to call `CreateTradableMaterial` or `CreateMaterial` accordingly
- Add `V1WithTradable` test fixture and `SetToSheet_WithTradableColumn` test
- Add XML doc comments to `StakeRewardCalculator` class and both methods

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add Tradable flag to StakeRegularFixedRewardSheet.RewardInfo
@ipdae ipdae merged commit 3d23ca6 into main Mar 25, 2026
28 of 29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants