Changed quick bar from 4 to 10 item slots

This commit is contained in:
2026-01-18 13:37:51 +11:00
parent f344213f55
commit 6447f01c77

View File

@@ -5,8 +5,8 @@ export class QuickSlotComponent {
private scene: Phaser.Scene;
private container!: Phaser.GameObjects.Container;
private slots: Phaser.GameObjects.Container[] = [];
private itemMap: (Item | null)[] = [null, null, null, null]; // 4 slots
private assignedIds: string[] = ["health_potion", "throwing_dagger", "", ""]; // Default slot 1 to HP pot, 2 to Dagger
private itemMap: (Item | null)[] = new Array(10).fill(null);
private assignedIds: string[] = ["health_potion", "throwing_dagger", ...new Array(8).fill("")];
constructor(scene: Phaser.Scene) {
this.scene = scene;
@@ -16,7 +16,7 @@ export class QuickSlotComponent {
const { width, height } = this.scene.scale;
const slotSize = 48;
const slotSpacing = 4;
const totalWidth = (slotSize + slotSpacing) * 4 - slotSpacing;
const totalWidth = (slotSize + slotSpacing) * 10 - slotSpacing;
const actionButtonHeight = 40 + 10; // Button height + spacing
// Position above action buttons
@@ -26,7 +26,7 @@ export class QuickSlotComponent {
);
this.container.setScrollFactor(0).setDepth(1500);
for (let i = 0; i < 4; i++) {
for (let i = 0; i < 10; i++) {
const x = i * (slotSize + slotSpacing);
const g = this.scene.add.graphics();
@@ -39,7 +39,8 @@ export class QuickSlotComponent {
g.strokeRect(0, 0, slotSize, slotSize);
// Hotkey label (bottom-left, gold color)
const key = this.scene.add.text(3, slotSize - 3, `${i + 1}`, {
const label = i === 9 ? "0" : `${i + 1}`;
const key = this.scene.add.text(3, slotSize - 3, label, {
fontSize: "12px",
color: "#D4AF37",
fontStyle: "bold"
@@ -62,6 +63,12 @@ export class QuickSlotComponent {
this.scene.input.keyboard?.on("keydown-TWO", () => this.activateSlot(1));
this.scene.input.keyboard?.on("keydown-THREE", () => this.activateSlot(2));
this.scene.input.keyboard?.on("keydown-FOUR", () => this.activateSlot(3));
this.scene.input.keyboard?.on("keydown-FIVE", () => this.activateSlot(4));
this.scene.input.keyboard?.on("keydown-SIX", () => this.activateSlot(5));
this.scene.input.keyboard?.on("keydown-SEVEN", () => this.activateSlot(6));
this.scene.input.keyboard?.on("keydown-EIGHT", () => this.activateSlot(7));
this.scene.input.keyboard?.on("keydown-NINE", () => this.activateSlot(8));
this.scene.input.keyboard?.on("keydown-ZERO", () => this.activateSlot(9));
}
update(player: CombatantActor, activeItemId?: string | null) {
@@ -70,7 +77,7 @@ export class QuickSlotComponent {
const slotSize = 48;
// Update slots based on inventory availability
for (let i = 0; i < 4; i++) {
for (let i = 0; i < 10; i++) {
const desiredId = this.assignedIds[i];
const slot = this.slots[i];
const bgGraphics = slot.list[0] as Phaser.GameObjects.Graphics;