| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- import { _decorator, Node, Label, RichText, ProgressBar, Sprite, SpriteFrame, Vec3, find, v3 } from 'cc';
- import InfiniteCell from '../../core/InfiniteList/InfiniteCell';
- import { Http } from '../../core/net/Http';
- import { ResourcesUtils } from '../../core/resourceManager/ResourcesUtils';
- import { WindowManager } from '../../core/ui/window/WindowManager';
- import { WindowOpenMode } from '../../core/ui/window/WindowOpenMode';
- import { g } from '../../Data/g';
- import { platform } from '../../Data/platform';
- import { FarmManager } from '../../Main/FarmManager';
- import { MoveToCenter } from '../../Map/MoveToCenter';
- import { GetType } from '../GetWindow/GetType';
- import { UIEffect } from '../UIEffect';
- import { TaskWindow } from './TaskWindow';
- const { ccclass, property } = _decorator;
- @ccclass('TaskWindowItem')
- export class TaskWindowItem extends InfiniteCell {
- @property({ type: RichText, tooltip: "任务描述" }) taskLabel: RichText;
- @property({ type: ProgressBar, tooltip: "任务进度条" }) taskProgress: ProgressBar;
- @property({ type: Label, tooltip: "进度文本" }) taskProgressLabel: Label;
- @property({ type: Label, tooltip: "奖励数量" }) taskRewardLabel: Label;
- @property({ type: Sprite, tooltip: "奖励图标" }) taskRewardSprite: Sprite;
- @property({ type: Node, tooltip: "领取按钮" }) getButton: Node;
- @property({ type: Node, tooltip: "前往按钮" }) gotoButton: Node;
- @property({ type: Node, tooltip: "任务完成图标" }) completeNode: Node;
- @property({ tooltip: "网络请求对象", type: Http }) http: Http;
- private window: TaskWindow = null;
- private iconPath = "";
- private data: any;
- async UpdateContent(itemData: any) {
- this.window = itemData.window;
- this.data = itemData.data;
- let strs = this.data.name.split('/');
- let str = "";
- for (let i = 0; i < strs.length; i++) {
- if (i % 2 == 0) {
- str += `<color=#7B4B31>${strs[i]}</color>`;
- } else {
- str += `<color=#D95D27>${strs[i]}</color>`;
- }
- }
- this.taskLabel.string = str;
- this.taskProgress.progress = this.data.progress / this.data.num;
- this.taskProgressLabel.string = `${this.data.progress} / ${this.data.num}`;
- this.taskRewardLabel.string = this.data.value + "";
- switch (this.data.reward_type) {
- case "exp":
- this.iconPath = "Images/Turntable/star_small/spriteFrame";
- this.taskRewardSprite.spriteFrame = await ResourcesUtils.load(this.iconPath, SpriteFrame, this.node);
- break;
- case "diamond":
- this.iconPath = "Images/Turntable/diamond_small/spriteFrame";
- this.taskRewardSprite.spriteFrame = await ResourcesUtils.load(this.iconPath, SpriteFrame, this.node);
- break;
- }
- this.gotoButton.active = !(this.getButton.active = this.data.progress == this.data.num);
- if (this.data.progress > this.data.num) {
- this.getButton.active = this.gotoButton.active = false;
- this.completeNode.active = true;
- this.taskProgressLabel.string = `${this.data.num} / ${this.data.num}`;
- } else {
- this.completeNode.active = false;
- }
- }
- public async onGetReward() {
- let result = await this.http.send("/api/task/taskReceive", { taskID: this.data.id });
- if (result.code == 0) {
- platform.reportThinking("quest", JSON.stringify({ quest_id: this.data.id, quest_name: this.data.name, award_id: this.data.reward_type, award_no: this.data.value }));
- let ui = find("Canvas/UI");
- switch (this.data.reward_type) {
- case "exp":
- WindowManager.open("Prefabs/GetWindow", WindowOpenMode.NotCloseAndAdd, [{ count: this.data.value, type: GetType.exp, needBezierEffect: true }], this.window.node);
- break;
- case "diamond":
- platform.reportThinking("diamond_increase", JSON.stringify({ previous_number: g.userData.diamond, increase_number: this.data.value, current_number: g.userData.diamond + this.data.value, reasons: "taskReceive" }));
- WindowManager.open("Prefabs/GetWindow", WindowOpenMode.NotCloseAndAdd, [{ count: this.data.value, type: GetType.Diamond, needBezierEffect: true }], this.window.node);
- break;
- }
- this.window.reloadList();
- }
- }
- public onGoto(): void {
- WindowManager.close();
- switch (this.data.type) {
- case 3:
- FarmManager.selectFristFarm();
- break;
- case 7:
- WindowManager.open("Prefabs/Turntable/Turntable", WindowOpenMode.CloseAndCover);
- break;
- case 13:
- WindowManager.open("Prefabs/AddDiamond", WindowOpenMode.CloseAndCover);
- break;
- }
- }
- }
|