cc.Class({ extends: cc.Component, properties: { ManageAI: cc.Node, GoldLabel: cc.Node, DiamondLabel: cc.Node, LV: cc.Node, MaxWorkLV: cc.Node, WorkerNum: cc.Node, WorkerCapacity: cc.Node, PhysicalStrength: cc.Node, Labor: cc.Node, Wages: cc.Node, RecruitCost: cc.Node, UpGradeCost: cc.Node, // //工人容量值 // workerCapacity: { default: 32, type: cc.Integer, tooltip: '可招聘工人最大值' }, //“管理”界面的招聘进度条 Recruit ManagementProgressBar_Recruit: { default: null, type: cc.Node, }, //“管理”界面的培训进度条 ManagementProgressBar_Train: { default: null, type: cc.Node, }, AlertUIView: cc.Node, }, start() { // this.InitWorkerAI(); }, InitWorkerAI: function () { //体力 劳动力 薪资 培训费用 this.WorkerLVPropertyJSON = [ { PhysicalStrength: '50', Labor: '5', Wages: '50', UpgradeCost: '20', MoveSpeed: '100', }, { PhysicalStrength: '55', Labor: '7', Wages: '100', UpgradeCost: '50', MoveSpeed: '120', }, { PhysicalStrength: '60', Labor: '9', Wages: '200', UpgradeCost: '100', MoveSpeed: '140', }, { PhysicalStrength: '65', Labor: '11', Wages: '300', UpgradeCost: '500', MoveSpeed: '160', }, { PhysicalStrength: '70', Labor: '13', Wages: '400', UpgradeCost: '1000', MoveSpeed: '180', }, { PhysicalStrength: '75', Labor: '15', Wages: '500', UpgradeCost: '1500', MoveSpeed: '200', }, { PhysicalStrength: '80', Labor: '17', Wages: '600', UpgradeCost: '2000', MoveSpeed: '220', }, { PhysicalStrength: '85', Labor: '18', Wages: '700', UpgradeCost: '2500', MoveSpeed: '240', }, { PhysicalStrength: '90', Labor: '19', Wages: '800', UpgradeCost: '3000', MoveSpeed: '260', }, { PhysicalStrength: '100', Labor: '20', Wages: '900', UpgradeCost: '0', MoveSpeed: '280', }, ] this.WorkerNum.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerNum() //容量是定死的值,不用存储,也不用读取 this.WorkerCapacity.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerCapacity() this.SetBar_RecruitLength( GlobalD.GameData.GetWorkerNum() / GlobalD.GameData.GetWorkerCapacity() ) this.LV.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerLV() + 1 this.MaxWorkLV.getComponent(cc.Label).string = this.WorkerLVPropertyJSON.length this.SetBar_TrainLength( (GlobalD.GameData.GetWorkerLV() + 1) / this.WorkerLVPropertyJSON.length ) let CurrentGradeJson = this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()] this.PhysicalStrength.getComponent(cc.Label).string = CurrentGradeJson.PhysicalStrength this.Labor.getComponent(cc.Label).string = CurrentGradeJson.Labor this.Wages.getComponent(cc.Label).string = CurrentGradeJson.Wages this.RecruitCost.getComponent(cc.Label).string = CurrentGradeJson.Wages this.UpGradeCost.getComponent(cc.Label).string = CurrentGradeJson.UpgradeCost this._ManageAI = this.ManageAI.getComponent('ManageAI') this._ManageAI.InitCurrentGradeJson = CurrentGradeJson //生成存储的工人数据 this._ManageAI.onSpawnWorkerAIFromStoredData() // cc.log('工人'); }, //招聘 onRecruit: function () { if (task.TaskIconCountClick == 1) { //现在关掉招聘的 页面 弹出对话框 提示 要点击建造 task.managerUi.onButtonEvent_Personnel_Close() task.showManagerhide() var Canvas = cc.find('Canvas/UICamera') //移动camera 对应位置 cc.find('GameNode/ManageTask') .getComponent('ManageTask') .onMoveToTiledTile(16, 16) //招聘了人马上设置对应的数 task.TaskIconCountClick = -1 dialogmanager.init( Canvas, function () { dialogmanager.pickUp(dialogmanager.dialogue[30]) }.bind(this) ) dialogmanager.setOnCloseDialog( function () { task.removeTaskNode(task.taskCursorName[3]) // task._setTaskIconCountClick(12); // task._setTaskIconCountClick(13); // setTimeout(() => { // task.taskCallBack(); // }, 500); //建房子 GlobalD.ManageTask.onInitGameStartTask() }.bind(this) ) } if ( GlobalD.GameData.GetWorkerNum() + 1 > GlobalD.GameData.GetWorkerCapacity() ) { cc.loader.loadRes( 'resUI/ShowNotEnoughMoney', function (err, texture) { var prefab = cc.instantiate(texture) prefab.getComponent('ShowNotEnoughMoney').Text('超员了!!') this.AlertUIView.addChild(prefab) }.bind(this) ) return } if ( GlobalD.GameData.GetGolden() < parseInt(this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()].Wages) ) { cc.loader.loadRes( 'resUI/ShowNotEnoughMoney', function (err, texture) { var prefab = cc.instantiate(texture) prefab.getComponent('ShowNotEnoughMoney').Text('金币不足!!') this.AlertUIView.addChild(prefab) }.bind(this) ) return } GlobalD.GameData.PlusGolden( -parseInt(this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()].Wages) ) GlobalD.GameData.PlusWorkerNum(1) this.WorkerNum.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerNum() this._ManageAI.onSpawnWorkerAI() this.SetBar_RecruitLength( GlobalD.GameData.GetWorkerNum() / GlobalD.GameData.GetWorkerCapacity() ) }, Building_t: function () { var Canvas = cc.find('Canvas/UICamera') var Building = cc.find('Canvas/UICamera/BelowTheMask/Building') task.addTaskTips( Canvas, task.taskPrefab[6], 0, 0, task.taskCursorName[1], function (nodePrefabs1) { UtilsPrefabs.setOn( nodePrefabs1.getChildByName('SureBtn'), function () { task.removeTaskNode(task.taskCursorName[1]) task.addTaskTips( Building, task.taskPrefab[1], -50, -50, task.taskCursorName[0], function (nodePrefabs) {}.bind(this) ) }.bind(this) ) }.bind(this) ) }, //解雇 onFire: function () { if (GlobalD.GameData.GetWorkerNum() - 1 < 0) return if (this._ManageAI.onRemoveWorkerAI()) { //如果成功删除AI GlobalD.GameData.PlusWorkerNum(-1) this.WorkerNum.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerNum() } }, onFireNum() { this.FirePerson(5) }, FirePerson: function (num) { if (GlobalD.GameData.GetWorkerNum() - num < 0) { num = GlobalD.GameData.GetWorkerNum() } //不需要解雇 if (num <= 0) return if (this.AutoFireWorker) this.unschedule(this.AutoFireWorker) //自动存储数据 this.AutoFireWorker = function () { if (num <= 0) return for (let i = 0; i < num; i++) { //只能解雇可以解雇状态下的工人 if (this._ManageAI.onRemoveWorkerAI()) { //如果成功删除AI GlobalD.GameData.PlusWorkerNum(-1) this.WorkerNum.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerNum() num-- } } } this.schedule(this.AutoFireWorker, 0.5) }, //培训 onUpgrade: function () { if (this.WorkerLVPropertyJSON.length - 2 < GlobalD.GameData.GetWorkerLV()) return let CurrentGradeJson = this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()] let UpgradeCost = CurrentGradeJson.UpgradeCost if (GlobalD.GameData.GetDiamond() < UpgradeCost) { cc.loader.loadRes( 'resUI/ShowNotEnoughMoney', function (err, texture) { var prefab = cc.instantiate(texture) prefab.getComponent('ShowNotEnoughMoney').Text('钻石不足!!') this.AlertUIView.addChild(prefab) }.bind(this) ) return } GlobalD.GameData.PlusDiamond(-UpgradeCost) // this.GoldLabel.getComponent(cc.Label).string = GlobalD.GameData.GetDiamond(); // this.DiamondNowlabel.string = result + '/30000' this.DiamondLabel.getComponent(cc.Label).string = GlobalD.GameData.GetDiamond() GlobalD.GameData.PlusWorkerLV(1) this.LV.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerLV() + 1 CurrentGradeJson = this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()] this.PhysicalStrength.getComponent(cc.Label).string = CurrentGradeJson.PhysicalStrength this.Labor.getComponent(cc.Label).string = CurrentGradeJson.Labor this.Wages.getComponent(cc.Label).string = CurrentGradeJson.Wages GlobalD.GameData.SetWorkerCapacity(CurrentGradeJson.Labor) this.WorkerCapacity.getComponent(cc.Label).string = CurrentGradeJson.Labor //修改全体人物属性 this._ManageAI.InitCurrentGradeJson = CurrentGradeJson this._ManageAI.onUpgradeAllWorker() this.SetBar_TrainLength( (GlobalD.GameData.GetWorkerLV() + 1) / this.WorkerLVPropertyJSON.length ) this.SetBar_RecruitLength( GlobalD.GameData.GetWorkerNum() / GlobalD.GameData.GetWorkerCapacity() ) this.RecruitCost.getComponent(cc.Label).string = CurrentGradeJson.Wages this.UpGradeCost.getComponent(cc.Label).string = CurrentGradeJson.UpgradeCost }, onDegrade: function () { if (GlobalD.GameData.GetWorkerLV() - 1 < 0) return GlobalD.GameData.PlusWorkerLV(-1) this.LV.getComponent(cc.Label).string = GlobalD.GameData.GetWorkerLV() + 1 let CurrentGradeJson = this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()] CurrentGradeJson = this.WorkerLVPropertyJSON[GlobalD.GameData.GetWorkerLV()] this.PhysicalStrength.getComponent(cc.Label).string = CurrentGradeJson.PhysicalStrength this.Labor.getComponent(cc.Label).string = CurrentGradeJson.Labor this.Wages.getComponent(cc.Label).string = CurrentGradeJson.Wages GlobalD.GameData.SetWorkerCapacity(CurrentGradeJson.Labor) this.WorkerCapacity.getComponent(cc.Label).string = CurrentGradeJson.Labor //修改全体人物属性 this._ManageAI.InitCurrentGradeJson = CurrentGradeJson this._ManageAI.onUpgradeAllWorker() this.SetBar_TrainLength( (GlobalD.GameData.GetWorkerLV() + 1) / this.WorkerLVPropertyJSON.length ) this.SetBar_RecruitLength( GlobalD.GameData.GetWorkerNum() / GlobalD.GameData.GetWorkerCapacity() ) }, //招聘进度条 SetBar_RecruitLength: function (BarLength) { //BarLength(0~1,float) this.ManagementProgressBar_Recruit.getComponent(cc.ProgressBar).progress = BarLength }, //培训进度条 SetBar_TrainLength: function (BarLength) { //BarLength(0~1,float) this.ManagementProgressBar_Train.getComponent(cc.ProgressBar).progress = BarLength }, })