mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-27 02:36:14 +00:00
宠物升星
This commit is contained in:
@@ -1,6 +1,15 @@
|
||||
import { app } from "../App";
|
||||
import { API, PlayerInfoOV, PlayerPetOV } from "../consts/API";
|
||||
import BaseData from "./BaseData";
|
||||
import PlayerTacticalData from "./PlayerTacticalData";
|
||||
import { ResourceUpdateType } from "./ResourceData";
|
||||
|
||||
export enum PlayerPetEvent{
|
||||
UPDATE = "PlayerPetEvent_UPDATE", //刷新宠物
|
||||
UPDATE_INFO = "PlayerPetEvent_UPDATE_INFO", //刷新宠物信息
|
||||
UPDATE_ADD = "PlayerPetEvent_UPDATE_ADD", //添加宠物
|
||||
UPDATE_MINUS = "PlayerPetEvent_UPDATE_MINUS", //减少宠物
|
||||
}
|
||||
|
||||
//玩家宠物数据
|
||||
export default class PlayerPetData extends BaseData{
|
||||
@@ -20,6 +29,16 @@ export default class PlayerPetData extends BaseData{
|
||||
return this.datas;
|
||||
}
|
||||
|
||||
//获取指定宠物
|
||||
getPetIdData(petTbId:number,datas:PlayerPetOV[] = this.datas):PlayerPetOV[]{
|
||||
return datas.filter(data => data.petTbId == petTbId);
|
||||
}
|
||||
|
||||
//获取未上阵的宠物
|
||||
getNoTacticalData():PlayerPetOV[]{
|
||||
return this.datas.filter(data => PlayerTacticalData.getIns().getTacticalInfo().indexOf(data.petId) < 0);
|
||||
}
|
||||
|
||||
//更新玩家宠物
|
||||
async UpdatePlayerPet(){
|
||||
//获取全部宠物
|
||||
@@ -43,6 +62,54 @@ export default class PlayerPetData extends BaseData{
|
||||
this.datas.push(pet);
|
||||
}
|
||||
|
||||
//刷新返回宠物
|
||||
onUpdateOV(operation:number,resource:PlayerPetOV){
|
||||
|
||||
//如果没有刷新的宠物 则 返回
|
||||
if(!resource) return;
|
||||
|
||||
if(operation == ResourceUpdateType.UPDATE){
|
||||
//更新资源
|
||||
//找到需要被刷新的宠物 然后刷新 找不到则添加
|
||||
let pet = this.datas.filter(pet => pet.petId == resource.petId)[0];
|
||||
if(pet){
|
||||
//更新数据
|
||||
Object.assign(pet,resource);
|
||||
app.event.emit(PlayerPetEvent.UPDATE_INFO)
|
||||
}else{
|
||||
operation = ResourceUpdateType.ADD;
|
||||
this.onUpdateOV(operation,resource);
|
||||
}
|
||||
}else if(operation == ResourceUpdateType.ADD){
|
||||
//查询如果没有这个宠物则添加 负责 刷新
|
||||
let pet = this.datas.filter(pet => pet.petId != resource.petId)[0];
|
||||
if(!pet){
|
||||
//没有则添加
|
||||
this.datas.push(resource);
|
||||
app.event.emit(PlayerPetEvent.UPDATE)
|
||||
app.event.emit(PlayerPetEvent.UPDATE_ADD,pet)
|
||||
}else{
|
||||
operation = ResourceUpdateType.UPDATE;
|
||||
this.onUpdateOV(operation,resource);
|
||||
}
|
||||
}else if(operation == ResourceUpdateType.MINUS){
|
||||
|
||||
//删除的宠物
|
||||
let delPet;
|
||||
//删除指定的宠物
|
||||
this.datas = this.datas.filter(pet => {
|
||||
if(pet.petId == resource.petId){
|
||||
delPet = pet;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
app.event.emit(PlayerPetEvent.UPDATE)
|
||||
delPet && app.event.emit(PlayerPetEvent.UPDATE_MINUS,delPet)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@@ -11,6 +11,13 @@ export enum ResourceType{
|
||||
Gold = 90001, //金币
|
||||
}
|
||||
|
||||
//资源刷新类型
|
||||
export enum ResourceUpdateType{
|
||||
UPDATE = 0, //刷新资源数量
|
||||
MINUS = 1, //减少资源数量
|
||||
ADD = 2, //添加资源数量
|
||||
}
|
||||
|
||||
//玩家资源数据
|
||||
export default class ResourceData extends BaseData{
|
||||
|
||||
@@ -43,12 +50,15 @@ export default class ResourceData extends BaseData{
|
||||
//刷新返回资源
|
||||
onUpdateOV(operation:number,resource:ResourceOV){
|
||||
|
||||
if(operation == 0){
|
||||
//如果没有刷新的资源 则 返回
|
||||
if(!resource) return;
|
||||
|
||||
if(operation == ResourceUpdateType.UPDATE){
|
||||
//更新资源
|
||||
this.data[resource.resourceTbId] = resource.resourceValue;
|
||||
app.event.emit(ResourceEvent.UPDATE)
|
||||
}
|
||||
|
||||
app.event.emit(ResourceEvent.UPDATE)
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user