UIGet.ts 4.11 KB
// Learn TypeScript:
//  - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html

import { SaveDataManager } from "../../component/SaveDataManager";
import { GlobalEvent, tMgr, WindowName } from "../../Global";

import { getGlobalNode, UserSkill } from "../../kernel/battle/BattleConst";
import { GamePlayTable, TableName, WheelTable } from "../../kernel/table/TableDefine";
import { UIBase } from "../UIBase";
import { UIManager } from "../UIManager";

const { ccclass, property } = cc._decorator;

@ccclass
export default class UIGet extends UIBase {

    constructor() {
        super();
        this._usePopUpEffect = false;
        this._useCloseEffect = false;
    }

    // LIFE-CYCLE CALLBACKS:

    // onLoad () {}

    protected onEnable(): void {

        this.node.getComponent(cc.Widget).updateAlignment();

        let reward = this.enableParam as WheelTable;

        if (reward.Type == 5 && SaveDataManager.ins.runtimeData.ballSkinUnlocked.includes(5)) {
            //中将西瓜球,西瓜球已经解锁了
            let gameplayConfig = (tMgr.getConfig(TableName.GAME_PLAY, 19) as GamePlayTable);
            let diamondConfig = tMgr.getConfig(TableName.WHEEL, 1) as WheelTable; //随便读一个钻石配置

            cc.resources.load(diamondConfig.Icon, cc.SpriteFrame, (error, asset) => {
                if (!error) {
                    this.node.getChildByName('icon').getComponent(cc.Sprite).spriteFrame = asset as cc.SpriteFrame;
                }
            });

            this.node.getChildByName('txtNum').getComponent(cc.Label).string = '+' + gameplayConfig.Value.toString();

        }
        else {
            cc.resources.load(reward.Icon, cc.SpriteFrame, (error, asset) => {
                if (!error) {
                    this.node.getChildByName('icon').getComponent(cc.Sprite).spriteFrame = asset as cc.SpriteFrame;
                }
            });

            if (reward.Type == 1) {
                this.node.getChildByName('txtNum').getComponent(cc.Label).string = '+' + reward.Num.toString();
            }
            else if (reward.Type >= 2 && reward.Type <= 4) {
                //炸弹 分裂炮 飞轮
                this.node.getChildByName('txtNum').getComponent(cc.Label).string = '+' + reward.Num.toString();
            }
            else if (reward.Type == 5) {
                //西瓜球
                this.node.getChildByName('txtNum').getComponent(cc.Label).string = '西瓜球';
            }
        }



    }

    protected onDisable(): void {

    }

    // update (dt) {}

    onGetClick() {

        let reward = this.enableParam as WheelTable;

        if (reward.Type == 1) {
            SaveDataManager.ins.adjustDiamond(reward.Num, true);
        }
        else if (reward.Type >= 2 && reward.Type <= 4) {
            //炸弹 分裂炮 飞轮
            let skillId: UserSkill = UserSkill.NONE;

            switch (reward.Type) {
                case 2:
                    skillId = UserSkill.BOMB;
                    break;
                case 3:
                    skillId = UserSkill.DOUBLE_SHOOT;
                    break;
                case 4:
                    skillId = UserSkill.SHURIKEN;
                    break;
            }

            if (skillId > UserSkill.NONE) {
                SaveDataManager.ins.setUserSkillNumDelta(skillId, reward.Num);
            }
        }
        else if (reward.Type == 5) {
            //西瓜球

            if (SaveDataManager.ins.runtimeData.ballSkinUnlocked.includes(5)) {
                //已经解锁了
                let gameplayConfig = (tMgr.getConfig(TableName.GAME_PLAY, 19) as GamePlayTable);
                SaveDataManager.ins.adjustDiamond(gameplayConfig.Value, true);
            }
            else {
                SaveDataManager.ins.unlockBallSkin(5);
            }

        }

        getGlobalNode().emit(GlobalEvent.WHEEL_REWARD_GET);
        UIManager.ins.closeWindow(WindowName.GET);

    }
}