BedroomCatRewardViewPresenter.ts
5.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import { Presenter } from "../../../../common/classbase/PresenterBase";
import { BedRoomCatModelManager, CatRewardConfigTpye } from "../../../model/BedRoomCatModelManager";
import { GameModelManager } from "../../../model/GameModelManager";
import { RegPresenter } from "../../PresenterCCViewFactory";
import RewardLevelItem from "../../RewardLevelItem";
import RewardLoginItem, { rewardSturct, rewardType } from "../../RewardLoginItem";
import RewardPlotItem from "../../RewardPlotItem";
import { BedroomCatRewardViewType, BedroomCatRewardViewProps, BedroomCatRewardView } from "../../view/type/BedroomCatRewardView";
@RegPresenter(BedroomCatRewardViewType)
export default class BedroomCatRewardViewPresenter extends Presenter<BedroomCatRewardViewProps, BedroomCatRewardView>{
static uuid = "BedroomCatRewardViewPresenter";
private _viewProps: BedroomCatRewardViewProps;
private _titleLabel: string[] = [
"记得每天来看看哦~",
"饭统碗里没有粮啦!点击碗即可喂食哦~",
"解锁章节会获取相应的奖励哦~",
"",
];
constructor() {
super();
}
onOpen(props: BedroomCatRewardViewProps) {
super.onOpen(props);
this._viewProps = props;
this._viewProps.onClickTabbarBtn = this.onClickTabbarBtn;
this._viewProps.onCloseBtnClick = this.onCloseBtnClick;
this.view.setProps(this._viewProps);
this.onShow();
}
onShow() {
super.onShow();
//进入奖励界面初始化奖励的状态
BedRoomCatModelManager.initCatRewardStatus();
this.onClickTabbarBtn(1);
}
onClose() {
super.onClose();
}
onEnterBackground() {
super.onEnterBackground();
}
onEnterForeground() {
super.onEnterForeground();
this.updateRedDot();
}
updateRedDot() {
for (let i = 1; i < 4; i++) {
let catRewardStatus = BedRoomCatModelManager.getCatRewardStatus(i);
for (let j = 0; j < catRewardStatus.length; j++) {
if (catRewardStatus[j] == 1) {
this.view.getRedDotNodes()[i - 1].active = true;
break;
} else {
this.view.getRedDotNodes()[i - 1].active = false;
}
}
}
}
CreateOrUpdateRewardItem(tabbarId: number) {
this.view.getScrollViewContentNode().removeAllChildren();
let cfg = BedRoomCatModelManager.getCatRewardConfigByConfigType(tabbarId);
let catRewardStatus = BedRoomCatModelManager.getCatRewardStatus(tabbarId);
let rewardSturcts: rewardSturct[] = [];
for (let i = 0; i < cfg.length; ++i) {
if (cfg[i].rewardTpye !== tabbarId) {
continue;
}
if (cfg[i].catFoodNumber !== 0 && cfg[i].catFoodNumber) {
rewardSturcts.push({ numberOrId: cfg[i].catFoodNumber, type: rewardType.catFood });
}
if (cfg[i].cannedNumber !== 0 && cfg[i].cannedNumber) {
rewardSturcts.push({ numberOrId: cfg[i].cannedNumber, type: rewardType.canned });
}
if (cfg[i].clothedId !== 0 && cfg[i].clothedId) {
rewardSturcts.push({ numberOrId: cfg[i].clothedId, type: rewardType.clothes });
}
if (cfg[i].specialPlotId !== 0 && cfg[i].specialPlotId) {
rewardSturcts.push({ numberOrId: cfg[i].specialPlotId!, type: rewardType.item });
}
let btn = cc.instantiate(this.view.getRewardItemPrefabs()[tabbarId - 1]);
let callback = () => {
this.updateRedDot();
}
if (tabbarId == CatRewardConfigTpye.CatLoginRewardConfig) {
btn.getComponent(RewardLoginItem).setData(cfg[i].rewardTpye, i, cfg[i].rewardTaskDescription, rewardSturcts, catRewardStatus[i], callback);
} else if (tabbarId == CatRewardConfigTpye.CatLevelRewardConfig) {
btn.getComponent(RewardLevelItem).setData(cfg[i].rewardTpye, i, cfg[i].rewardTaskDescription, rewardSturcts, catRewardStatus[i], callback);
} else if (tabbarId == CatRewardConfigTpye.CatPlotRewardConfig) {
btn.getComponent(RewardPlotItem).setData(cfg[i].rewardTpye, i, cfg[i].rewardTaskDescription, rewardSturcts, catRewardStatus[i], callback);
}
btn.parent = this.view.getScrollViewContentNode();
rewardSturcts = [];
}
this.view.getScrollView().scrollToTop();
}
onClickTabbarBtn = (tabbarId: number) => {
for (let i = 0; i < this.view.getTabbarButtons().length; i++) {
if (i == tabbarId - 1) {
this.view.getTabbarButtons()[i].getComponentInChildren(cc.Sprite).spriteFrame = this.view.getTabbarSpriteFrames()[0];
} else {
this.view.getTabbarButtons()[i].getComponentInChildren(cc.Sprite).spriteFrame = undefined as unknown as cc.SpriteFrame;
}
}
this.view.getRewardPanelTitleSprite().spriteFrame = this.view.getRewardPanelTitleSpriteFrames()[tabbarId - 1];
this.view.getRewardPanelTitleLabel().string = this._titleLabel[tabbarId - 1];
this.CreateOrUpdateRewardItem(tabbarId);
if (tabbarId <= CatRewardConfigTpye.CatPlotRewardConfig) {
this.view.getWelfareNode().active = false;
this.view.getRewardPanelNode().active = true;
} else {
this.view.getWelfareNode().active = true;
this.view.getRewardPanelNode().active = false;
}
this.updateRedDot();
}
onCloseBtnClick = () => {
this.view.close();
GameModelManager.BackToBedRoom.emit();
}
}