[色子游戏]奖励配置-新增按规则自动生成奖励配置

This commit is contained in:
2026-03-25 13:42:46 +08:00
parent bd402aa97d
commit 5ef8ee8bc5
5 changed files with 1069 additions and 4 deletions

View File

@@ -50,7 +50,50 @@
"warnDupGrid": "Duplicate dice points in this table: {list}",
"warnNoBigwinToSave": "No BIGWIN rows to save",
"warnBigwinDupGrid": "Duplicate big-win points in this table: {list}",
"infoNoBigwin": "No BIGWIN rows. Set tier to BIGWIN in the Reward Index tab first."
"infoNoBigwin": "No BIGWIN rows. Set tier to BIGWIN in the Reward Index tab first.",
"btnRuleGenerate": "Generate by rules",
"ruleGenerateTitle": "Generate reward index by rules",
"ruleGenerateRules": "[Generation logic (same as Create Reward Reference)]\n• 26 cells ordered by id ascending are positions 025; each rows grid_number is 530 and unique.\n• Roll D (530): start at the cell whose grid_number equals D (start_index); clockwise landing = (start position + D) mod 26; counter-clockwise = start D (if negative, +26).\n• Each reference rows “dice points” column is the roll D; tier / real_ev / display text come from the config at the landing id.\n\n[Leopard rolls]\nFor rolls 5, 10, 15, 20, 25, 30, clockwise and counter-clockwise landing tiers must NOT be T4 or T5 (avoid leopard roll + penalty / try again).\n\n[real_ev vs tier]\nreal < 100 → T4; 100 < real < 0 → T3; 0 < real < 100 → T2; 100 < real < 500 → T1; T5 “try again” real_ev=0. Set per-tier real_ev standards below; values are written into the config and can be edited later.\n\n[Inputs]\nT1/T2: minimum weighted counts. T4 and T5: fixed weighted counts — clockwise and counter-clockwise must each match the number you set (one value per tier, applied to both directions). real_ev standards: one value per tier. Generated T1T4 use ui_text / ui_text_en = 100 + real_ev (same EN); T5 uses “try again” / “Once again”. Remarks still distinguish break-even vs small win where applicable.",
"ruleGenT1Row": "T1 (big prize)",
"ruleGenT2Row": "T2 (small win / break-even)",
"ruleGenT3RealEvOnly": "T3 (rake)",
"ruleGenT4Row": "T4 (penalty)",
"ruleGenT5Row": "T5 (try again)",
"ruleGenMinCount": "Min count",
"ruleGenFixedCount": "Fixed count (CW & CCW)",
"ruleGenRealEvStd": "real_ev standard",
"ruleGenRealEvEditHint": "After saving, you can still edit display text, EN, real_ev and remarks per row in the table above.",
"ruleGenInvalidT1RealEv": "T1 real_ev must satisfy 100 < value < 500",
"ruleGenInvalidT2RealEv": "T2 real_ev must satisfy 0 < value < 100",
"ruleGenInvalidT3RealEv": "T3 real_ev must satisfy -100 < value < 0",
"ruleGenInvalidT4RealEv": "T4 real_ev must satisfy value < -100",
"ruleGenInvalidT5RealEv": "T5 “try again” real_ev must be 0",
"ruleGenT1Min": "T1 min (CW & CCW)",
"ruleGenT2Min": "T2 min (CW & CCW)",
"ruleGenT4Max": "T4 fixed count (CW & CCW)",
"ruleGenT5Max": "T5 fixed count (CW & CCW)",
"ruleGenScopeHint": "T1/T2 are minimums; T4 and T5 are exact: clockwise and counter-clockwise weighted counts must each equal the fixed value.",
"ruleGenApply": "Generate and save",
"ruleGenNeedFullGrid": "Missing id 025 rows or incomplete grid_number; cannot generate",
"ruleGenFreqFail": "Cannot compute board frequencies; check grid_number",
"ruleGenUnknownId": "Unknown reward index id: {id}",
"ruleGenSuccess": "Generated and saved. Clockwise weighted: T1={cwT1} T2={cwT2} T4={cwT4} T5={cwT5}; counter-clockwise: T1={ccT1} T2={ccT2} T4={ccT4} T5={ccT5}",
"btnJsonImport": "JSON import",
"jsonImportTitle": "Reward index JSON import",
"jsonImportHint": "Current Reward Index rows (excluding BIGWIN) are filled below. Edit and submit; id must be 025, grid_number must be 530. Submit applies to the table and saves.",
"jsonImportParseFail": "Invalid JSON",
"jsonImportNotArray": "Root must be a JSON array",
"jsonImportItemInvalid": "Item {n} is not a valid object",
"jsonImportMissingField": "Item {n} is missing field: {field}",
"jsonImportIdRange": "id must be 025; item {n} has {v}",
"jsonImportGridRange": "grid_number must be 530; item {n} has {v}",
"jsonImportDupId": "Duplicate id in JSON: {list}",
"jsonImportDupGrid": "Duplicate grid_number in JSON: {list}",
"jsonImportFullIdSet": "For 26 rows, id must be exactly 025 once each",
"jsonImportFullGridSet": "For 26 rows, grid_number must be exactly 530 once each",
"jsonImportUnknownId": "Unknown id: {id} (export from the current list first)",
"jsonImportTierInvalid": "Invalid tier at item {n}",
"jsonImportEmpty": "Nothing to submit"
},
"weightRatio": {
"title": "T1T5 Weight Ratio (Clockwise / Counter-clockwise)",