123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- import ViewObject from "../../../main/ViewObject";
- import { HttpStateType, ReveData } from "../../../util/CHttp";
- import CUtilTime from "../../../util/CUtilTime";
- import GoodItem from "../../common/GoodItem";
- import TopMenu from "../TopMenu";
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class Revenge extends ViewObject {
- // id: 1001
- // name: "复仇礼包"
- // needCount: 2000
- // needType: 1
- // reveCount0: 1000
- // reveCount1: 1
- // reveCount2: 1
- // reveCount3: 1
- // reveId1: 1005
- // reveId2: 1105
- // reveId3: 1205
- // reveType0: 1
- // reveType1: 3
- // reveType2: 3
- // reveType3: 3
- // needType 需要的货币类型,1:钻石;2:金币
- // reveType0 奖励的货币类型,1:钻石;2:金币
- // reveType1 奖励的道具类型,1:钻石;2:金币 ;3:装备;4:道具
- // reveType2 奖励的道具类型,1:钻石;2:金币 ;3:装备;4:道具
- // reveType3 奖励的道具类型,1:钻石;2:金币 ;3:装备;4:道具
- @property(cc.Label)
- title: cc.Label = null;
- @property(cc.Node)
- itemList: cc.Node[] = [];
- @property(cc.Node)
- goldIcon: cc.Node = null;
- @property(cc.Node)
- diamondIcon: cc.Node = null;
- @property(cc.Label)
- lbnum: cc.Label = null;
- @property(cc.Label)
- revengeTime: cc.Label = null;
- revengeData = null;
- clickIndex: number = 1;
- curClickNode: cc.Node = null;
- buyClickFunc: Function = null;
- setBuyClickFunc(func: Function) {
- this.buyClickFunc = func;
- }
- /**
- *
- * @param prev 父界面
- */
- public show(prev?: ViewObject) {
- if (prev) {
- this.prev = prev;
- this.prev.__close();
- }
- this.main.viewManage.popView1(this.node);
- if (this.main && this.main.gameHttp) {
- this.main.gameHttp.pushEvent(this);
- }
- }
- getRevengeData() {
- let msg = {};
- this.main.gameHttp.sendJson(`revenge/v1/data`, msg, (state, reve: ReveData) => {
- this.main.stopLoad();
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- console.log("==reve=revengeData===", reve)
- this.revengeData = reve.data.list[0];
- this.initItem();
- this.show();
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- });
- }
- initItem() {
- this.title.string = this.revengeData.name;
- this.goldIcon.active = this.revengeData.needType == 2;
- this.diamondIcon.active = this.revengeData.needType == 1;
- this.lbnum.string = this.revengeData.needCount;
- this.itemList.forEach((item, index) => {
- let node = item.getChildByName("item");
- let icon = node.getChildByName("icon").getComponent(cc.Sprite);
- let name = node.getChildByName("lbname").getComponent(cc.Label);
- let clickIcon = item.getChildByName("clickIcon");
- let count = node.getChildByName("count").getComponent(cc.Label);
- count.string = this.revengeData[`reveCount${index}`];
- if (index == 0) {
- let path = this.revengeData.reveType0 == 1 ? "3002" : "3001";
- this.initIcon(icon, "good/" + path);
- } else {
- if (this.revengeData[`reveType${index}`] == 3) {
- this.initIcon(icon, "equip/" + this.revengeData[`reveId${index}`]);
- let equip = this.main.sManage.getEquipById(this.revengeData[`reveId${index}`]);
- name.string = equip.name;
- } else {
- this.initIcon(icon, "good/" + this.revengeData[`reveId${index}`]);
- }
- }
- if (index == 1) {
- clickIcon.active = true;
- this.curClickNode = clickIcon;
- }
- if (index != 0) {
- item.getComponent(GoodItem).setCallback(() => {
- this.curClickNode.active = false;
- clickIcon.active = true;
- this.curClickNode = clickIcon;
- this.clickIndex = index;
- })
- }
- })
- }
- refreshTime(revengeTime: number) {
- if (this.revengeTime) {
- this.revengeTime.string = `${CUtilTime.getTimeString2(revengeTime)}后消失`;
- }
- }
- public initIcon(icon: cc.Sprite, path: string) {
- cc.resources.load(`icon/${path}`, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {
- if (err) {
- cc.error(err);
- } else {
- icon.spriteFrame = spriteFrame;
- }
- });
- }
- onClickBuy() {
- let msg = {
- id: this.revengeData.id,
- index: this.clickIndex - 1,
- };
- this.main.gameHttp.sendJson(`revenge/v1/buy`, msg, (state, reve: ReveData) => {
- this.main.stopLoad();
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- this.buyClickFunc && this.buyClickFunc();
- this.exitDistroy();
- this.main.showReward(reve);
- this.main.topNode.getComponent(TopMenu).refresh();
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- });
- }
- }
|