| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import { _decorator, Component, Node, Label, Sprite, SpriteFrame, ImageAsset, Texture2D, Animation } from 'cc';
- import { DataSystem } from '../core/data/DataSystem';
- import { Http, HttpResponseCode } from '../core/net/Http';
- import { ResourceLoader } from '../core/resourceManager/ResourceLoader';
- import { OpenWindow } from '../core/ui/window/OpenWindow';
- import { WindowOpenMode } from '../core/ui/window/WindowOpenMode';
- import { WindowSystem } from '../core/ui/window/WindowSystem';
- import { ConfigData } from '../data/ConfigData';
- import { ISJSB, platform } from '../data/jsb/platform';
- import { UserData } from '../data/UserData';
- import { ReportThinking } from '../ReportThinking';
- import { GodTowerData, MemberInfoData } from './GodTowerData';
- const { ccclass, property, requireComponent } = _decorator;
- /**
- * 神台武将
- */
- @ccclass('GodTowerHero')
- @requireComponent(ResourceLoader)
- @requireComponent(Http)
- export class GodTowerHero extends Component {
- @property({ type: Sprite, tooltip: "神将图片" })
- roleImg: Sprite;
- @property({ type: Node, tooltip: "好友头像组" })
- headGroup: Node;
- @property({ type: Sprite, tooltip: "好友头像" })
- friendHead: Sprite;
- @property({ type: Label, tooltip: "好友名称" })
- friendName: Label;
- @property({ type: Label, tooltip: "好友贡献" })
- contribute: Label;
- @property({ type: Node, tooltip: "奖励信息组" })
- giftGroup: Node;
- @property({ type: Label, tooltip: "奖励信息" })
- giftNum: Label;
- @property({ type: Animation, tooltip: "神将台动画" })
- animation: Animation;
- @property({ tooltip: "是否播放动画" })
- isPlayAaimation: Boolean = true;
- userInfoWin: OpenWindow;
- public data: any;
- private friednLv: number = 0;
- start() {
- if (this.isPlayAaimation) {
- this.scheduleOnce(() => {
- this.animation.play();
- }, Math.random());
- }
- }
- public async onInvite() {
- //邀请
- let result = await this.getComponent(Http).send("/api/app/share", {});
- if (result && result.code == HttpResponseCode.Success) {
- ReportThinking.invite();
- platform.wxShare(result.data.url, result.data.title, result.data.descroption);
- } else {
- WindowSystem.showTips("分享信息获取失败,请稍后再试");
- }
- }
- public async selectFriendInfo() {
- WindowSystem.open("prefabs/ui/godTower/friendInfo", WindowOpenMode.NotCloseAndCover, [{ friednLv: this.friednLv, data: this.data }]);
- }
- public async setData(data?: MemberInfoData, friendLv?: number) {
- if (data) {
- this.friednLv = friendLv;
- this.data = data;
- this.headGroup.active = true;
- this.contribute.node.active = true;
- this.roleImg.node.active = true;
- this.data.totalRevenueAmount = this.data.totalRevenueAmount || 0;
- this.contribute.string = '总贡献:' + this.data.totalRevenueAmount.toFixed(0);
- this.giftGroup.active = this.data.revenueAmount > 0;
- this.data.revenueAmount = this.data.revenueAmount || 0;
- this.giftNum.string = this.data.revenueAmount.toFixed(0);
- if (ISJSB() && data.avatar) {
- let img = await this.getComponent(ResourceLoader).loadRemote<ImageAsset>(data.avatar, { ext: ".png" });
- const spriteFrame = new SpriteFrame();
- const texture = new Texture2D();
- texture.image = img;
- spriteFrame.texture = texture;
- this.friendHead.spriteFrame = spriteFrame;
- }
- this.friendName.string = this.data.nickname;
- if (data.heroID) {
- let hero_res = DataSystem.getData(ConfigData).get('general')[data.heroID].hero_res;
- this.roleImg.spriteFrame = await this.getComponent(ResourceLoader).load(`images/general/texture/hero_img/${hero_res}/spriteFrame`, SpriteFrame);
- }
- } else {
- this.headGroup.active = false;
- this.contribute.node.active = false;
- }
- }
- //领取贡献
- private async getContribute() {
- let result = await this.getComponent(Http).send("/api/fission/ReceiveFission", { receiveUserID: this.data.userID });
- if (result && result.code == HttpResponseCode.Success) {
- DataSystem.getData(UserData).contribution += result.data.addTotalContribution;
- let infoData: GodTowerData = DataSystem.getData(GodTowerData);
- for (let i = 1; i < 6; i++) {
- let members = infoData[`g${i}Members`];
- for (let j = 0; j < members.length; j++) {
- if (this.data.userID == members[j].userID && members[j].revenueAmount) {
- members[j].revenueAmount = 0;
- break;
- }
- }
- infoData[`g${i}Members`] = members;
- }
- WindowSystem.showTips('贡献领取成功');
- this.giftGroup.active = false;
- }
- }
- }
|