You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					415 lines
				
				16 KiB
			
		
		
			
		
	
	
					415 lines
				
				16 KiB
			| 
								 
											10 months ago
										 
									 | 
							
								import { ryw_Event } from "../../../FrameWork/Event/EventEnum";
							 | 
						||
| 
								 | 
							
								import EventMgr from "../../../FrameWork/Event/EventMgr";
							 | 
						||
| 
								 | 
							
								import GameReport from "../../../FrameWork/Report/ZyZyReport";
							 | 
						||
| 
								 | 
							
								import User from "../../../FrameWork/User/User";
							 | 
						||
| 
								 | 
							
								import AppPlatform from "../../../FrameWork/Util/AppPlatform";
							 | 
						||
| 
								 | 
							
								import Common5 from "../../../Platform/th/Common5";
							 | 
						||
| 
								 | 
							
								import TaskManager, { MainTaskIdEnum } from "../../JuQingChat/TaskManager";
							 | 
						||
| 
								 | 
							
								import BagManager from "../../Manager/BagManager";
							 | 
						||
| 
								 | 
							
								import UserManager from "../../Manager/UserManager";
							 | 
						||
| 
								 | 
							
								import NewGuideScript from "../../NewGuide/NewGuideScript";
							 | 
						||
| 
								 | 
							
								import PrefabManage, { GameType } from "../../PrefabManager/PrefabManage";
							 | 
						||
| 
								 | 
							
								import GameBase from "../../SCommon/GameBase";
							 | 
						||
| 
								 | 
							
								import GetAward from "../../SCommon/GetAward";
							 | 
						||
| 
								 | 
							
								import ZhongCanTingManager from "../ZhongCanTing/ZhongCanTingManager";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const { ccclass, property } = cc._decorator;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@ccclass
							 | 
						||
| 
								 | 
							
								export default class ZhiShuZaoLin extends GameBase {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Node)
							 | 
						||
| 
								 | 
							
								    dripPrefab: cc.Node = null;     // 水滴预制体
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Node)
							 | 
						||
| 
								 | 
							
								    dripLayer: cc.Node = null;     // 水滴层
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Node)
							 | 
						||
| 
								 | 
							
								    gameSettleView: cc.Node = null;     // 游戏结算
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Node)
							 | 
						||
| 
								 | 
							
								    backLayer: cc.Node = null;     // 返回按钮层
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Node)
							 | 
						||
| 
								 | 
							
								    cloudNode: cc.Node = null;     // 云
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Node)
							 | 
						||
| 
								 | 
							
								    saplingNode: cc.Node = null;     // 树苗
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.ProgressBar)
							 | 
						||
| 
								 | 
							
								    treeProgress: cc.ProgressBar = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property(cc.Label)
							 | 
						||
| 
								 | 
							
								    nextShouYi: cc.Label = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // @property(cc.Label)
							 | 
						||
| 
								 | 
							
								    // curIncomeLab: cc.Label = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // @property(cc.Label)
							 | 
						||
| 
								 | 
							
								    // endIncomeLab: cc.Label = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    @property([cc.Node])
							 | 
						||
| 
								 | 
							
								    rockLeftArr: cc.Node[] = [];
							 | 
						||
| 
								 | 
							
								    @property([cc.Node])
							 | 
						||
| 
								 | 
							
								    rockRightArr: cc.Node[] = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    TreeNeedDripArray = [5, 10, 20, 15, 20, 40, 20, 40, 60, 30, 50, 90, 55, 85, 110, 75, 100, 130, 95, 125, 150, 125, 165, 200];    // 树需要的水滴数量
							 | 
						||
| 
								 | 
							
								    LevelUnlocktaskIdArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];  // 关卡解锁任务id数组
							 | 
						||
| 
								 | 
							
								    DripMoveSpeed = 1600;  // 水滴运动速度
							 | 
						||
| 
								 | 
							
								    HaveGoodsLevelArray = [2, 3];  // 拥有的道具等级数组
							 | 
						||
| 
								 | 
							
								    HaveGoodsIdArray = [3095, 3605];  // 拥有的道具id数组
							 | 
						||
| 
								 | 
							
								    maskGuideNode: cc.Node = null;  // 遮罩层
							 | 
						||
| 
								 | 
							
								    dripArray: cc.Node[] = [];      // 水滴数组
							 | 
						||
