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.
73 lines
2.1 KiB
73 lines
2.1 KiB
import CsvMgr from "../Mgr_CSV/CsvMgr";
|
|
import { localBagData } from "../Mgr_LocalData/DataTypeProxy/BagDataProxy";
|
|
import { TokenDataProxy } from "../Mgr_LocalData/DataTypeProxy/TokenDataProxy";
|
|
import { TreasureDataProxy } from "../Mgr_LocalData/DataTypeProxy/TreasureDataProxy";
|
|
import { PropType } from "./GameEnum";
|
|
import { BAG_PARAMS, TREASURE_TYPE } from "./GGameData";
|
|
import IUpgrade from "./IUpgrade";
|
|
|
|
export default class BagDataPoxy extends IUpgrade{
|
|
archive: localBagData;
|
|
uplevelcost: number = 0; //升级消耗
|
|
constructor(bagArchive: localBagData) {
|
|
// 调用父类构造函数,传入等级和材料参数
|
|
super(bagArchive.level, BAG_PARAMS.MATERIAL_BASE, BAG_PARAMS.MATERIAL_SENIOR);
|
|
this.archive = bagArchive;
|
|
this.refreshLevel();
|
|
}
|
|
|
|
// Getter 属性
|
|
/**
|
|
* 检查限制条件
|
|
* @param {number} value - 要检查的值
|
|
* @returns {boolean} 是否达到限制
|
|
*/
|
|
checkLimit(totalAdded) {
|
|
return totalAdded >= 6;
|
|
}
|
|
|
|
/**
|
|
* 刷新等级
|
|
*/
|
|
protected refreshLevel() {
|
|
this.archive.level = this.level;
|
|
this.refreshSize();
|
|
// 计算升级费用(指数增长)
|
|
this.uplevelcost = Math.pow(this.level, 4) * BAG_PARAMS.BASE_COST;
|
|
}
|
|
|
|
/**
|
|
* 刷新容量大小
|
|
*/
|
|
refreshSize(){
|
|
this.archive.size = BAG_PARAMS.BASE_SIZE + (this.level - 1) * BAG_PARAMS.ADD_SIZE;
|
|
this.archive.size += TreasureDataProxy.Ins.getProp1(TREASURE_TYPE.CAPACITY);
|
|
}
|
|
|
|
/**
|
|
* 获取背包升级因子
|
|
*/
|
|
get factor() {
|
|
const level = this.level;
|
|
return level < 2 ? level + 1 : level * level;
|
|
}
|
|
|
|
/**
|
|
* 获取物品数量
|
|
*/
|
|
private getItemCount(id): number{
|
|
return this.archive.items.filter(item => item.id == id).length;
|
|
}
|
|
|
|
/**
|
|
* 检查背包升级材料是否足够
|
|
*/
|
|
checkMaterials() {
|
|
for (const item of this.materials) {
|
|
if (this.getItemCount(item.id) < item.value) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|