namespace RobotAndDonkey.Game.Data; public class Balancing { public static Balancing Instance { get; } = new(); // Robots public int RobotEasyEnergy => 50; public int RobotMediumEnergy => 40; public int RobotHardEnergy => 30; public int EasyMaxCarry => 10; public int MediumMaxCarry => 8; public int HardMaxCarry => 6; public int EasyHandSize => 9; public int MediumHandSize => 8; public int HardHandSize => 7; public int EasyTapeLength => 6; public int MediumTapeLength => 5; public int HardTapeLength => 4; public int CourierEnergyReplenishOnDelivery => 5; public int RangerFertileRestEnergyDelta => 1; public int AnalysisHandSizeDelta => 1; public int AnalysisEnergyDelta => -1; // Gameplay public int DiscardEnergyCost => 1; public int LegendaryWeight => 1; public int RareWeight => 3; public int UncommonWeight => 12; public int MagicWeight => 36; public int CommonWeight => 108; public int GetDeferGlitchEnergyCost(int deferCount) { deferCount += 1; return deferCount * (deferCount + 1) / 2; } // Shop public float ShopBuffChance => 0.25f; public float ShopDebuffChance => 0.25f; public int GambleBoosterSize => 6; public int GambleEnergyCost => 5; public int BufferOverflowEnergyCost => 10; public int ShopSize => 5; public int GetRerollEnergyCost(int rerollCount) { return rerollCount + 1; } // Modifiers public float EffectiveChance => 0.25f; public float UnreliableChance => 0.25f; public float RaceConditionChance => 0.25f; public int GravityMaxCarryPenalty => 2; public int GravityExtraMoveCost => 1; // Board public int DefaultShedRequest => 10; public float CrateShedRandomness => 0.5f; public float CrateOfferBonus => 1.0f; public int CrateAmount => 10; public float DryAmount => 0.25f; public float DrySpread => 0.75f; public float FertileAmount => 0.5f; public float FertileSpread => 0.75f; public float MudAmount => 0.375f; public float MudSpread => 0.5f; public float BlockedAmount => 0.25f; public float BlockedSpread => 0.5f; public float CorruptedAmount => 0.375f; public float CorruptedSpread => 0.5f; public float RockyAmount => 0.2f; public float RockySpread => 0.9f; public float DonkeySprinkle => 0.05f; public float ShedSprinkle => 0.1f; public float CrateSprinkle => 0.2f; public float TowerSprinkle => 0.05f; public float RainTransformProbability => 0.5f; public float DroughtTransformProbability => 0.5f; // Cards public int CardPlayEnergyCost => 1; public int CardNoOpEnergyReplenish => 5; public int CardRestEnergyReplenish => 20; public int DonkeyMaxCarryBonus => 10; public int HeatWaveEnergyPenalty => 10; public float PestDeliveryMultiplier => 0.5f; public int MoveCost => 1; public int TurnLeftCost => 1; public int TurnRightCost => 1; public int InteractCost => 1; public int PotentiateCost => 3; public int OptimizeCost => 3; public int StreamlineCost => 3; public int PersistCost => 3; public int RememberCost => 3; public int ReasonCost => 3; public int DetoxiumPrimeCost => 5; public int FlyingDiskCost => 5; public int AluminumHatCost => 5; public int EMFieldCost => 5; public int AtomicClockCost => 5; public int JumpCost => 8; public int RepeatCost => 8; public int RestCost => 8; public int StabilizeCost => 8; public int MudMoveEnergyCost => 1; public int FertileRestEnergyReplenish => 1; public int DryRestEnergyMalus => 1; public int DryInteractEnergyMalus => 1; public int EndOfProgramEnergyReplenish => 10; }