BlockSkillSwitcher.ts 1007 Bytes
import { BattleEvent, BlockSkill } from "../../BattleConst";
import { BattleManager } from "../../BattleManager";
import { BlockData } from "../BlockData";
import { BlockSkillBase } from "./BlockSkillBase";

/**闸门 */
export class BlockSkillSwitcher extends BlockSkillBase {

    private _defaultIsOpen: boolean = false;

    private _isOpen: boolean = false;
    get isOpen(): boolean { return this._isOpen; }

    constructor($owner: BlockData, defaultIsOpen: boolean) {
        super(BlockSkill.SWITCHER, $owner);
        this._defaultIsOpen = defaultIsOpen;
        BattleManager.ins.eventNode.on(BattleEvent.ROUND_END, this.onRoundFinish, this);
    }

    setDefaultState(value: boolean) {
        this._defaultIsOpen = value;
    }

    setOpen(value: boolean) {
        this._isOpen = value;
        this.owner.setIsProtected(!value);
    }

    onAddedToBlock(): void {
        this.setOpen(this._defaultIsOpen);
    }

    private onRoundFinish() {
        this.setOpen(!this._isOpen);
    }

}