feat: add 'cleanse' skill to elite enemies and adjust deck panel layout
- Add post-battle 'cleanse' skills (value 4/8/13) to three elite enemy cards - Remove 'enfeeble' pre-battle skill from two elite enemies, increase their drain values - Reorganize SkirmishDraftScene UI: expand vertical spacing for commander slots and remove rarity pick counters to reduce clutter and improve layout consistency
This commit is contained in:
parent
d4d9b25c72
commit
e6049b6985
|
|
@ -4022,6 +4022,12 @@
|
|||
"name": "drain",
|
||||
"value": 7,
|
||||
"trigger": "preBattle"
|
||||
},
|
||||
{
|
||||
"name": "cleanse",
|
||||
"value": 4,
|
||||
"all": true,
|
||||
"trigger": "postBattle"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -4035,6 +4041,12 @@
|
|||
"name": "drain",
|
||||
"value": 10,
|
||||
"trigger": "preBattle"
|
||||
},
|
||||
{
|
||||
"name": "cleanse",
|
||||
"value": 8,
|
||||
"all": true,
|
||||
"trigger": "postBattle"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -4048,6 +4060,12 @@
|
|||
"name": "drain",
|
||||
"value": 15,
|
||||
"trigger": "preBattle"
|
||||
},
|
||||
{
|
||||
"name": "cleanse",
|
||||
"value": 13,
|
||||
"all": true,
|
||||
"trigger": "postBattle"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -4068,12 +4086,6 @@
|
|||
"armor": 2,
|
||||
"delay": 0,
|
||||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 1,
|
||||
"trigger": "preBattle",
|
||||
"all": true
|
||||
},
|
||||
{
|
||||
"name": "drain",
|
||||
"value": 2,
|
||||
|
|
@ -4087,15 +4099,9 @@
|
|||
"armor": 3,
|
||||
"delay": 0,
|
||||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 2,
|
||||
"trigger": "preBattle",
|
||||
"all": true
|
||||
},
|
||||
{
|
||||
"name": "drain",
|
||||
"value": 3,
|
||||
"value": 4,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -4108,13 +4114,13 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 3,
|
||||
"value": 5,
|
||||
"trigger": "preBattle",
|
||||
"all": true
|
||||
},
|
||||
{
|
||||
"name": "drain",
|
||||
"value": 5,
|
||||
"value": 6,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -4127,13 +4133,13 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 4,
|
||||
"value": 5,
|
||||
"trigger": "preBattle",
|
||||
"all": true
|
||||
},
|
||||
{
|
||||
"name": "drain",
|
||||
"value": 8,
|
||||
"value": 10,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
@ -4146,13 +4152,13 @@
|
|||
"skills": [
|
||||
{
|
||||
"name": "enfeeble",
|
||||
"value": 5,
|
||||
"value": 8,
|
||||
"trigger": "preBattle",
|
||||
"all": true
|
||||
},
|
||||
{
|
||||
"name": "drain",
|
||||
"value": 11,
|
||||
"value": 15,
|
||||
"trigger": "preBattle"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -610,7 +610,7 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
const { height } = this.scale;
|
||||
|
||||
// Fixed vertical zones so sections never overlap
|
||||
const PLAYER_TOP = 70;
|
||||
const PLAYER_TOP = 85;
|
||||
const DIVIDER_Y = height / 2 - 20;
|
||||
const OPPONENT_TOP = DIVIDER_Y + 14;
|
||||
const BUTTON_Y = height - 55;
|
||||
|
|
@ -629,36 +629,8 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
}).setOrigin(0.5);
|
||||
this.deckPanelGroup.push(yourTitle);
|
||||
|
||||
// Player rarity pick counters
|
||||
y += 18;
|
||||
{
|
||||
const rTargets = this._getRarityTargets();
|
||||
const rarityOrder = ['legendary', 'epic', 'rare', 'common'];
|
||||
const inCardPhase = ['PLAYER_CARD', 'AI_CARD', 'DRAFT_COMPLETE'].includes(this.draftState);
|
||||
const currentIdx = this.currentPhaseRarity ? rarityOrder.indexOf(this.currentPhaseRarity) : 999;
|
||||
const rarityDisplayColors = { legendary: '#886622', epic: '#663388', rare: '#224488', common: '#444444' };
|
||||
const rarityActiveColors = { legendary: '#ffbb44', epic: '#cc88ff', rare: '#88aaff', common: '#cccccc' };
|
||||
for (const r of rarityOrder) {
|
||||
const total = rTargets[r] || 0;
|
||||
if (total === 0) continue;
|
||||
const rIdx = rarityOrder.indexOf(r);
|
||||
const isDone = this.draftState === 'DRAFT_COMPLETE' || (inCardPhase && rIdx < currentIdx);
|
||||
const isCurrent = r === this.currentPhaseRarity;
|
||||
const rem = this.playerRemainingPicks[r] || 0;
|
||||
const label = `${r.charAt(0).toUpperCase() + r.slice(1)}: `;
|
||||
const status = isDone ? '\u2713' : (inCardPhase ? `${total - rem}/${total}` : `0/${total}`);
|
||||
const color = isDone ? '#444444' : (isCurrent ? rarityActiveColors[r] : rarityDisplayColors[r]);
|
||||
const rTxt = this.add.text(PANEL_X + 20, y, label + status, {
|
||||
fontSize: '12px', color, fontFamily: 'Audiowide'
|
||||
});
|
||||
this.deckPanelGroup.push(rTxt);
|
||||
y += 17;
|
||||
}
|
||||
y += 4;
|
||||
}
|
||||
|
||||
// Player commander slot
|
||||
y += 4;
|
||||
y += 36;
|
||||
const pCmd = this.draftedCommander ? this.cardManager.getCard(this.draftedCommander) : null;
|
||||
const pCmdBg = this.add.rectangle(panelCX, y, PANEL_W - 40, 32, pCmd ? 0x1a3a5c : 0x1a1a2e)
|
||||
.setStrokeStyle(2, 0xffd700);
|
||||
|
|
@ -711,36 +683,8 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
}).setOrigin(0.5);
|
||||
this.deckPanelGroup.push(oppTitle);
|
||||
|
||||
// AI rarity pick counters
|
||||
y += 18;
|
||||
{
|
||||
const rTargets = this._getRarityTargets();
|
||||
const rarityOrder = ['legendary', 'epic', 'rare', 'common'];
|
||||
const inCardPhase = ['PLAYER_CARD', 'AI_CARD', 'DRAFT_COMPLETE'].includes(this.draftState);
|
||||
const currentIdx = this.currentPhaseRarity ? rarityOrder.indexOf(this.currentPhaseRarity) : 999;
|
||||
const rarityDisplayColors = { legendary: '#886622', epic: '#663388', rare: '#224488', common: '#444444' };
|
||||
const rarityActiveColors = { legendary: '#ffbb44', epic: '#cc88ff', rare: '#88aaff', common: '#cccccc' };
|
||||
for (const r of rarityOrder) {
|
||||
const total = rTargets[r] || 0;
|
||||
if (total === 0) continue;
|
||||
const rIdx = rarityOrder.indexOf(r);
|
||||
const isDone = this.draftState === 'DRAFT_COMPLETE' || (inCardPhase && rIdx < currentIdx);
|
||||
const isCurrent = r === this.currentPhaseRarity;
|
||||
const rem = this.aiRemainingPicks[r] || 0;
|
||||
const label = `${r.charAt(0).toUpperCase() + r.slice(1)}: `;
|
||||
const status = isDone ? '\u2713' : (inCardPhase ? `${total - rem}/${total}` : `0/${total}`);
|
||||
const color = isDone ? '#444444' : (isCurrent ? rarityActiveColors[r] : rarityDisplayColors[r]);
|
||||
const rTxt = this.add.text(PANEL_X + 20, y, label + status, {
|
||||
fontSize: '12px', color, fontFamily: 'Audiowide'
|
||||
});
|
||||
this.deckPanelGroup.push(rTxt);
|
||||
y += 17;
|
||||
}
|
||||
y += 4;
|
||||
}
|
||||
|
||||
// AI commander slot
|
||||
y += 4;
|
||||
y += 36;
|
||||
const aCmd = this.aiCommander ? this.cardManager.getCard(this.aiCommander) : null;
|
||||
const aCmdBg = this.add.rectangle(panelCX, y, PANEL_W - 40, 32, aCmd ? 0x3a1a1a : 0x1a1a2e)
|
||||
.setStrokeStyle(2, aCmd ? 0xff6644 : 0x444444);
|
||||
|
|
@ -1229,8 +1173,9 @@ export class SkirmishDraftScene extends Phaser.Scene {
|
|||
_makeBackButton() {
|
||||
const bg = this.add.rectangle(80, 45, 160, 50, 0x333333)
|
||||
.setInteractive({ useHandCursor: true })
|
||||
.setStrokeStyle(1, 0x888888);
|
||||
this.add.text(80, 45, 'Back', { fontSize: '18px', color: '#ffffff', fontFamily: 'Audiowide' }).setOrigin(0.5);
|
||||
.setStrokeStyle(1, 0x888888)
|
||||
.setDepth(12);
|
||||
this.add.text(80, 45, 'Back', { fontSize: '18px', color: '#ffffff', fontFamily: 'Audiowide' }).setOrigin(0.5).setDepth(12);
|
||||
bg.on('pointerdown', () => {
|
||||
this.sound.play('sfx_menu_select', { volume: 0.7 });
|
||||
this.scene.start('SkirmishDeckSelectScene', {
|
||||
|
|
|
|||
Loading…
Reference in New Issue