class AddCondition extends AddNode {
    constructor(father, game, selected, ...option) {
        super(father, game, selected, option);
    }

    create() {
        super.create();
        console.log("CONDITION");
        super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / 16, selectWord("ADD NODE : CONDITION", "AJOUTER ACTION : CONDITION"));
        super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 3), selectWord("WHO ?", "QUI ?"));
        super.addTitle(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 7), selectWord("TARGET FILTERS (OPTIONAL)", "FILTRES CIBLES (FACULTATIF)"));
        let c1 = super.newCategory('target', true, true);
        super.addButton(WIDTH_WINDOW / 3, HEIGHT_WINDOW / (16 / 5), 'enemyBot', c1, false);
        super.addButton(WIDTH_WINDOW / 1.5, HEIGHT_WINDOW / (16 / 5), 'myself', c1, true);
        let c2 = super.newCategory('shield', true, true);
        super.addButton(WIDTH_WINDOW / 8, HEIGHT_WINDOW / (16 / 9), 'shortRange', c2, [1 / 3, 'range']);
        super.addButton(WIDTH_WINDOW / 4 * 1.5, HEIGHT_WINDOW / (16 / 9), 'mediumRange', c2, [2 / 3, 'range']);
        super.addButton(WIDTH_WINDOW / 4, HEIGHT_WINDOW / (16 / 12), 'longRange', c2, [1, 'range']);
        let line = this.add.graphics();
        line.lineStyle(10, 0xffffff, 1);
        line.lineBetween(WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 8), WIDTH_WINDOW / 2, HEIGHT_WINDOW / (16 / 13));
        super.addButton(WIDTH_WINDOW / 8 * 5, HEIGHT_WINDOW / (16 / 9), 'shield0', c2, [0, 'shield']);
        super.addButton(WIDTH_WINDOW / 8 * 7, HEIGHT_WINDOW / (16 / 9), 'shield33', c2, [1 / 3, 'shield']);
        super.addButton(WIDTH_WINDOW / 8 * 5, HEIGHT_WINDOW / (16 / 12), 'shield66', c2, [2 / 3, 'shield']);
        super.addButton(WIDTH_WINDOW / 8 * 7, HEIGHT_WINDOW / (16 / 12), 'shield100', c2, [1, 'shield']);
    }

    addNode() {
        if (super.verifyCategory()) {
            if (this.lCategory[1].getValue()[1] === 'range') {
                this.selected.addRect(new RectangleNode(this.selected.getX(), this.selected.getY() + 200, this.gameR, 'condition', [this.lCategory[0].getValue(), false, true, 0, this.lCategory[1].getValue()[0]]));
            } else {
                this.selected.addRect(new RectangleNode(this.selected.getX(), this.selected.getY() + 200, this.gameR, 'condition', [this.lCategory[0].getValue(), true, false, this.lCategory[1].getValue()[0], 0]));
            }
            super.cancel();
        }
    }

    modifyNode() {
        if (super.verifyCategory()) {
            this.selected.node.shieldFilter = false;
            this.selected.node.rangeFilter = false;
            if (this.lCategory[1].getValue()[1] === 'range') {
                this.selected.node.rangeFilter = true;
                this.selected.node.range = this.lCategory[1].getValue()[0];
            } else {
                this.selected.node.shieldFilter = true;
                this.selected.node.shield = this.lCategory[1].getValue()[0];
            }
            this.selected.node.myself = this.lCategory[0].getValue();
            this.selected.rect.setFrame(this.selected.node.getFrame());
            super.cancel();
        }
    }
}