feat: add age-based event gating, event timer, and UI polish
- Add minAge/maxAge to events so infants can't go treasure hunting - Cache event panel DOM to prevent high-speed button destruction - Add 10s auto-select countdown for choice events - Fix event title/text field mapping (name/description → title/text) - Add rotating clock icon for time flow feedback - Fix speed/pause button active states - Fix shop affordability check (disable + show insufficient money) - Add red styling for unmet choice requirements - Fix log re-rendering on every tick
This commit is contained in:
+190
-5
@@ -24,8 +24,81 @@
|
||||
"tab": "item",
|
||||
"cost": 50,
|
||||
"unlockConditions": [],
|
||||
"effects": [{ "type": "addStat", "stat": "body", "value": 5 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "wisdom_pill",
|
||||
"name": "悟道丹",
|
||||
"tab": "item",
|
||||
"cost": 50,
|
||||
"unlockConditions": [],
|
||||
"effects": [{ "type": "addStat", "stat": "wisdom", "value": 5 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "charm_pill",
|
||||
"name": "美颜丹",
|
||||
"tab": "item",
|
||||
"cost": 50,
|
||||
"unlockConditions": [],
|
||||
"effects": [{ "type": "addStat", "stat": "charm", "value": 5 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "destiny_pill",
|
||||
"name": "转运丹",
|
||||
"tab": "item",
|
||||
"cost": 100,
|
||||
"unlockConditions": [{ "type": "age", "op": ">=", "value": 15 }],
|
||||
"effects": [{ "type": "addStat", "stat": "destiny", "value": 5 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "business_manual",
|
||||
"name": "经商手册",
|
||||
"tab": "item",
|
||||
"cost": 80,
|
||||
"unlockConditions": [],
|
||||
"effects": [{ "type": "addStat", "stat": "business", "value": 5 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "strategy_book",
|
||||
"name": "谋略兵法",
|
||||
"tab": "item",
|
||||
"cost": 120,
|
||||
"unlockConditions": [{ "type": "age", "op": ">=", "value": 15 }],
|
||||
"effects": [{ "type": "addStat", "stat": "intelligence", "value": 5 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "elixir_youth",
|
||||
"name": "驻颜丹",
|
||||
"tab": "item",
|
||||
"cost": 500,
|
||||
"unlockConditions": [
|
||||
{ "type": "age", "op": ">=", "value": 30 },
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "taoist_priest", "value": 100 }
|
||||
],
|
||||
"effects": [
|
||||
{ "type": "addStat", "stat": "body", "value": 5 }
|
||||
{ "type": "addLog", "text": "服用驻颜丹,寿命延长!" },
|
||||
{ "type": "addStat", "stat": "body", "value": 10 }
|
||||
],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "mystic_scroll",
|
||||
"name": "神秘卷轴",
|
||||
"tab": "item",
|
||||
"cost": 1000,
|
||||
"unlockConditions": [
|
||||
{ "type": "age", "op": ">=", "value": 25 },
|
||||
{ "type": "stat", "op": ">=", "stat": "destiny", "value": 20 }
|
||||
],
|
||||
"effects": [
|
||||
{ "type": "addStat", "stat": "wisdom", "value": 10 },
|
||||
{ "type": "addStat", "stat": "destiny", "value": 5 }
|
||||
],
|
||||
"resetOnRebirth": true
|
||||
}
|
||||
@@ -37,8 +110,57 @@
|
||||
"tab": "buff",
|
||||
"cost": 200,
|
||||
"unlockConditions": [],
|
||||
"effects": [{ "type": "addStat", "stat": "wisdom", "value": 10 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "iron_body_buff",
|
||||
"name": "铜皮铁骨",
|
||||
"tab": "buff",
|
||||
"cost": 200,
|
||||
"unlockConditions": [],
|
||||
"effects": [{ "type": "addStat", "stat": "body", "value": 10 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "golden_tongue",
|
||||
"name": "金口玉言",
|
||||
"tab": "buff",
|
||||
"cost": 250,
|
||||
"unlockConditions": [{ "type": "age", "op": ">=", "value": 15 }],
|
||||
"effects": [{ "type": "addStat", "stat": "charm", "value": 10 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "merchant_aura",
|
||||
"name": "财神附体",
|
||||
"tab": "buff",
|
||||
"cost": 300,
|
||||
"unlockConditions": [{ "type": "stat", "op": ">=", "stat": "business", "value": 20 }],
|
||||
"effects": [{ "type": "addStat", "stat": "business", "value": 15 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "strategist_mind",
|
||||
"name": "谋主之心",
|
||||
"tab": "buff",
|
||||
"cost": 350,
|
||||
"unlockConditions": [{ "type": "stat", "op": ">=", "stat": "intelligence", "value": 20 }],
|
||||
"effects": [{ "type": "addStat", "stat": "intelligence", "value": 15 }],
|
||||
"resetOnRebirth": true
|
||||
},
|
||||
{
|
||||
"id": "heaven_blessing",
|
||||
"name": "天赐福缘",
|
||||
"tab": "buff",
|
||||
"cost": 500,
|
||||
"unlockConditions": [
|
||||
{ "type": "age", "op": ">=", "value": 20 },
|
||||
{ "type": "stat", "op": ">=", "stat": "destiny", "value": 30 }
|
||||
],
|
||||
"effects": [
|
||||
{ "type": "addStat", "stat": "wisdom", "value": 10 }
|
||||
{ "type": "addStat", "stat": "destiny", "value": 15 },
|
||||
{ "type": "addStat", "stat": "wisdom", "value": 5 }
|
||||
],
|
||||
"resetOnRebirth": true
|
||||
}
|
||||
@@ -51,11 +173,74 @@
|
||||
"baseCost": 1000,
|
||||
"costGrowth": 1.5,
|
||||
"unlockConditions": [
|
||||
{ "type": "careerLevel", "careerId": "taoist_priest", "op": ">=", "value": 50 }
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "taoist_priest", "value": 50 }
|
||||
],
|
||||
"effects": [
|
||||
{ "type": "addStat", "stat": "body", "value": 10 }
|
||||
"effects": [{ "type": "addStat", "stat": "body", "value": 10 }],
|
||||
"resetOnRebirth": false,
|
||||
"maxLevel": 10
|
||||
},
|
||||
{
|
||||
"id": "jade_seal",
|
||||
"name": "玉玺",
|
||||
"tab": "artifact",
|
||||
"baseCost": 2000,
|
||||
"costGrowth": 1.6,
|
||||
"unlockConditions": [
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "shangshu", "value": 100 }
|
||||
],
|
||||
"effects": [{ "type": "addStat", "stat": "intelligence", "value": 15 }],
|
||||
"resetOnRebirth": false,
|
||||
"maxLevel": 10
|
||||
},
|
||||
{
|
||||
"id": "tiger_tally",
|
||||
"name": "虎符",
|
||||
"tab": "artifact",
|
||||
"baseCost": 2000,
|
||||
"costGrowth": 1.6,
|
||||
"unlockConditions": [
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "general", "value": 100 }
|
||||
],
|
||||
"effects": [{ "type": "addStat", "stat": "body", "value": 15 }],
|
||||
"resetOnRebirth": false,
|
||||
"maxLevel": 10
|
||||
},
|
||||
{
|
||||
"id": "divine_brush",
|
||||
"name": "神笔",
|
||||
"tab": "artifact",
|
||||
"baseCost": 1500,
|
||||
"costGrowth": 1.55,
|
||||
"unlockConditions": [
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "hanlin", "value": 100 }
|
||||
],
|
||||
"effects": [{ "type": "addStat", "stat": "wisdom", "value": 12 }],
|
||||
"resetOnRebirth": false,
|
||||
"maxLevel": 10
|
||||
},
|
||||
{
|
||||
"id": "treasure_bowl",
|
||||
"name": "聚宝盆",
|
||||
"tab": "artifact",
|
||||
"baseCost": 3000,
|
||||
"costGrowth": 1.7,
|
||||
"unlockConditions": [
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "tycoon", "value": 100 }
|
||||
],
|
||||
"effects": [{ "type": "addStat", "stat": "business", "value": 20 }],
|
||||
"resetOnRebirth": false,
|
||||
"maxLevel": 10
|
||||
},
|
||||
{
|
||||
"id": "talisman",
|
||||
"name": "护身符",
|
||||
"tab": "artifact",
|
||||
"baseCost": 800,
|
||||
"costGrowth": 1.45,
|
||||
"unlockConditions": [
|
||||
{ "type": "careerLevel", "op": ">=", "careerId": "taoist_priest", "value": 30 }
|
||||
],
|
||||
"effects": [{ "type": "addStat", "stat": "destiny", "value": 8 }],
|
||||
"resetOnRebirth": false,
|
||||
"maxLevel": 10
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user