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); } }