123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /** @format */
- import FightCore from '../zuma/FightCore'
- import {CardSkillConfig, ICardSkillConfig} from '../config/CardSkillConfig'
- import {Data} from '../GameControl'
- import {ICard} from '../interface/GlobalInterface'
- const {ccclass, property} = cc._decorator
- @ccclass
- export class SkillOptCell extends cc.Component {
- mask: cc.Sprite = null //技能精灵
- timeLb: cc.Label = null //显示技能冷却剩余时间的文字
- time: number = 1 //技能冷却时间
- countDown: number = 0
- showTime: boolean = false //是否显示文字
- isStop: boolean = true //是否停止
- iCard: ICard
- fightCore: FightCore
- onLoad() {
- this.mask = cc.find('mask', this.node).getComponent(cc.Sprite)
- this.timeLb = cc.find('timeLb', this.node).getComponent(cc.Label)
- this.timeLb.node.active = this.showTime
- this.node.on(cc.Node.EventType.TOUCH_END, this.onTouchStart, this)
- }
- update(dt: number) {
- dt *= Data.game.gameSpeed
- if (!this.isStop && !this.fightCore.isStop) {
- this.countDown -= dt
- if (this.countDown <= 0) {
- this.countDown = 0
- this.isStop = true
- if (this.iCard) {
- }
- }
- this.mask.fillRange = this.time > 0 ? this.countDown / this.time : 0 //恢复技能
- this.timeLb.string = this.countDown > 0 ? (this.mask.fillRange * this.time).toFixed(1) : '' //更新技能冷却时间
- }
- }
- init(iCard: ICard, fightCore: FightCore) {
- this.fightCore = fightCore
- this.iCard = iCard
- this.time = this.iCard.cfg.startCD
- this.countDown = this.time
- this.mask.fillRange = 0
- this.isStop = true
- this.resetNode()
- }
- startCD() {
- this.time = this.iCard.cfg.skillCDs[0]
- this.countDown = this.time
- this.isStop = false
- this.resetNode()
- }
- onTouchStart(e: cc.Event.EventTouch): void {
- if (!this.iCard) return
- this.fightCore.skillOptShow(this)
- cc.find('popChoose', this.node).active = true
- }
- resetNode() {
- this.node.stopAllActions()
- cc.find('light', this.node).active = false
- cc.find('popChoose', this.node).active = false
- }
- showCreateAni() {
- cc.find('light', this.node).active = true
- }
- }
|