| 
								 | 
							
								    dripPool: cc.NodePool = null;  // 水滴池
							 | 
						||
| 
								 | 
							
								    treeLevel: number = 0;  // 植树关卡
							 | 
						||
| 
								 | 
							
								    dripNumber: number = 0;  // 水滴数量
							 | 
						||
| 
								 | 
							
								    goodsIndex: number = 0;  // 道具索引
							 | 
						||
| 
								 | 
							
								    isStopAll: boolean = false;    // 是否停止所有
							 | 
						||
| 
								 | 
							
								    isStopRockMove: boolean = false;  // 是否停止岩石运动
							 | 
						||
| 
								 | 
							
								    canCreateDrip: boolean = true;  //是否能够生成水滴
							 | 
						||
| 
								 | 
							
								    rockIsMoveToRigthArr: boolean[] = [true, true, true];  // 岩石是否向右运动
							 | 
						||
| 
								 | 
							
								    rockSpeedArr: number[] = [250, 200, 230];  // 岩石运动速度
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    onLoad() {
							 | 
						||
| 
								 | 
							
								        super.onLoad();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    onDestroy(): void {
							 | 
						||
| 
								 | 
							
								        if (cc.isValid(this.maskGuideNode)) {
							 | 
						||
| 
								 | 
							
								            this.maskGuideNode.removeFromParent();
							 | 
						||
| 
								 | 
							
								            this.maskGuideNode.destroy();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        super.onDestroy();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        EventMgr.emitEvent_custom(ryw_Event.RefreshJuQingDuiHua);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected start(): void {
							 | 
						||
| 
								 | 
							
								        this.dripNumber = 0;
							 | 
						||
| 
								 | 
							
								        this.isStopAll = false;
							 | 
						||
| 
								 | 
							
								        this.isStopRockMove = false;
							 | 
						||
| 
								 | 
							
								        this.dripPrefab.active = false;
							 | 
						||
| 
								 | 
							
								        this.dripPool = new cc.NodePool();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.refreshLevelDataView();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        EventMgr.onEvent_custom(ryw_Event.NormalTouchEndCheck, (data_) => {
							 | 
						||
| 
								 | 
							
								            this.normalClickCallback(data_.targetNode);
							 | 
						||
| 
								 | 
							
								        }, this);
							 | 
						||
| 
								 | 
							
								        let spine = this.saplingNode.getComponent(sp.Skeleton);
							 | 
						||
| 
								 | 
							
								        spine.setCompleteListener(() => {
							 | 
						||
| 
								 | 
							
								            if (spine.animation == '抖动') {
							 | 
						||
| 
								 | 
							
								                spine.setAnimation(0, '静止', true);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected update(dt: number): void {
							 | 
						||
| 
								 | 
							
								        if (this.isStopAll) {
							 | 
						||
| 
								 | 
							
								            return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (dt > 0.5) {
							 | 
						||
| 
								 | 
							
								            dt = 1 / 60;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        this.updataRockMove(dt);
							 | 
						||
| 
								 | 
							
								        this.updataDripMove(dt);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 刷新关卡数据ui
							 | 
						||
| 
								 | 
							
								    refreshLevelDataView() {
							 | 
						||
| 
								 | 
							
								        this.treeLevel = User.getTreeLevel();
							 | 
						||
| 
								 | 
							
								        let levelNode = this.node.getChildByName('牌子').getChildByName('lab');
							 | 
						||
| 
								 | 
							
								        let goodsNode = this.node.getChildByName('GetPropView').getChildByName('lab');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.goodsIndex = -1;
							 | 
						||
| 
								 | 
							
								        for (let i = 0; i < this.HaveGoodsLevelArray.length; i++) {
							 | 
						||
| 
								 | 
							
								            const level = this.HaveGoodsLevelArray[i];
							 | 
						||
| 
								 | 
							
								            if (this.treeLevel <= level) {
							 | 
						||
| 
								 | 
							
								                this.goodsIndex = i;
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (this.treeLevel > this.TreeNeedDripArray.length) {
							 | 
						||
| 
								 | 
							
								            this.treeLevel = this.TreeNeedDripArray.length;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        levelNode.getComponent(cc.Label).string = `${this.treeLevel}`;
							 | 
						||
| 
								 | 
							
								        if (this.goodsIndex == -1) {
							 | 
						||
| 
								 | 
							
								            goodsNode.getComponent(cc.Label).string = `你已经领取完所有道具!`;
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            let goods = BagManager.getGoodsProperty(this.HaveGoodsIdArray[this.goodsIndex]);
							 | 
						||
| 
								 | 
							
								            goodsNode.getComponent(cc.Label).string = `种到第${this.HaveGoodsLevelArray[this.goodsIndex]}颗树可获得《${goods.goodName}》`;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // let curIncome = Common5.getNumberChangeHanzi(ZhongCanTingManager.getPerSecondShouYi(), '2');
							 | 
						||
| 
								 | 
							
								        // let endIncome = Common5.getNumberChangeHanzi(ZhongCanTingManager.getPerSecondShouYi(1), '2');
							 | 
						||
| 
								 | 
							
								        // this.curIncomeLab.string = `${curIncome}/秒`;
							 | 
						||
| 
								 | 
							
								        // this.endIncomeLab.string = `${endIncome}/秒`;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        let curShouYi = ZhongCanTingManager.getPerSecondShouYi()
							 | 
						||
| 
								 | 
							
								        let tiShengShouYi = ZhongCanTingManager.getPerSecondShouYi(1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        let str = `过关后每秒收益: ${Common5.getNumberChangeHanzi(curShouYi, '1', 1)}/秒 → ${Common5.getNumberChangeHanzi(tiShengShouYi, '1', 1)}/秒`
							 | 
						||
| 
								 | 
							
								        this.nextShouYi.string = str
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.updateDripNumberView();
							 | 
						||
| 
								 | 
							
								        this.updataRockState();
							 | 
						||
| 
								 | 
							
								        this.checkGameUnlock();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 刷新水滴数量ui
							 | 
						||
| 
								 | 
							
								    updateDripNumberView() {
							 | 
						||
| 
								 | 
							
								        const DripNumberMax = this.TreeNeedDripArray[this.treeLevel - 1];
							 | 
						||
| 
								 | 
							
								        let lab = this.node.getChildByName('DripNumberView').getChildByName('lab');
							 | 
						||
| 
								 | 
							
								        lab.getComponent(cc.Label).string = `${this.dripNumber}/${DripNumberMax}`;
							 | 
						||
| 
								 | 
							
								        this.treeProgress.progress = this.dripNumber / DripNumberMax;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 刷新岩石状态
							 | 
						||
| 
								 | 
							
								    updataRockState() {
							 | 
						||
| 
								 | 
							
								        for (let i = 0; i < this.rockLeftArr.length; i++) {
							 | 
						||
| 
								 | 
							
								            let checkRockLeft = this.rockLeftArr[i].getChildByName("石头");
							 | 
						||
| 
								 | 
							
								            let checkRockRight = this.rockRightArr[i].getChildByName("石头");
							 | 
						||
| 
								 | 
							
								            checkRockLeft.getComponent(sp.Skeleton).setAnimation(0, '干', true);
							 | 
						||
| 
								 | 
							
								            checkRockRight.getComponent(sp.Skeleton).setAnimation(0, '干', true);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 游戏解锁判定
							 | 
						||
| 
								 | 
							
								    checkGameUnlock() {
							 | 
						||
| 
								 | 
							
								        this.backLayer.active = false;
							 | 
						||
| 
								 | 
							
								        let taskInfo: any = TaskManager.getCurUnLockMainTaskInfo();
							 | 
						||
| 
								 | 
							
								        console.log(`taskId:${taskInfo.Id}, levelUnlocktaskId:${this.LevelUnlocktaskIdArray[this.treeLevel - 1]}`);
							 | 
						||
| 
								 | 
							
								        if (this.LevelUnlocktaskIdArray[this.treeLevel - 1] > taskInfo.Id) {
							 | 
						||
| 
								 | 
							
								            this.backLayer.active = true;
							 | 
						||
| 
								 | 
							
								            this.backLayer.getChildByName('标题').getComponent(cc.Label).string = `暂未解锁\n需继续游玩剧情解锁!`;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 点击回调事件
							 | 
						||
| 
								 | 
							
								    normalClickCallback(targetNode: cc.Node) {
							 | 
						||
| 
								 | 
							
								        if (targetNode.name == 'bg') {
							 | 
						||
| 
								 | 
							
								            if (this.canCreateDrip && !this.isStopAll) {
							 | 
						||
| 
								 | 
							
								                this.canCreateDrip = false;
							 | 
						||
| 
								 | 
							
								                let drip = this.dripPool.get();
							 | 
						||
| 
								 | 
							
								                if (drip == null) {
							 | 
						||
| 
								 | 
							
								                    drip = cc.instantiate(this.dripPrefab);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                this.dripLayer.addChild(drip);
							 | 
						||
| 
								 | 
							
								                this.dripArray.push(drip);
							 | 
						||
| 
								 | 
							
								                drip.setPosition(0, 350);
							 | 
						||
| 
								 | 
							
								                drip.active = true;
							 | 
						||
| 
								 | 
							
								                this.scheduleOnce(() => {
							 | 
						||
| 
								 | 
							
								                    this.canCreateDrip = true;
							 | 
						||
| 
								 | 
							
								                }, 0);
							 | 
						||
| 
								 | 
							
								                this.cloudNode.getComponent(sp.Skeleton).setAnimation(0, '云', false);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        //console.log(`this.foodPool:${this.foodPool.size()}`);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 岩石运动
							 | 
						||
| 
								 | 
							
								    updataRockMove(dt: number = 1 / 60) {
							 | 
						||
| 
								 | 
							
								        if (!this.isStopRockMove) {
							 | 
						||
| 
								 | 
							
								            //地刺运动
							 | 
						||
| 
								 | 
							
								            for (var i = 0; i < 3; i++) {
							 | 
						||
| 
								 | 
							
								                if (this.rockIsMoveToRigthArr[i]) {
							 | 
						||
| 
								 | 
							
								                    this.rockLeftArr[i].x += dt * this.rockSpeedArr[i]
							 | 
						||
| 
								 | 
							
								                    this.rockRightArr[i].x -= dt * this.rockSpeedArr[i]
							 | 
						||
| 
								 | 
							
								                    if (this.rockLeftArr[i].x >= -280) {
							 | 
						||
| 
								 | 
							
								                        this.rockSpeedArr[i] = Math.floor(Math.random() * 400 + 100)
							 | 
						||
| 
								 | 
							
								                        this.rockIsMoveToRigthArr[i] = false
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                } else {
							 | 
						||
| 
								 | 
							
								                    this.rockLeftArr[i].x -= dt * this.rockSpeedArr[i]
							 | 
						||
| 
								 | 
							
								                    this.rockRightArr[i].x += dt * this.rockSpeedArr[i]
							 | 
						||
| 
								 | 
							
								                    if (this.rockLeftArr[i].x <= -700) {
							 | 
						||
| 
								 | 
							
								                        this.rockSpeedArr[i] = Math.floor(Math.random() * 400 + 100)
							 | 
						||
| 
								 | 
							
								                        this.rockIsMoveToRigthArr[i] = true
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 水滴碰撞和移动
							 | 
						||
| 
								 | 
							
								    updataDripMove(dt: number = 1 / 60) {
							 | 
						||
| 
								 | 
							
								        for (const drip of this.dripArray) {
							 | 
						||
| 
								 | 
							
								            drip.y -= dt * this.DripMoveSpeed;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (drip.y <= -550) {
							 | 
						||
| 
								 | 
							
								                let index = this.dripArray.indexOf(drip);
							 | 
						||
| 
								 | 
							
								                this.dripArray.splice(index, 1);
							 | 
						||
| 
								 | 
							
								                this.dripPool.put(drip);
							 | 
						||
| 
								 | 
							
								                this.dripNumber++;
							 | 
						||
| 
								 | 
							
								                this.updateDripNumberView();
							 | 
						||
| 
								 | 
							
								                this.saplingNode.getComponent(sp.Skeleton).setAnimation(0, '抖动', false);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                const DripNumberMax = this.TreeNeedDripArray[this.treeLevel - 1];
							 | 
						||
| 
								 | 
							
								                if (this.dripNumber >= DripNumberMax) {
							 | 
						||
| 
								 | 
							
								                    this.isStopAll = true;
							 | 
						||
| 
								 | 
							
								                    this.node.getChildByName('大树').active = true;
							 | 
						||
| 
								 | 
							
								                    this.node.getChildByName('树苗').active = false;
							 | 
						||
| 
								 | 
							
								                    this.scheduleOnce(() => {
							 | 
						||
| 
								 | 
							
								                        this.gameSuccess();
							 | 
						||
| 
								 | 
							
								                    }, 0.5)
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                for (let index = 0; index < this.rockLeftArr.length; index++) {
							 | 
						||
| 
								 | 
							
								                    if (Common5.checkIntersectsBox(drip, this.rockLeftArr[index].getChildByName("langArea"))) {
							 | 
						||
| 
								 | 
							
								                        this.isStopAll = true;
							 | 
						||
| 
								 | 
							
								                        let checkRockLeft = this.rockLeftArr[index].getChildByName("石头");
							 | 
						||
| 
								 | 
							
								                        let checkRockRight = this.rockRightArr[index].getChildByName("石头");
							 | 
						||
| 
								 | 
							
								                        checkRockLeft.getComponent(sp.Skeleton).setAnimation(0, '浸湿', false);
							 | 
						||
| 
								 | 
							
								                        checkRockRight.getComponent(sp.Skeleton).setAnimation(0, '浸湿', false);
							 | 
						||
| 
								 | 
							
								                        this.scheduleOnce(() => {
							 | 
						||
| 
								 | 
							
								                            this.dripPool.put(drip);
							 | 
						||
| 
								 | 
							
								                        }, 0.1);
							 | 
						||
| 
								 | 
							
								                        this.scheduleOnce(() => {
							 | 
						||
| 
								 | 
							
								                            this.gameFail();
							 | 
						||
| 
								 | 
							
								                        }, 1);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 游戏成功
							 | 
						||
| 
								 | 
							
								    gameSuccess() {
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.active = true;
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.getChildByName('fail').active = false;
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.getChildByName('success').active = true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        let treeLevel = User.getTreeLevel();
							 | 
						||
| 
								 | 
							
								        if (this.treeLevel <= this.TreeNeedDripArray.length) {
							 | 
						||
| 
								 | 
							
								            if (treeLevel == this.HaveGoodsLevelArray[this.goodsIndex]) {
							 | 
						||
| 
								 | 
							
								                let goodArray = [{ goodId: this.HaveGoodsIdArray[this.goodsIndex], goodNum: 1 }];
							 | 
						||
| 
								 | 
							
								                PrefabManage.loadPrefabByType(GameType.GetAward, null, (prefabNode) => {
							 | 
						||
| 
								 | 
							
								                    prefabNode.getComponent(GetAward).initView(goodArray, () => {
							 | 
						||
| 
								 | 
							
								                        UserManager.addProperTiLi(1);
							 | 
						||
| 
								 | 
							
								                        User.setTreeLevel(treeLevel + 1);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                        let taskInfo: any = TaskManager.getCurUnLockMainTaskInfo();
							 | 
						||
| 
								 | 
							
								                        if (taskInfo.Id == MainTaskIdEnum.MainTask_1504) {
							 | 
						||
| 
								 | 
							
								                            for (const goodId of [3095, 3605]) {
							 | 
						||
| 
								 | 
							
								                                if (BagManager.getBagGoodNums(goodId) == 0) {
							 | 
						||
| 
								 | 
							
								                                    return;
							 | 
						||
| 
								 | 
							
								                                }
							 | 
						||
| 
								 | 
							
								                            }
							 | 
						||
| 
								 | 
							
								                            TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_1504);
							 | 
						||
| 
								 | 
							
								                            TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_1505);
							 | 
						||
| 
								 | 
							
								                        }
							 | 
						||
| 
								 | 
							
								                    });
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                UserManager.addProperTiLi(1);
							 | 
						||
| 
								 | 
							
								                User.setTreeLevel(treeLevel + 1);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 游戏失败
							 | 
						||
| 
								 | 
							
								    gameFail() {
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.active = true;
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.getChildByName('fail').active = true;
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.getChildByName('success').active = false;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 引导
							 | 
						||
| 
								 | 
							
								    guideView(nodeArray) {
							 | 
						||
| 
								 | 
							
								        if (this.maskGuideNode == null) {
							 | 
						||
| 
								 | 
							
								            PrefabManage.loadPrefabByType(GameType.GuideMskNode, this.node, (prefab) => {
							 | 
						||
| 
								 | 
							
								                let guideNodeArray = nodeArray
							 | 
						||
| 
								 | 
							
								                this.maskGuideNode = prefab
							 | 
						||
| 
								 | 
							
								                let firstNode = guideNodeArray.shift()
							 | 
						||
| 
								 | 
							
								                prefab.getComponent(NewGuideScript).setBindNode(firstNode, guideNodeArray)
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            this.maskGuideNode.active = true
							 | 
						||
| 
								 | 
							
								            let guideNodeArray = nodeArray
							 | 
						||
| 
								 | 
							
								            let firstNode = guideNodeArray.shift()
							 | 
						||
| 
								 | 
							
								            this.maskGuideNode.getComponent(NewGuideScript).setBindNode(firstNode, guideNodeArray)
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //再种一棵
							 | 
						||
| 
								 | 
							
								    onAgain() {
							 | 
						||
| 
								 | 
							
								        // Common5.playEffect("sound/按键点击");
							 | 
						||
| 
								 | 
							
								        for (const drip of this.dripArray) {
							 | 
						||
| 
								 | 
							
								            this.dripPool.put(drip);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        this.dripArray = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.dripNumber = 0;
							 | 
						||
| 
								 | 
							
								        this.refreshLevelDataView();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.active = false;
							 | 
						||
| 
								 | 
							
								        cc.tween(this.node.getChildByName('大树'))
							 | 
						||
| 
								 | 
							
								            .to(0.5, { x: 500 })
							 | 
						||
| 
								 | 
							
								            .call(() => {
							 | 
						||
| 
								 | 
							
								                this.saplingNode.getComponent(sp.Skeleton).setAnimation(0, '静止', true);
							 | 
						||
| 
								 | 
							
								                this.saplingNode.active = true;
							 | 
						||
| 
								 | 
							
								                this.isStopAll = false;
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								            .set({ active: false, x: 0 })
							 | 
						||
| 
								 | 
							
								            .start();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //返回
							 | 
						||
| 
								 | 
							
								    onBack() {
							 | 
						||
| 
								 | 
							
								        // Common5.playEffect("sound/按键点击");
							 | 
						||
| 
								 | 
							
								        this.node.removeFromParent();
							 | 
						||
| 
								 | 
							
								        this.node.destroy();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        EventMgr.emitEvent_custom(ryw_Event.ExitBtnEvent, '');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //重新开始
							 | 
						||
| 
								 | 
							
								    onRestart() {
							 | 
						||
| 
								 | 
							
								        // Common5.playEffect("sound/按键点击");
							 | 
						||
| 
								 | 
							
								        for (const drip of this.dripArray) {
							 | 
						||
| 
								 | 
							
								            this.dripPool.put(drip);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        this.dripArray = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.dripNumber = 0;
							 | 
						||
| 
								 | 
							
								        this.refreshLevelDataView();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        this.isStopAll = false;
							 | 
						||
| 
								 | 
							
								        this.gameSettleView.active = false;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //复活继续
							 | 
						||
| 
								 | 
							
								    onContinue() {
							 | 
						||
| 
								 | 
							
								        // Common5.playEffect("sound/按键点击");
							 | 
						||
| 
								 | 
							
								        let tab = {
							 | 
						||
| 
								 | 
							
								            onClose: (finish) => {
							 | 
						||
| 
								 | 
							
								                if (finish) {
							 | 
						||
| 
								 | 
							
								                    Common5.ReportDY("inLevel", '植树造林-AD-复活继续');
							 | 
						||
| 
								 | 
							
								                    this.reportKey(() => {
							 | 
						||
| 
								 | 
							
								                        GameReport.ADReport('植树造林复活继续', 1);
							 | 
						||
| 
								 | 
							
								                    })
							 | 
						||
| 
								 | 
							
								                    for (const drip of this.dripArray) {
							 | 
						||
| 
								 | 
							
								                        this.dripPool.put(drip);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                    this.dripArray = [];
							 | 
						||
| 
								 | 
							
								                    this.isStopAll = false;
							 | 
						||
| 
								 | 
							
								                    this.gameSettleView.active = false;
							 | 
						||
| 
								 | 
							
								                    this.updataRockState();
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else {
							 | 
						||
| 
								 | 
							
								                    this.reportKey(() => {
							 | 
						||
| 
								 | 
							
								                        GameReport.ADReport('植树造林复活继续', 0);
							 | 
						||
| 
								 | 
							
								                    })
							 | 
						||
| 
								 | 
							
								                    Common5.showTips_custom("广告未观看完");
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }, onFailed: () => { }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        AppPlatform.playVideo_custom(tab);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |