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.
409 lines
15 KiB
409 lines
15 KiB
|
|
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 GameBase from "../../SCommon/GameBase";
|
|
import { ZhanLanGuanManager } from "./ZhanLanGuanManager";
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class ZhanLanGuan extends GameBase {
|
|
|
|
@property(cc.Node)
|
|
fishListDialog: cc.Node = null; //鱼列表弹窗
|
|
|
|
@property(cc.Node)
|
|
fishContent: cc.Node = null; //鱼列表内容
|
|
|
|
@property(cc.Node)
|
|
fishNode: cc.Node = null; //鱼列表节点
|
|
|
|
@property(cc.Node)
|
|
fishShowNode: cc.Node = null; //鱼展示节点
|
|
|
|
@property(cc.Node)
|
|
zhaoMuNode: cc.Node = null;
|
|
|
|
|
|
_dt = 0
|
|
fishNodeList: cc.Node[] = null; //展示鱼节点列表
|
|
fishMoveRange: cc.Rect = null; //鱼移动范围
|
|
|
|
onLoad() {
|
|
super.onLoad();
|
|
}
|
|
|
|
onDestroy() {
|
|
Common5.playMusic("sound/背景音");
|
|
super.onDestroy();
|
|
}
|
|
|
|
start() {
|
|
//Common5.playMusic("sound/冰雪世界");
|
|
this.initData();
|
|
this.initComponent();
|
|
|
|
|
|
// EventMgr.onEvent_custom(ryw_Event.refreshZhaoMuTimes, () => {
|
|
// this.showShouYiNode()
|
|
// this.refreshZhaoMuTime()
|
|
// }, this)
|
|
|
|
// this.schedule(() => {
|
|
// let dt = 0.016
|
|
// this.fishAnimation(dt);
|
|
|
|
// this._dt += dt
|
|
// if (this._dt >= 1.0) {
|
|
// this._dt = 0
|
|
// this.refreshZhaoMuTime()
|
|
|
|
// }
|
|
|
|
// }, 0.016)
|
|
|
|
}
|
|
|
|
//初始化数据
|
|
initData() {
|
|
this.fishNodeList = [];
|
|
this.fishMoveRange = new cc.Rect(-this.fishShowNode.width / 2, -this.fishShowNode.height / 2, this.fishShowNode.width, this.fishShowNode.height);
|
|
}
|
|
|
|
//初始化组件
|
|
initComponent() {
|
|
this.fishListDialog.active = false;
|
|
this.initFishList();
|
|
this.showFishNodeList();
|
|
|
|
//this.refreshZhaoMuTime()
|
|
//this.showShouYiNode()
|
|
|
|
}
|
|
|
|
//初始化鱼列表
|
|
initFishList() {
|
|
this.fishNode.active = false;
|
|
let fishShowDataList = User.getShowFishDataList();
|
|
|
|
|
|
//this.checkTaskFinish()
|
|
|
|
|
|
let bagGoodsList = User.getBagGoodsList();
|
|
console.log("物品列表", bagGoodsList);
|
|
for (const good of bagGoodsList) {
|
|
let fishShowInfo = ZhanLanGuanManager.getFishShowInfoByGoodId(good.goodId);
|
|
if (fishShowInfo) {
|
|
console.log("+++++++++++++", fishShowInfo);
|
|
let isShow = true;
|
|
for (let i = 0; i < fishShowDataList.length; i++) {
|
|
let fishShowInfo2 = ZhanLanGuanManager.getFishShowInfoById(fishShowDataList[i]);
|
|
if (fishShowInfo.goodId == fishShowInfo2.goodId) {
|
|
isShow = false;
|
|
break;
|
|
}
|
|
}
|
|
if (isShow) {
|
|
let fishNode = cc.instantiate(this.fishNode)
|
|
fishNode.setPosition(cc.v2(0, 0))
|
|
fishNode.parent = this.fishContent;
|
|
fishNode.active = true;
|
|
fishNode['goodId'] = fishShowInfo.goodId;
|
|
let icon = fishNode.getChildByName('icon');
|
|
let fishNum = fishNode.getChildByName('fishNum');
|
|
let labName = fishNode.getChildByName('labName').getComponent(cc.Label);
|
|
fishNum.getComponent(cc.Label).string = 'x' + good.goodNum;
|
|
// Common5.getSpriteFrameFromBundle("GoodIcon", "icon/" + good.goodId, icon.getComponent(cc.Sprite));
|
|
Common5.setRemoteSpriteFrame(icon.getComponent(cc.Sprite),'GoodIcon/'+ good.goodId)
|
|
labName.string = fishShowInfo.name;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//展示鱼列表
|
|
showFishNodeList() {
|
|
let fishShowDataList = User.getShowFishDataList();
|
|
for (let i = 0; i < fishShowDataList.length; i++) {
|
|
let fishShowInfo = ZhanLanGuanManager.getFishShowInfoById(fishShowDataList[i]);
|
|
this.initFishNode(fishShowInfo);
|
|
}
|
|
}
|
|
|
|
//初始化鱼节点
|
|
initFishNode(fishShowInfo) {
|
|
Common5.getPrefabFromBundle("GameRes", 'huangjinyufu/' + fishShowInfo.url, this.fishShowNode, (fish: cc.Node) => {
|
|
fish.active = true;
|
|
fish['id'] = fishShowInfo.id;
|
|
fish['moveType'] = fishShowInfo.moveType;
|
|
fish['moveSpeed'] = fishShowInfo.moveSpeed;
|
|
fish.getChildByName('光').active = false;
|
|
|
|
//随机生成鱼速度
|
|
if (fishShowInfo.moveType == 1) {
|
|
if (Math.random() < 0.5) {
|
|
fish.scaleX = -Math.abs(fish.scaleX);
|
|
}
|
|
} else if (fishShowInfo.moveType == 2) {
|
|
fish['moveSpeVec'] = new cc.Vec2(0, 0);
|
|
fish['moveSpeVec'].x = (Math.random() + 1) / 2;
|
|
if (Math.random() < 0.5) {
|
|
fish['moveSpeVec'].y = - (Math.random() + 1) / 2;
|
|
} else {
|
|
fish['moveSpeVec'].y = (Math.random() + 1) / 2;
|
|
}
|
|
}
|
|
|
|
//随机生成鱼坐标
|
|
const randomNodePos = (fish: cc.Node) => {
|
|
fish.x = Common5.getRandomNum(-this.fishMoveRange.width / 2 + 100, this.fishMoveRange.width / 2 - 100);
|
|
fish.y = Common5.getRandomNum(-this.fishMoveRange.height / 2 + 100, this.fishMoveRange.height / 2 - 100);
|
|
for (const iterator of this.fishNodeList) {
|
|
if (iterator.getBoundingBox().intersects(fish.getBoundingBox())) {
|
|
randomNodePos(fish);
|
|
}
|
|
}
|
|
}
|
|
randomNodePos(fish);
|
|
|
|
this.fishNodeList.push(fish);
|
|
});
|
|
}
|
|
|
|
//刷新收益信息
|
|
// showShouYiNode() {
|
|
// let hetong = User.getUserHeTong()
|
|
// let xishuIndex = 1
|
|
// if(hetong.signMishuForever){
|
|
// xishuIndex = 2
|
|
// }
|
|
|
|
// let index = ZhaoMuGameType.ZhanLanGuan
|
|
// let localZhaoMuData = MeiNvZhaoMuManager.getMeiNvZhaoMuData()
|
|
// let zhaoMuBeiShu = localZhaoMuData[index].zhaoMuBeiShu
|
|
|
|
// const income = ZhanLanGuanManager.getIncomeSecondAll()*zhaoMuBeiShu*xishuIndex;
|
|
// const length = User.getShowFishDataList().length;
|
|
// const quat = User.getShowFishQuantity();
|
|
// const shouYiNode = this.node.getChildByName('shouYiNode');
|
|
// shouYiNode.getChildByName('moneyStr').getComponent(cc.Label).string = `${income}元/秒`;
|
|
// shouYiNode.getChildByName('showFishStr').getComponent(cc.Label).string = `展位数:${length}/${quat}`;
|
|
// }
|
|
|
|
update(dt) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
//鱼动画
|
|
fishAnimation(deltaTime: number) {
|
|
for (const iterator of this.fishNodeList) {
|
|
if (iterator['moveType'] == 1) {
|
|
if (iterator.scaleX > 0) {
|
|
iterator.x -= iterator['moveSpeed'] * deltaTime;
|
|
} else {
|
|
iterator.x += iterator['moveSpeed'] * deltaTime;
|
|
}
|
|
if (iterator.x >= this.fishMoveRange.xMax) {
|
|
iterator.scaleX = Math.abs(iterator.scaleX);
|
|
} else if (iterator.x <= this.fishMoveRange.xMin) {
|
|
iterator.scaleX = -Math.abs(iterator.scaleX);
|
|
}
|
|
} else if (iterator['moveType'] == 2) {
|
|
iterator.x += iterator['moveSpeVec'].x * deltaTime * iterator['moveSpeed'];
|
|
iterator.y += iterator['moveSpeVec'].y * deltaTime * iterator['moveSpeed'];
|
|
if (iterator.x >= this.fishMoveRange.xMax) {
|
|
iterator['moveSpeVec'].x = -(Math.random() + 1) / 2;
|
|
} else if (iterator.x <= this.fishMoveRange.xMin) {
|
|
iterator['moveSpeVec'].x = (Math.random() + 1) / 2;
|
|
}
|
|
if (iterator.y >= this.fishMoveRange.yMax) {
|
|
iterator['moveSpeVec'].y = -(Math.random() + 1) / 2;
|
|
} else if (iterator.y <= this.fishMoveRange.yMin) {
|
|
iterator['moveSpeVec'].y = (Math.random() + 1) / 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//展示所有鱼
|
|
onShowAllFishClick() {
|
|
// Common5.playEffect("sound/按键点击");
|
|
if (User.getShowFishDataList().length >= User.getShowFishQuantity()) {
|
|
Common5.showTips_custom("展位已满!");
|
|
return;
|
|
}
|
|
this.fishListDialog.active = true;
|
|
}
|
|
|
|
//增加展位
|
|
onAddZhanBeiClick(event) {
|
|
// Common5.playEffect("sound/按键点击");
|
|
if (User.getShowFishQuantity() >= 15) {
|
|
Common5.showTips_custom("无法再增加新展位!");
|
|
return;
|
|
}
|
|
let target = event.target;
|
|
let tab = {
|
|
onClose: (finish) => {
|
|
if (finish) {
|
|
Common5.ReportDY("inLevel", "展览馆-AD-增加展位");
|
|
let quat = User.getShowFishQuantity() + 1;
|
|
User.setShowFishQuantity(quat);
|
|
Common5.showTips_custom("目前展位数:" + quat);
|
|
//this.showShouYiNode();
|
|
|
|
this.reportKey(() => {
|
|
GameReport.ADReport('展览馆增加展位', 1);
|
|
})
|
|
}
|
|
else {
|
|
this.reportKey(() => {
|
|
GameReport.ADReport('展览馆增加展位', 0);
|
|
})
|
|
Common5.showTips_custom("广告未观看完");
|
|
}
|
|
}, onFailed: () => {
|
|
}
|
|
}
|
|
AppPlatform.playVideo_custom(tab);
|
|
}
|
|
|
|
//放鱼
|
|
onReleaseFishClick(event) {
|
|
// Common5.playEffect("sound/按键点击");
|
|
let target = event.target;
|
|
target.active = false;
|
|
let fishShowInfo = ZhanLanGuanManager.getFishShowInfoByGoodId(target['goodId']);
|
|
let showFishDataList = User.getShowFishDataList();
|
|
|
|
let showFishData = fishShowInfo.id
|
|
showFishDataList.push(showFishData);
|
|
|
|
|
|
|
|
User.setShowFishDataList(showFishDataList);
|
|
|
|
|
|
//this.checkTaskFinish()
|
|
|
|
this.initFishNode(fishShowInfo);
|
|
//this.showShouYiNode();
|
|
this.fishListDialog.active = false;
|
|
}
|
|
|
|
//关闭展览
|
|
onCloseXClick(event) {
|
|
// Common5.playEffect("sound/按键点击");
|
|
let target = event.target;
|
|
this.fishListDialog.active = false;
|
|
}
|
|
|
|
// checkTaskFinish() {
|
|
// let fishShowDataList = User.getShowFishDataList()
|
|
// let mainTaskId = TaskManager.getCurUnLockMainTaskId()
|
|
// if (mainTaskId == MainTaskIdEnum.MainTask_527) {
|
|
|
|
// let array = [4, 5, 6, 7, 8]
|
|
// let isHave = true
|
|
// for (let i = 0; i < array.length; i++) {
|
|
// if (fishShowDataList.indexOf(array[i]) < 0) {
|
|
// isHave = false
|
|
// }
|
|
// }
|
|
// if (isHave) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_527)
|
|
// }
|
|
|
|
// } else if (mainTaskId == MainTaskIdEnum.MainTask_528) {
|
|
|
|
// let array = [9]
|
|
// let isHave = true
|
|
// for (let i = 0; i < array.length; i++) {
|
|
// if (fishShowDataList.indexOf(array[i]) < 0) {
|
|
// isHave = false
|
|
// }
|
|
// }
|
|
// if (isHave) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_528)
|
|
// }
|
|
|
|
// } else if (mainTaskId == MainTaskIdEnum.MainTask_534) {
|
|
// let array = [0, 1, 2, 3]
|
|
// let isHave = true
|
|
// for (let i = 0; i < array.length; i++) {
|
|
// if (fishShowDataList.indexOf(array[i]) < 0) {
|
|
// isHave = false
|
|
// }
|
|
// }
|
|
// if (isHave) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_534)
|
|
// }
|
|
|
|
// } else if (mainTaskId == MainTaskIdEnum.MainTask_540) {
|
|
// let array = [10, 11]
|
|
// let isHave = true
|
|
// for (let i = 0; i < array.length; i++) {
|
|
// if (fishShowDataList.indexOf(array[i]) < 0) {
|
|
// isHave = false
|
|
// }
|
|
// }
|
|
// if (isHave) {
|
|
// TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_540)
|
|
// }
|
|
|
|
// }
|
|
// }
|
|
|
|
// refreshZhaoMuTime() {
|
|
|
|
// let localZhaoMuData = MeiNvZhaoMuManager.getMeiNvZhaoMuData()
|
|
// let maxTime = localZhaoMuData[ZhaoMuGameType.ZhanLanGuan].zhaoMuTime
|
|
// let zhaoMuBeiShu = localZhaoMuData[ZhaoMuGameType.ZhanLanGuan].zhaoMuBeiShu
|
|
// // let maxUnlockIndex = localZhaoMuData[ZhaoMuGameType.YuanYangChuan].maxUnlockIndex
|
|
|
|
// let hetong = User.getUserHeTong()
|
|
// let xishuIndex = 1
|
|
// if (hetong.signMishuForever) {
|
|
// xishuIndex = 2
|
|
// }
|
|
|
|
// zhaoMuBeiShu = zhaoMuBeiShu * xishuIndex
|
|
// if (maxTime > 0) {
|
|
// //按钮上人物显示第一个
|
|
// // let config = MeiNvZhaoMuManager.getConfigById(HaiYangQingjie.XiaShuiDao,0)
|
|
// // this.zhaoMuNode.getChildByName('tipSpr').active = false
|
|
// this.zhaoMuNode.getChildByName('renSpine').active = true
|
|
// // this.zhaoMuNode.getChildByName('renSpine').getComponent(sp.Skeleton).setAnimation(0,'半身呼吸',true)
|
|
// // this.zhaoMuNode.getChildByName('renSpine').getComponent(sp.Skeleton).setSkin(config.skinIndex)
|
|
// this.zhaoMuNode.getChildByName('timeStr').getComponent(cc.Label).string = `${DateUtils.formatTime_custom(maxTime)}`
|
|
// this.zhaoMuNode.getChildByName('tipSpr').getChildByName('shouYiStr').getComponent(cc.Label).string = `收益x${zhaoMuBeiShu}`
|
|
// } else {
|
|
// // this.zhaoMuNode.getChildByName('tipSpr').active = true
|
|
// this.zhaoMuNode.getChildByName('renSpine').active = false
|
|
// this.zhaoMuNode.getChildByName('timeStr').getComponent(cc.Label).string = ``
|
|
// // this.zhaoMuNode.getChildByName('shouYiStr').getComponent(cc.Label).string = `秘书招聘`
|
|
// if (xishuIndex == 2) {
|
|
// this.zhaoMuNode.getChildByName('tipSpr').getChildByName('shouYiStr').getComponent(cc.Label).string = `收益 x 2`
|
|
// } else {
|
|
// this.zhaoMuNode.getChildByName('tipSpr').getChildByName('shouYiStr').getComponent(cc.Label).string = `收益 x N`
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
// zhaomuClickEvent() {
|
|
// Common5.playEffect("CommonRes/sound/按键点击")
|
|
|
|
// PrefabManage.loadPrefabByType(GameType.MeiNvZhaoMu, null, (prefabNode) => {
|
|
// prefabNode.getComponent(MeiNvZhaoMu).initView(ZhaoMuGameType.ZhanLanGuan)
|
|
// })
|
|
// }
|
|
}
|
|
|