Dr. Jackson stocks mining hardware
Uses the game's inventor stock hook (his shop at night and his weekly visit to the player's store) and his own table placement, so prices are item value plus his markup. A rig if the player has none (30% otherwise), two basic cards every time, advanced cards from day 10 (60%, a second at 30%), flagships from day 30 (25%) or always during his special stock from day 20. New, genuine cards only; only after Mining Access is unlocked. A test entry in the dev panel (F9) restocks the counter the way his shop does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
79d4c686a0
commit
a101b58f1c
5 files changed
+110
No files matched your search
@@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Decentralized.Domain
|
||||
{
|
||||
/// <summary>
|
||||
/// 正规渠道(杰克逊博士)每次进货时上架的挖矿设备:全新、真货。返回物品种类:矿架用 <see cref="Rig"/>,显卡用型号。
|
||||
/// </summary>
|
||||
public static class Dealer
|
||||
{
|
||||
public const string Rig = "RIG";
|
||||
|
||||
public static readonly string[] Basic = { "RZX50", "RZX60", "RZ470", "RZ580" };
|
||||
public static readonly string[] Advanced = { "RZX70", "RZX80Ti", "RZ6800" };
|
||||
public static readonly string[] Flagship = { "RZX90", "RZ7900" };
|
||||
|
||||
public const int AdvancedFromDay = 10, FlagshipFromDay = 30, SpecialFlagshipFromDay = 20;
|
||||
public const double RigRestockChance = 0.30, AdvancedChance = 0.60, AdvancedSecondChance = 0.30, FlagshipChance = 0.25;
|
||||
|
||||
public static List<string> Stock(int day, bool ownsRig, bool specialStock, Rng rng)
|
||||
{
|
||||
var list = new List<string>();
|
||||
if (!ownsRig || rng.Chance(RigRestockChance)) list.Add(Rig);
|
||||
for (int i = 0; i < 2; i++) list.Add(Pick(Basic, rng));
|
||||
if (day >= AdvancedFromDay && rng.Chance(AdvancedChance))
|
||||
{
|
||||
list.Add(Pick(Advanced, rng));
|
||||
if (rng.Chance(AdvancedSecondChance)) list.Add(Pick(Advanced, rng));
|
||||
}
|
||||
if (specialStock && day >= SpecialFlagshipFromDay) list.Add(Pick(Flagship, rng));
|
||||
else if (day >= FlagshipFromDay && rng.Chance(FlagshipChance)) list.Add(Pick(Flagship, rng));
|
||||
return list;
|
||||
}
|
||||
|
||||
private static string Pick(string[] from, Rng rng) => from[rng.Range(0, from.Length - 1)];
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user