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.
218 lines
10 KiB
218 lines
10 KiB
import User from "../../FrameWork/User/User";
|
|
import Common5 from "../../Platform/th/Common5";
|
|
import TaskManager, { MainTaskIdEnum } from "../JuQingChat/TaskManager";
|
|
import BagManager from "../Manager/BagManager";
|
|
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
export enum HookClawState {
|
|
START = 'start',
|
|
LAUNCH = 'launch',
|
|
RECOVERY = 'recovery'
|
|
}
|
|
|
|
const HuangJinYuFuConfig = {
|
|
//普通鱼 80%
|
|
commonFishType: [
|
|
{ goodId: 4001, id: 100, name: '龙虾', url: 'prefab/龙虾', skin: '口味虾', moveType: 1, moveSpeed: 150, catchPbl: 1, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4002, id: 101, name: '小丑鱼', url: 'prefab/小丑鱼', skin: '尼莫', moveType: 1, moveSpeed: 150, catchPbl: 1, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4003, id: 102, name: '螃蟹', url: 'prefab/螃蟹', skin: '庞海', moveType: 1, moveSpeed: 150, catchPbl: 1, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4004, id: 103, name: '蚌壳', url: 'prefab/蚌壳', skin: '贝壳', moveType: 0, moveSpeed: 0, catchPbl: 0.95, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4005, id: 104, name: '海星', url: 'prefab/海星', skin: '还行', moveType: 0, moveSpeed: 0, catchPbl: 0.95, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4006, id: 105, name: '鳖', url: 'prefab/鳖', skin: '王八', moveType: 1, moveSpeed: 150, catchPbl: 0.9, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4007, id: 106, name: '海胆', url: 'prefab/海胆', skin: '海胆', moveType: 0, moveSpeed: 0, catchPbl: 0.95, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4008, id: 107, name: '海鱼1', url: 'prefab/海鱼1', skin: '海鱼1', moveType: 1, moveSpeed: 200, catchPbl: 0.95, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4009, id: 108, name: '海鱼2', url: 'prefab/海鱼2', skin: '海鱼2', moveType: 1, moveSpeed: 200, catchPbl: 0.75, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 },
|
|
{ goodId: 4010, id: 109, name: '海鱼3', url: 'prefab/海鱼3', skin: '海鱼3', moveType: 1, moveSpeed: 200, catchPbl: 0.7, recoverySpeed: 0.7, appearPbl: 0.1, income: 10000 }
|
|
],
|
|
//特殊鱼 20%
|
|
specialFishType: [
|
|
{ goodId: 4011, id: 200, name: '电鳗', url: 'prefab/电鳗', skin: '吴亦凡', moveType: 1, moveSpeed: 150, catchPbl: 0.5, appearPbl: 0.2, recoverySpeed: 0.5, income: 100000 },
|
|
{ goodId: 4012, id: 201, name: '章鱼', url: 'prefab/章鱼', skin: '克苏鲁', moveType: 2, moveSpeed: 150, catchPbl: 0.6, appearPbl: 0.2, recoverySpeed: 0.5, income: 100000 },
|
|
{ goodId: 4013, id: 202, name: '海鱼4', url: 'prefab/海鱼4', skin: '海鱼4', moveType: 1, moveSpeed: 200, catchPbl: 0.5, appearPbl: 0.2, recoverySpeed: 0.5, income: 100000 },
|
|
{ goodId: 4014, id: 203, name: '海鱼5', url: 'prefab/海鱼5', skin: '旗鱼', moveType: 1, moveSpeed: 300, catchPbl: 0.3, appearPbl: 0.15, recoverySpeed: 0.5, income: 100000 },
|
|
{ goodId: 4015, id: 204, name: '道具一', url: 'prefab/道具一', skin: '道具', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0.1, recoverySpeed: 0.5, income: 100000 },
|
|
{ goodId: 4016, id: 205, name: '道具二', url: 'prefab/道具二', skin: '道具', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0.15, recoverySpeed: 0.5, income: 100000 },
|
|
|
|
|
|
{ goodId: 4017, id: 206, name: '等级1', url: 'prefab/等级1', skin: '等级2', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 2 },
|
|
{ goodId: 4018, id: 207, name: '等级2', url: 'prefab/等级2', skin: '等级3', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 3 },
|
|
{ goodId: 4019, id: 208, name: '等级3', url: 'prefab/等级3', skin: '等级5', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 5 },
|
|
|
|
{ goodId: 1704, id: 214, name: '驱魔珠', url: 'prefab/驱魔珠', skin: '驱魔珠', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 0 },
|
|
{ goodId: 1705, id: 215, name: '定心石', url: 'prefab/定心石', skin: '定心石', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 0 },
|
|
{ goodId: 1706, id: 216, name: '麒麟晶', url: 'prefab/麒麟晶', skin: '麒麟晶', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 0 },
|
|
{ goodId: 1707, id: 217, name: '辟邪玉', url: 'prefab/辟邪玉', skin: '辟邪玉', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 0 },
|
|
{ goodId: 1708, id: 218, name: '灵魂锁', url: 'prefab/灵魂锁', skin: '灵魂锁', moveType: 0, moveSpeed: 0, catchPbl: 1, appearPbl: 0, recoverySpeed: 0.5, income: 0 },
|
|
|
|
],
|
|
|
|
//广告道具
|
|
specialPropType: [
|
|
|
|
]
|
|
}
|
|
|
|
class HuangJinYuFuManager {
|
|
|
|
public MaxFishNum: number = 15; //最大鱼数量
|
|
public SpecialPbl: number = 20; //特殊鱼概率
|
|
public fishDataList: any[] = []; //鱼数据列表
|
|
|
|
//获取鱼信息
|
|
public getFishInfoById(id: number) {
|
|
for (const key in HuangJinYuFuConfig) {
|
|
if (Object.prototype.hasOwnProperty.call(HuangJinYuFuConfig, key)) {
|
|
const element = HuangJinYuFuConfig[key];
|
|
for (const iterator of element) {
|
|
if (iterator.id == id) {
|
|
return iterator;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//获取鱼信息
|
|
public getFishInfoList() {
|
|
let fishInfoList = [];
|
|
for (const key in HuangJinYuFuConfig) {
|
|
if (Object.prototype.hasOwnProperty.call(HuangJinYuFuConfig, key)) {
|
|
const element = HuangJinYuFuConfig[key];
|
|
for (const iterator of element) {
|
|
fishInfoList.push(iterator);
|
|
}
|
|
}
|
|
}
|
|
return fishInfoList;
|
|
}
|
|
|
|
//获取鱼数据
|
|
public getFishDataList(fishSizeMap: Map<string, cc.Size>, fishRange: cc.Size) {
|
|
// return this.randomFishList(fishSizeMap, fishRange); // //测试 fix me
|
|
|
|
this.fishDataList = User.getSaveFishDataList();
|
|
if (this.getFishDataListLength() <= 0) {
|
|
this.fishDataList = this.randomFishList(fishSizeMap, fishRange);
|
|
console.log('生成新的鱼数据!');
|
|
//保存鱼数据
|
|
let gentQuat = User.getGenerateFishQuantity() - 1;
|
|
User.setFishDataAndGentQuat(this.fishDataList, gentQuat);
|
|
return this.fishDataList;
|
|
|
|
} else {
|
|
console.log('获取旧鱼数据!');
|
|
return this.fishDataList;
|
|
}
|
|
}
|
|
|
|
//随机生成鱼数据
|
|
public randomFishList(fishSizeMap: Map<string, cc.Size>, fishRange: cc.Size) {
|
|
|
|
//随机生成鱼坐标
|
|
const randomNodePos = (fishData) => {
|
|
fishData.pos.x = fishData.rect.x = Common5.getRandomNum(-fishRange.width / 2, fishRange.width / 2);
|
|
fishData.pos.y = fishData.rect.y = Common5.getRandomNum(-fishRange.height / 2, fishRange.height / 2);
|
|
for (const iterator of this.fishDataList) {
|
|
if (iterator.rect.intersects(fishData.rect)) {
|
|
randomNodePos(fishData);
|
|
}
|
|
}
|
|
}
|
|
|
|
//随机生成鱼数据
|
|
this.fishDataList= [];
|
|
for (let index = 0; index < this.MaxFishNum; index++) {
|
|
let fishTypeConfig = HuangJinYuFuConfig.commonFishType;
|
|
if (Common5.getRandomNum(0, 100) < this.SpecialPbl) {
|
|
fishTypeConfig = HuangJinYuFuConfig.specialFishType;
|
|
}
|
|
|
|
let random = Math.random();
|
|
for (const iterator of fishTypeConfig) {
|
|
|
|
random -= iterator.appearPbl;
|
|
if (random < 0) {
|
|
let fishSize = fishSizeMap.get(iterator.name);
|
|
let fishData = {
|
|
id: iterator.id,
|
|
rect: new cc.Rect(0, 0, fishSize.width, fishSize.height),
|
|
pos: cc.v2(0, 0),
|
|
};
|
|
randomNodePos(fishData);
|
|
console.log('鱼名:' + iterator.name);
|
|
this.fishDataList.push(fishData);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
let dengjiArray = [206,207,208]
|
|
let addIndex2 =0
|
|
for(let i = this.fishDataList.length-1; i>=4;i--){
|
|
this.fishDataList[i].id = dengjiArray[addIndex2]
|
|
addIndex2++
|
|
if(addIndex2 == dengjiArray.length){
|
|
break
|
|
}
|
|
}
|
|
|
|
|
|
//任务需要 修改鱼ID fix me
|
|
let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo()
|
|
let mainId = mainTaskInfo.Id
|
|
if(mainId == MainTaskIdEnum.MainTask_516) {
|
|
let fishArray = [1704,1705,1706,1707,1708]
|
|
let configIdArray = [214,215,216,217,218]
|
|
let randIndex = 1 // 出两个
|
|
// if(BagManager.isHaveAllGood([10066,10067,10068,10069])){
|
|
// randIndex = 1// 出1个
|
|
// }
|
|
let addIndex =0
|
|
for(let i = 0;i<fishArray.length;i++){
|
|
//Common5.getRandomNum(1, 3)
|
|
|
|
if(BagManager.getBagGoodNums(fishArray[i])<=0){
|
|
let dataTemp = this.fishDataList[addIndex]
|
|
dataTemp.id = configIdArray[i]
|
|
addIndex++
|
|
}
|
|
|
|
if(addIndex==randIndex){
|
|
break
|
|
}
|
|
}
|
|
|
|
}
|
|
return this.fishDataList;
|
|
}
|
|
|
|
//删除鱼列表的鱼数据
|
|
public deleteFishData(fishData) {
|
|
if (this.fishDataList.indexOf(fishData) != -1) {
|
|
this.fishDataList.splice(this.fishDataList.indexOf(fishData), 1);
|
|
}
|
|
User.setFishDataAndGentQuat(this.fishDataList);
|
|
}
|
|
|
|
//获取鱼列表长度
|
|
public getFishDataListLength() {
|
|
return this.fishDataList.length;
|
|
}
|
|
|
|
//添加刷新次数
|
|
public addGenFishQua() {
|
|
let gentQuat = User.getGenerateFishQuantity() + 2;
|
|
User.setFishDataAndGentQuat(this.fishDataList, gentQuat);
|
|
return this.fishDataList;
|
|
}
|
|
|
|
|
|
public reSetFishQua() {
|
|
let gentQuat = User.getGenerateFishQuantity() + 2;
|
|
User.setFishDataAndGentQuat([], gentQuat);
|
|
return this.fishDataList;
|
|
}
|
|
}
|
|
|
|
export let hjyfManager = new HuangJinYuFuManager();
|
|
|