123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- import i18n from "../../../i18n/i18n";
- import Main from "../../../main/Main";
- import { AudioMgr } from "../../../main/ViewManage";
- import { HttpStateType, ReveData } from "../../../util/CHttp";
- import GoodItem from "../../common/GoodItem";
- import PetIcon from "../../common/PetIcon";
- import FFCalAttr from "../../data/FFCalAttr";
- import { __EquipData, __EquipQHData } from "../../data/sdata/SManage";
- import { EquipAttr } from "../../data/udata/Player";
- import Equip from "./Equip";
- import EquipQH from "./EquipQH";
- /**
- * 强化上限
- */
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class EquipQHMax extends cc.Component {
- @property(GoodItem)
- mEquipItem: GoodItem = null;
- @property(cc.Label)
- mEquipName: cc.Label = null;//装备名字
- @property(cc.Label)
- mEquipName1: cc.Label = null;//提示装备名字
- @property(cc.Node)
- mContent: cc.Node = null;//背包容器
- @property(cc.Prefab)
- mGoodItem: cc.Prefab = null;//道具节点
- @property(cc.Label)
- mQHLevel1: cc.Label = null;//当前强化等级
- @property(cc.Label)
- mQHLevel2: cc.Label = null;//目标强化等级
- @property(cc.Label)
- mQHLevel: cc.Label = null;//强化等级
- @property(cc.Label)
- mQHBfbLabel: cc.Label = null;//强化百分比
- @property(cc.ProgressBar)
- mQHBfbBar: cc.ProgressBar = null;//强化百分比
- @property(cc.Label)
- mQHMoney: cc.Label = null;//强化消耗的货币
- @property(cc.Label)
- mQHMaxLabel: cc.Label = null;//上限突破次数
- @property(GoodItem)
- mXHEquipItem: GoodItem = null;
- @property(cc.Node)
- mOneKeyBt: cc.Node = null;//一键放入按钮
- @property(cc.Node)
- mFullNode: cc.Node = null;//满星
- @property(sp.Skeleton)
- spine1: sp.Skeleton = null;
- @property(sp.Skeleton)
- spine2: sp.Skeleton = null;
- /**
- * 装备界面
- */
- public equip: Equip = null;
- /**
- * 当前选中的伙伴
- */
- private petIcon: PetIcon = null;
- /**
- * 当前强化的装备
- */
- // private goodItem: GoodItem = null;
- /**
- * 当前选中的装备
- */
- private curGoodItem: GoodItem = null
- private main: Main = null;
- private MAX_MONEY = [5000, 10000, 15000, 20000, 25000, 0];
- public tpType: number = 0; // 0 突破人物装备 1 突破背包装备
- public equipAttr: EquipAttr = null;
- public equipData: __EquipData = null;
- onLoad() {
- }
- public init(equip: Equip, petIcon: PetIcon, equipAttr: EquipAttr) {
- this.tpType = 0;
- this.main = this.node.getComponent(EquipQH).main
- this.equip = equip
- this.petIcon = petIcon
- this.equipAttr = equipAttr
- this.equipData = this.main.sManage.getEquipById(equipAttr.id);
- this.flushEquipPag()
- }
- /**
- * 选择当前页卡
- */
- private checkToggle() {
- let scrollView = this.mContent.parent.parent.getComponent(cc.ScrollView)
- scrollView.stopAutoScroll()
- scrollView.scrollToTop()
- this.curGoodItem = null
- this.mXHEquipItem.setNull()
- this.flushToggle()
- }
- private flushToggle() {
- this.flushEquipPag()
- let equipQH = this.node.getComponent(EquipQH)
- equipQH.mQHFull.active = false
- this.mOneKeyBt.active = false
- this.mEquipItem.initEquip(this.main, this.equipAttr)
- this.mEquipName.string = i18n.t(this.equipData.name)
- this.mEquipName1.string = i18n.t(this.equipData.name)
- let qhMax = this.equipAttr.qhMax
- if (qhMax >= this.equipData.qh_max) {
- this.mFullNode.active = true
- } else {
- this.mFullNode.active = false
- }
- this.mQHLevel1.string = (this.equipData.level + qhMax * 5) + ''
- this.mQHMoney.string = '' + this.MAX_MONEY[this.equipAttr.qhMax]
- this.flushLevel2()
- this.flushAttr(this.equipAttr.PI)
- equipQH.setSortCallback((type: number) => {
- if (type == 0) {//品质排序
- EquipQH.sortPag(0, this.mContent)
- } else {//战力排序
- EquipQH.sortPag(1, this.mContent)
- }
- })
- }
- private flushLevel2() {
- let max = this.equipAttr.qhMax
- if (this.curGoodItem) {
- max += 1
- }
- if (max > 5) {
- max = 5
- }
- this.mQHLevel2.string = (this.equipData.level + max * 5) + ''
- }
- /**
- * 刷新装备背包
- */
- public flushEquipPag() {
- let equip = this.main.player.equip;
- let index = 0;
- let content = this.mContent;
- for (let i = 0; i < equip.length; i++) {
- const element = equip[i];
- if (element.id == 20001 || element.id == this.equipAttr.id) {
- if (this.equipAttr.__index == element.__index) {
- this.tpType = 1;
- } else {
- if (index >= content.children.length) {
- this.addGoodItem(content);
- }
- let node = content.children[index];
- node.opacity = 255
- let equipItem = node.getComponent(GoodItem);
- equipItem.initEquip(this.main, element);
- if (element.id == 20001) {
- node.zIndex = 0
- } else {
- node.zIndex = equipItem.equipData.pz
- }
- equipItem.setCallback((gi) => {
- this.addEquip(gi);
- this.main.playerEffectByPath(AudioMgr.qh2);
- });
- index++;
- }
- }
- }
- for (let i = index; i < content.children.length; i++) {
- let node = content.children[i];
- node.opacity = 255
- let equipItem = node.getComponent(GoodItem);
- equipItem.setNull();
- node.zIndex = cc.macro.MAX_ZINDEX - 1
- }
- }
- /**
- * 刷新属性
- */
- private flushAttr(PI) {
- let equipData = this.equipData
- let __qhList = this.main.sManage.getEquipQHByType(equipData)
- let qhLevel = FFCalAttr.getEquipQHLevel(this.main, PI, equipData)
- let tempAttrExp = 0
- let _qhAttr1: __EquipQHData = null
- let _qhAttr2: __EquipQHData = null
- if (qhLevel > 0) {
- _qhAttr1 = __qhList[qhLevel - 1]
- }
- if (qhLevel >= __qhList.length) {
- _qhAttr2 = __qhList[qhLevel - 1]
- } else {
- _qhAttr2 = __qhList[qhLevel]
- }
- let maxQH = equipData.level + this.equipAttr.qhMax * 5;
- if (qhLevel > maxQH) {
- qhLevel = maxQH
- }
- this.mQHLevel.string = 'Lv.' + qhLevel + '/' + maxQH;
- let curExp = PI - tempAttrExp
- let uplevelExp = _qhAttr2.exp - tempAttrExp
- let bfb = curExp / uplevelExp;
- if (bfb > 1) {
- bfb = 1
- }
- this.mQHBfbBar.progress = bfb
- this.mQHBfbLabel.string = Math.floor(bfb * 100) + '%'
- this.mQHMaxLabel.string = i18n.t('上限突破次数') + this.equipAttr.qhMax + '/5'
- }
- private addGoodItem(content: cc.Node) {
- for (let i = 0; i < 4; i++) {
- let node = cc.instantiate(this.mGoodItem);
- node.parent = content;
- }
- }
- /**
- * 背包中的装备添加到消耗材料
- * @param goodItem
- */
- private addEquip(goodItem: GoodItem) {
- if (this.curGoodItem) {
- this.curGoodItem.node.opacity = 255
- }
- this.curGoodItem = goodItem
- this.curGoodItem.node.opacity = 100
- this.mXHEquipItem.initEquip(this.main, goodItem.equip)
- this.flushLevel2()
- }
- /**
- * 突破
- */
- public onclickTP() {
- if (this.tpType == 0) {
- this.tpFunc();
- } else if (this.tpType == 1) {
- this.tpFunc1();
- }
- }
- tpFunc() {
- if (!this.curGoodItem) {
- this.main.showTips('没有添加任何材料')
- return
- }
- let msg = {
- petId: this.petIcon.id,
- equipId: this.equipAttr.id,
- equipIndex: this.curGoodItem.equip.__index
- }
- this.main.gameHttp.sendJson('equip/v1/qhMax', msg, (state, reve: ReveData) => {
- this.main.stopLoad();
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- this.main.playerEffectByPath(AudioMgr.qh);
- this.playQHSpine();
- this.equipAttr.qhMax += 1
- this.curGoodItem = null
- this.mXHEquipItem.setNull()
- this.flushToggle()
- this.equip.flushEquip(this.petIcon)
- this.equip.flushPagSize()
- this.main.showTips("强化上限成功");
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- });
- }
- tpFunc1() {
- if (!this.curGoodItem) {
- this.main.showTips('没有添加任何材料')
- return
- }
- let msg = {
- equipIndex1: this.equipAttr.__index,
- equipIndex2: this.curGoodItem.equip.__index
- }
- this.main.gameHttp.sendJson('equip/v1/qhMax1', msg, (state, reve: ReveData) => {
- this.main.stopLoad();
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- this.main.playerEffectByPath(AudioMgr.qh);
- this.playQHSpine();
- this.equipAttr.qhMax += 1
- this.curGoodItem = null
- this.mXHEquipItem.setNull()
- this.flushToggle()
- this.equip.mEquipPack.setEquipType(this.equip.curPage);
- this.equip.flushEquip(this.petIcon)
- this.equip.flushPagSize()
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- });
- }
- playQHSpine() {
- this.spine1.setAnimation(0, "atk", false);
- this.spine1.setCompleteListener(() => {
- this.spine1.setAnimation(0, "idle", false);
- this.spine2.node.active = true;
- this.spine2.setAnimation(0, "animation", false);
- this.spine2.setCompleteListener(() => {
- this.spine2.node.active = false;
- this.spine1.clearTrack(0);
- })
- })
- }
- }
|