第十一阶段 stage 2:场外换币台(暗灯招换币客户)
- 新人脉升级“场外换币台”(OtcUnlockPrice 500),附赠一盏暗灯 - 包装原版暗灯工厂:切换顺序末尾加目标 pd_otc(只接管进出这一步,其余交给原切换函数);顾客工厂写进公开的 StoreClientListDict.storeClientDict,顾客面板与概率走原版逻辑 - 换色:底图换成原版熄灭的暗灯,叠加层画黄绿色光晕(otc_lamp_on),不进存档 - 换币客户(OtcClient)一半卖币、一半买币:卖币并入原收黑币(Domain/Otc.cs 取代 HotCoins.cs,HotCoinSeller 删除),污点比例随机、越脏越便宜、地址来历写进账本;买币三档报价,PLEDGER 转账确认后现金到账,当晚未付作废 - 只在生成顾客的回调窗口里生成报价、写账本(原版取名字也会调用工厂) - 存档数据版本 4:旧存档出块奖励、NPC 算力按 MiningScale 放大 - 8 种语言文字、手册“换币客户”一节;单元测试 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bc23ae056b
commit
ec578a39d9
25 files changed
+833
-321
No files matched your search
@@ -249,16 +249,6 @@ namespace Decentralized.Domain
|
||||
["HalvingPassMin"] = Tuning.HalvingPassMin,
|
||||
["HalvingRamp"] = Tuning.HalvingRamp,
|
||||
["HalvingRampDays"] = Tuning.HalvingRampDays,
|
||||
["HotCutMax"] = Tuning.HotCutMax,
|
||||
["HotCutMin"] = Tuning.HotCutMin,
|
||||
["HotEventChance"] = Tuning.HotEventChance,
|
||||
["HotPoneroChance"] = Tuning.HotPoneroChance,
|
||||
["HotPoneroCutMax"] = Tuning.HotPoneroCutMax,
|
||||
["HotPoneroCutMin"] = Tuning.HotPoneroCutMin,
|
||||
["HotSting"] = Tuning.HotSting,
|
||||
["HotStingCrackdown"] = Tuning.HotStingCrackdown,
|
||||
["HotValueMaxRents"] = Tuning.HotValueMaxRents,
|
||||
["HotValueMinRents"] = Tuning.HotValueMinRents,
|
||||
["IntelBriefPrice"] = Tuning.IntelBriefPrice,
|
||||
["IntelFake"] = Tuning.IntelFake,
|
||||
["IntelRep"] = Tuning.IntelRep,
|
||||
@@ -268,6 +258,7 @@ namespace Decentralized.Domain
|
||||
["ManipFree"] = Tuning.ManipFree,
|
||||
["ManipMax"] = Tuning.ManipMax,
|
||||
["ManipSlope"] = Tuning.ManipSlope,
|
||||
["MiningScale"] = Tuning.MiningScale,
|
||||
["MixerCleanRate"] = Tuning.MixerCleanRate,
|
||||
["MixerFee"] = Tuning.MixerFee,
|
||||
["MixerMaxRounds"] = Tuning.MixerMaxRounds,
|
||||
@@ -285,6 +276,23 @@ namespace Decentralized.Domain
|
||||
["NpcHash0"] = Tuning.NpcHash0,
|
||||
["NpcKjPerH"] = Tuning.NpcKjPerH,
|
||||
["NpcTargetRatio"] = Tuning.NpcTargetRatio,
|
||||
["OtcBuyMaxRents"] = Tuning.OtcBuyMaxRents,
|
||||
["OtcBuyMinRents"] = Tuning.OtcBuyMinRents,
|
||||
["OtcCutClean"] = Tuning.OtcCutClean,
|
||||
["OtcCutDirty"] = Tuning.OtcCutDirty,
|
||||
["OtcEventChance"] = Tuning.OtcEventChance,
|
||||
["OtcHistoryMax"] = Tuning.OtcHistoryMax,
|
||||
["OtcPoneroChance"] = Tuning.OtcPoneroChance,
|
||||
["OtcPoneroCutMax"] = Tuning.OtcPoneroCutMax,
|
||||
["OtcPoneroCutMin"] = Tuning.OtcPoneroCutMin,
|
||||
["OtcSellShare"] = Tuning.OtcSellShare,
|
||||
["OtcSting"] = Tuning.OtcSting,
|
||||
["OtcStingCrackdown"] = Tuning.OtcStingCrackdown,
|
||||
["OtcTaintMax"] = Tuning.OtcTaintMax,
|
||||
["OtcTaintMin"] = Tuning.OtcTaintMin,
|
||||
["OtcUnlockPrice"] = Tuning.OtcUnlockPrice,
|
||||
["OtcValueMaxRents"] = Tuning.OtcValueMaxRents,
|
||||
["OtcValueMinRents"] = Tuning.OtcValueMinRents,
|
||||
["PerpAdlHaircut"] = Tuning.PerpAdlHaircut,
|
||||
["PerpBanDays"] = Tuning.PerpBanDays,
|
||||
["PerpDebtDays"] = Tuning.PerpDebtDays,
|
||||
@@ -480,6 +488,8 @@ namespace Decentralized.Domain
|
||||
["CraSpiralPath"] = Array.ConvertAll(Tuning.CraSpiralPath, v => (double)v),
|
||||
["IntelTipAcc"] = Array.ConvertAll(Tuning.IntelTipAcc, v => (double)v),
|
||||
["IntelTipPrice"] = Array.ConvertAll(Tuning.IntelTipPrice, v => (double)v),
|
||||
["OtcAccept"] = Array.ConvertAll(Tuning.OtcAccept, v => (double)v),
|
||||
["OtcPremium"] = Array.ConvertAll(Tuning.OtcPremium, v => (double)v),
|
||||
["PonziRates"] = Array.ConvertAll(Tuning.PonziRates, v => (double)v),
|
||||
["SparkSpiralPath"] = Array.ConvertAll(Tuning.SparkSpiralPath, v => (double)v),
|
||||
["UsedHealthMax"] = Array.ConvertAll(Tuning.UsedHealthMax, v => (double)v),
|
||||
|
||||
Reference in new issue
Block a user