balance: increase skill values and stats across multiple cards
- Adjusted skill effect values (strike, pierce, counter, heal, etc.) to be ~20-50% higher per rarity/level - Updated unit attack/health stats for several cards (e.g., Hive Queen, Carapace units) to match new power curve - Improved draft UX in alternating mode by auto-scrolling to current section and caching section positions for smoother tween-based navigation
This commit is contained in:
parent
8b963d270e
commit
05ea5a1515
222
data/cards.json
222
data/cards.json
|
|
@ -393,7 +393,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "strike",
|
||||
"value": 4,
|
||||
"value": 6,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -406,7 +406,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "strike",
|
||||
"value": 6,
|
||||
"value": 9,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -419,7 +419,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "strike",
|
||||
"value": 10,
|
||||
"value": 14,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -456,7 +456,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 2,
|
||||
"value": 3,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -469,7 +469,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -482,7 +482,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 3,
|
||||
"value": 8,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -495,7 +495,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 5,
|
||||
"value": 12,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -532,7 +532,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -545,7 +545,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 5,
|
||||
"value": 6,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -558,7 +558,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 7,
|
||||
"value": 9,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -571,7 +571,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 10,
|
||||
"value": 12,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -595,7 +595,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "heal",
|
||||
"value": 2,
|
||||
"value": 3,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -608,7 +608,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "heal",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -621,7 +621,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "heal",
|
||||
"value": 5,
|
||||
"value": 7,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -634,7 +634,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "heal",
|
||||
"value": 7,
|
||||
"value": 10,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -647,7 +647,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "heal",
|
||||
"value": 10,
|
||||
"value": 14,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -697,7 +697,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "legion",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -710,7 +710,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "legion",
|
||||
"value": 4,
|
||||
"value": 5,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -723,7 +723,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "legion",
|
||||
"value": 5,
|
||||
"value": 7,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -773,7 +773,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "protect",
|
||||
"value": 5,
|
||||
"value": 6,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -786,7 +786,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "protect",
|
||||
"value": 7,
|
||||
"value": 9,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -799,7 +799,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "protect",
|
||||
"value": 10,
|
||||
"value": 12,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -816,23 +816,10 @@
|
|||
"rarity": "rare",
|
||||
"levels": [
|
||||
{
|
||||
"attack": 7,
|
||||
"attack": 8,
|
||||
"health": 12,
|
||||
"armor": 0,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 3,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"attack": 11,
|
||||
"health": 18,
|
||||
"armor": 0,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
|
|
@ -842,22 +829,9 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"attack": 16,
|
||||
"health": 27,
|
||||
"armor": 1,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 7,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"attack": 24,
|
||||
"health": 41,
|
||||
"armor": 1,
|
||||
"attack": 18,
|
||||
"health": 18,
|
||||
"armor": 0,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
|
|
@ -868,14 +842,40 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"attack": 35,
|
||||
"attack": 24,
|
||||
"health": 27,
|
||||
"armor": 1,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 17,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"attack": 32,
|
||||
"health": 41,
|
||||
"armor": 1,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 20,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"attack": 45,
|
||||
"health": 61,
|
||||
"armor": 2,
|
||||
"delay": 1,
|
||||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 15,
|
||||
"value": 30,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -912,7 +912,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "mortar",
|
||||
"value": 9,
|
||||
"value": 12,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -925,7 +925,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "mortar",
|
||||
"value": 14,
|
||||
"value": 24,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -938,7 +938,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "mortar",
|
||||
"value": 20,
|
||||
"value": 40,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -951,7 +951,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "mortar",
|
||||
"value": 30,
|
||||
"value": 55,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -2365,7 +2365,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "berserk",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -2378,7 +2378,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "berserk",
|
||||
"value": 3,
|
||||
"value": 6,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -2391,7 +2391,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "berserk",
|
||||
"value": 5,
|
||||
"value": 10,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -2504,7 +2504,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "siege",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2517,7 +2517,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "siege",
|
||||
"value": 5,
|
||||
"value": 8,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2530,7 +2530,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "siege",
|
||||
"value": 7,
|
||||
"value": 14,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2543,7 +2543,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "siege",
|
||||
"value": 10,
|
||||
"value": 25,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2669,7 +2669,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "weaken",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2682,7 +2682,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "weaken",
|
||||
"value": 3,
|
||||
"value": 8,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2695,7 +2695,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "weaken",
|
||||
"value": 5,
|
||||
"value": 15,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2833,7 +2833,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 3,
|
||||
"value": 5,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2846,7 +2846,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 5,
|
||||
"value": 8,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2859,7 +2859,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 7,
|
||||
"value": 12,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2872,7 +2872,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 10,
|
||||
"value": 18,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -2922,7 +2922,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "swipe",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -2935,7 +2935,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "swipe",
|
||||
"value": 3,
|
||||
"value": 6,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -2948,7 +2948,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "swipe",
|
||||
"value": 5,
|
||||
"value": 10,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -3008,7 +3008,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "preAttack"
|
||||
},
|
||||
{
|
||||
|
|
@ -3026,7 +3026,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 3,
|
||||
"value": 8,
|
||||
"trigger": "preAttack"
|
||||
},
|
||||
{
|
||||
|
|
@ -3044,7 +3044,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "pierce",
|
||||
"value": 5,
|
||||
"value": 16,
|
||||
"trigger": "preAttack"
|
||||
},
|
||||
{
|
||||
|
|
@ -6323,7 +6323,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "hive_link",
|
||||
"value": 10,
|
||||
"value": 12,
|
||||
"trigger": "passive"
|
||||
}
|
||||
]
|
||||
|
|
@ -6360,7 +6360,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 1,
|
||||
"value": 2,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6373,7 +6373,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 1,
|
||||
"value": 3,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6386,7 +6386,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 2,
|
||||
"value": 6,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6399,7 +6399,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 2,
|
||||
"value": 10,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6423,7 +6423,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "venom",
|
||||
"value": 1,
|
||||
"value": 2,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6436,7 +6436,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "venom",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6449,7 +6449,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "venom",
|
||||
"value": 3,
|
||||
"value": 6,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6462,7 +6462,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "venom",
|
||||
"value": 4,
|
||||
"value": 8,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6475,7 +6475,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "venom",
|
||||
"value": 5,
|
||||
"value": 10,
|
||||
"trigger": "on_attack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6525,7 +6525,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "burrow",
|
||||
"value": 2,
|
||||
"value": 3,
|
||||
"trigger": "passive"
|
||||
}
|
||||
]
|
||||
|
|
@ -6538,7 +6538,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "burrow",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "passive"
|
||||
}
|
||||
]
|
||||
|
|
@ -6551,7 +6551,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "burrow",
|
||||
"value": 3,
|
||||
"value": 5,
|
||||
"trigger": "passive"
|
||||
}
|
||||
]
|
||||
|
|
@ -6568,7 +6568,7 @@
|
|||
"rarity": "common",
|
||||
"levels": [
|
||||
{
|
||||
"attack": 3,
|
||||
"attack": 4,
|
||||
"health": 13,
|
||||
"armor": 2,
|
||||
"delay": 0,
|
||||
|
|
@ -6580,7 +6580,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"attack": 5,
|
||||
"attack": 7,
|
||||
"health": 20,
|
||||
"armor": 3,
|
||||
"delay": 0,
|
||||
|
|
@ -6592,7 +6592,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"attack": 7,
|
||||
"attack": 10,
|
||||
"health": 29,
|
||||
"armor": 4,
|
||||
"delay": 0,
|
||||
|
|
@ -6604,7 +6604,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"attack": 10,
|
||||
"attack": 18,
|
||||
"health": 44,
|
||||
"armor": 6,
|
||||
"delay": 0,
|
||||
|
|
@ -6616,7 +6616,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"attack": 15,
|
||||
"attack": 24,
|
||||
"health": 66,
|
||||
"armor": 9,
|
||||
"delay": 0,
|
||||
|
|
@ -6664,7 +6664,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
|
|
@ -6682,12 +6682,12 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 5,
|
||||
"value": 8,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 1,
|
||||
"value": 2,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6700,12 +6700,12 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 7,
|
||||
"value": 10,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 2,
|
||||
"value": 3,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6718,12 +6718,12 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "counter",
|
||||
"value": 10,
|
||||
"value": 15,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "on_defend"
|
||||
}
|
||||
]
|
||||
|
|
@ -6853,7 +6853,7 @@
|
|||
},
|
||||
{
|
||||
"name": "swarm",
|
||||
"value": 1,
|
||||
"value": 2,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6871,7 +6871,7 @@
|
|||
},
|
||||
{
|
||||
"name": "swarm",
|
||||
"value": 2,
|
||||
"value": 3,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6889,7 +6889,7 @@
|
|||
},
|
||||
{
|
||||
"name": "swarm",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6907,7 +6907,7 @@
|
|||
},
|
||||
{
|
||||
"name": "swarm",
|
||||
"value": 5,
|
||||
"value": 7,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -6925,7 +6925,7 @@
|
|||
},
|
||||
{
|
||||
"name": "swarm",
|
||||
"value": 7,
|
||||
"value": 10,
|
||||
"trigger": "preAttack"
|
||||
}
|
||||
]
|
||||
|
|
@ -7182,7 +7182,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 2,
|
||||
"value": 4,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
|
|
@ -7200,7 +7200,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 3,
|
||||
"value": 5,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
|
|
@ -7218,7 +7218,7 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "carapace",
|
||||
"value": 3,
|
||||
"value": 7,
|
||||
"trigger": "on_defend"
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -76,6 +76,9 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
this.aiRemainingPicks = { legendary: 0, epic: 0, rare: 0, common: 0 };
|
||||
this.bannerGroup = [];
|
||||
this.SCROLL_TOP = 80;
|
||||
this.sectionYPositions = {};
|
||||
this._lastScrolledSection = null;
|
||||
this.scrollTween = null;
|
||||
|
||||
this._renderStatusBanner();
|
||||
this._renderCardGrid();
|
||||
|
|
@ -226,9 +229,14 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
Commanders: '#ffd700', Legendary: '#ffaa00', Epic: '#bb66ff', Rare: '#6699ff', Common: '#999999'
|
||||
};
|
||||
|
||||
if (this.isAlternatingDraft) this.sectionYPositions = {};
|
||||
|
||||
for (const section of sections) {
|
||||
if (section.cards.length === 0) continue;
|
||||
|
||||
const sectionKey = section.costKey || 'commanders';
|
||||
const sectionTopY = cursorY;
|
||||
|
||||
const sectionLabel = this.add.text(this.GRID_LEFT, cursorY, section.label, {
|
||||
fontSize: '18px', color: rarityColors[section.label] || '#d4af37', fontFamily: 'Audiowide'
|
||||
});
|
||||
|
|
@ -410,6 +418,9 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
|
||||
const rows = Math.ceil(section.cards.length / this.COLS);
|
||||
cursorY = startY + rows * this.CELL_H + 10;
|
||||
if (this.isAlternatingDraft) {
|
||||
this.sectionYPositions[sectionKey] = { top: sectionTopY, height: 30 + rows * this.CELL_H };
|
||||
}
|
||||
}
|
||||
|
||||
// Scrolling bounds
|
||||
|
|
@ -427,6 +438,32 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
this.scrollContainer.setMask(new Phaser.Display.Masks.GeometryMask(this, maskShape));
|
||||
}
|
||||
|
||||
_scrollToActiveSection() {
|
||||
if (!this.isAlternatingDraft) return;
|
||||
const key = (this.draftState === 'PLAYER_COMMANDER' || this.draftState === 'AI_COMMANDER')
|
||||
? 'commanders'
|
||||
: (this.currentPhaseRarity || null);
|
||||
if (!key || key === this._lastScrolledSection) return;
|
||||
this._lastScrolledSection = key;
|
||||
|
||||
const info = this.sectionYPositions[key];
|
||||
if (!info) return;
|
||||
|
||||
const visibleH = this.SCROLL_BOTTOM - this.SCROLL_TOP;
|
||||
const sectionCenterY = info.top + info.height / 2;
|
||||
const targetScrollY = Phaser.Math.Clamp(sectionCenterY - visibleH / 2, 0, this.maxScrollY);
|
||||
|
||||
if (this.scrollTween) { this.scrollTween.stop(); this.scrollTween = null; }
|
||||
this.scrollTween = this.tweens.add({
|
||||
targets: this,
|
||||
scrollY: targetScrollY,
|
||||
duration: 450,
|
||||
ease: 'Cubic.easeInOut',
|
||||
onUpdate: () => { if (this.scrollContainer) this.scrollContainer.y = -this.scrollY; },
|
||||
onComplete: () => { this.scrollTween = null; }
|
||||
});
|
||||
}
|
||||
|
||||
_setupScrolling() {
|
||||
this.input.on('wheel', (pointer, gameObjects, deltaX, deltaY) => {
|
||||
if (pointer.x > 1320) return;
|
||||
|
|
@ -1058,6 +1095,7 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
this._renderStatusBanner();
|
||||
this._renderCardGrid();
|
||||
this._renderDualDeckPanel();
|
||||
this._scrollToActiveSection();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1066,6 +1104,7 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
this._renderStatusBanner();
|
||||
this._renderCardGrid();
|
||||
this._renderDualDeckPanel();
|
||||
this._scrollToActiveSection();
|
||||
|
||||
this.time.delayedCall(1500, () => {
|
||||
if (!this.scene.isActive()) return;
|
||||
|
|
|
|||
Loading…
Reference in New Issue