123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- import GoodItem from "../../common/GoodItem";
- import GoodAbout from "../../common/GoodAbout";
- import ViewObject from "../../../main/ViewObject";
- import { GameViewType } from "../../../main/ViewManage";
- import FoodView from "./FoodView";
- import { ReveData } from "../../../util/CHttp";
- /**
- * 背包
- */
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class Pack extends ViewObject {
- // /**
- // * 背包静态缓存
- // */
- // public static instance: Pack = null;
- /**
- * [0]:装备
- * [1]:道具
- * [2]:宝箱
- */
- @property([cc.Node])
- mContent: Array<cc.Node> = [];
- @property(cc.Prefab)
- mGoodItem: cc.Prefab = null;
- curInset: number = 0;
- public httpEvent(reveData: ReveData) {
- let data = reveData.data;
- if (data._equip != undefined) {
- this.flushEquip();
- }
- if (data._pack != undefined) {
- this.flushGood();
- }
- }
- public onLoad() {
- this.mContent[1].active = false;
- this.flush();
- }
- public flush() {
- this.flushGood();
- this.flushEquip();
- }
- /**
- * 刷新道具
- */
- public flushGood() {
- let pack = this.main.player.pack;
- let index = 0;
- let content = this.mContent[0];
- if (content.children.length) {
- content.removeAllChildren();
- }
- for (let id in pack) {
- let count = pack[id];
- if (count > 0) {
- let data = {
- id: id,
- count: count,
- };
- this.addGoodItem(content);
- let node = content.children[index];
- let goodItem = node.getComponent(GoodItem);
- goodItem.initGood(this.main, data);
- if (goodItem.good.type == 5 || goodItem.good.type == 3) {
- goodItem.setCallback((gi) => {
- this.openEatFood(gi);
- });
- } else {
- goodItem.setCallback((gi) => {
- this.openGoodAbout(gi);
- });
- }
- index++
- }
- }
- }
- /**
- * 刷新装备
- */
- public flushEquip() {
- // let equip = this.sortEquip();
- let equip = this.main.player.equip;
- let index = 0;
- let content = this.mContent[1];
- if (content.children.length) {
- content.removeAllChildren();
- }
- for (let i = 0; i < equip.length; i++) {
- const element = equip[i];
- this.addGoodItem(content);
- let node = content.children[index];
- let equipItem = node.getComponent(GoodItem);
- equipItem.initEquip(this.main, element);
- equipItem.node.zIndex = this.main.player.equip.length - equipItem.equip.id;
- equipItem.setCallback((gi) => {
- this.openGoodAbout(gi);
- });
- index++;
- }
- }
- sortEquip() {
- let equip = this.main.player.equip;
- equip.sort((a, b) => {
- return b.id - a.id
- })
- return equip
- }
- private addGoodItem(content: cc.Node) {
- let node = cc.instantiate(this.mGoodItem);
- node.parent = content;
- }
- private openGoodAbout(goodItem: GoodItem) {
- this.main.viewManage.loadFunc(GameViewType.goodAbout, (viewObject: ViewObject) => {
- let goodAbout = viewObject as GoodAbout;
- goodAbout.init(goodItem, false)
- viewObject.show();
- });
- }
- private openEatFood(goodItem: GoodItem) {
- this.main.viewManage.loadFunc(GameViewType.goodEat, (viewObject: ViewObject) => {
- let goodAbout = viewObject as FoodView;
- goodAbout.initGood(this, goodItem)
- viewObject.show();
- });
- }
- onClickInset(eventTouch: cc.Event.EventTouch, data: string) {
- this.curInset = Number(data);
- this.mContent.forEach((content, index) => {
- content.active = index == Number(data);
- })
- }
- }
|