unlearn skills, just need rpc call

This commit is contained in:
Mashy 2019-02-26 14:00:29 +10:00
parent c4453a6934
commit b093374391

View File

@ -8,7 +8,34 @@ const WIDTH = MENU_MAIN.width();
const HEIGHT = MENU_MAIN.height();
const TEXT_MARGIN = 24;
const SKILL_WIDTH = Math.floor(WIDTH / 20);
const SKILL_WIDTH = Math.floor(WIDTH / 10);
class DeleteHitBox extends Phaser.GameObjects.Rectangle {
constructor(scene, x, y) {
super(scene, x, y, SKILL_WIDTH, SKILL_WIDTH, 0x222222);
this.setOrigin(0);
this.itemSelect = () => this.setFillStyle(0xff0000);
this.itemDeselect = () => this.setFillStyle(0x222222);
}
}
const itemCheckHitbox = (scene, pointer) => {
const { list } = scene.scene.get('MenuCrypList').children;
const hitboxes = list.filter(c => c.cryp)
.concat(scene.children.list.filter(c => c instanceof DeleteHitBox));
let found;
for (let i = 0; i < hitboxes.length; i += 1) {
if (Phaser.Geom.Rectangle.ContainsPoint(hitboxes[i].getBounds(), pointer.position)) {
found = hitboxes[i];
} else {
hitboxes[i].itemDeselect();
}
}
return found;
};
class StatSheet extends Phaser.Scene {
constructor() {
@ -26,6 +53,11 @@ class StatSheet extends Phaser.Scene {
create(cryp) {
this.registry.events.on('changedata', this.updateData, this);
this.cryp = cryp;
const del = this.add.existing(new DeleteHitBox(this, X + WIDTH * 0.7, Y + HEIGHT * 0.6));
this.add.text(del.getCenter().x, del.getCenter().y, 'Unlearn', TEXT.HEADER)
.setOrigin(0.5, 0.5);
this.add.text(X, Y, cryp.name, TEXT.HEADER);
const crypStat = (stat, i) => {
@ -47,15 +79,34 @@ class StatSheet extends Phaser.Scene {
CRYP_STATS.forEach(crypStat);
this.add.text(X + WIDTH * 0.175, Y, 'Skills', TEXT.HEADER);
const knownSkill = (skill, i) => {
const SKILL_X = X + WIDTH * 0.2 + WIDTH * 0.06 * i;
const SKILL_X = X + WIDTH * 0.21 + WIDTH * 0.125 * i;
const SKILL_Y = Y + HEIGHT * 0.15;
const itemObj = new Item(this, skill.skill, i, SKILL_X, SKILL_Y, SKILL_WIDTH, SKILL_WIDTH);
itemObj.on('pointerdown', () => {
console.log(skill.skill);
});
const itemObj = new Item(this, skill.skill, i, SKILL_X, SKILL_Y, SKILL_WIDTH, Math.floor(SKILL_WIDTH / 2));
// itemObj.on('pointerdown', () => );
this.input.setDraggable(itemObj);
this.add.existing(itemObj);
};
cryp.skills.forEach(knownSkill);
this.input.on('drag', (pointer, item, dragX, dragY) => {
if (!(item instanceof Item)) return false;
item.setPosition(dragX, dragY);
const hitBox = itemCheckHitbox(this, pointer);
if (hitBox) hitBox.itemSelect();
return true;
});
this.input.on('dragend', (pointer, item) => {
if (!(item instanceof Item)) return false;
item.setPosition(item.origX, item.origY);
const hitBox = itemCheckHitbox(this, pointer);
if (hitBox) {
hitBox.itemDeselect();
// add socket function for unlearn here
console.log(`delete: ${item.item}`);
}
return true;
});
}
displaySkillText(x, y, description, pointer) {