176 lines
3.7 KiB
JavaScript
Raw Permalink Normal View History

2025-04-24 17:03:28 +08:00
import GameModel from "../ts/core/GameModel";
import MsgAlert from "../ts/game/msg/MsgAlert";
cc.Class({
extends: cc.Component,
properties: {
pet_sprite: cc.Sprite,
pet_label: cc.Label,
fly_label: cc.Label,
fly_button: cc.Node,
property_node: cc.Node,
},
start () {
this.petid_list = [];
for (let item of GameModel.player.petInfo.list) {
if (item.grade >= 3) {
this.petid_list.push(item.petid);
}
}
if (this.petid_list.length == 0) {
MsgAlert.addMsg('你沒有符合條件的神獸!');
this.onClose();
return;
}
if (this.petid_list.length == 1) {
cc.find('PetBg/Right', this.node).active = false;
cc.find('PetBg/Left', this.node).active = false;
}
this.cur_index = this.petid_list.indexOf(GameModel.player.petInfo.curid);
if (this.cur_index == -1) {
this.cur_index = 0;
}
this.refrush();
},
/*
* 切換前一個寵物
*/
onLeftClick () {
if(!this.pet_list){
return;
}
-- this.cur_index;
if (this.cur_index < 0) {
this.cur_index = this.petid_list.length-1;
}
this.refrush();
},
/*
* 切換後一個寵物
*/
onRightClick () {
++ this.cur_index;
if (this.cur_index == this.petid_list.length) {
this.cur_index = 0;
}
this.refrush();
},
getPetByPetid (petid) {
for (let item of GameModel.player.petInfo.list) {
if (item.petid == petid) {
return item;
}
}
return null;
},
/*
* 刷新界面
*/
refrush () {
this.petid = this.petid_list[this.cur_index];
for (let item of GameModel.player.petInfo.list) {
if (item.petid == this.petid) {
this.pet = item;
}
}
if (this.pet.fly%10 == 0) {
this.fly_label.string = '第一次飛升';
}
else if (this.pet.fly%10 == 1) {
this.fly_label.string = '第二次飛升';
}
else if (this.pet.fly%10 == 2) {
this.fly_label.string = '第三次飛升';
}
else if (this.pet.fly%10 == 3) {
this.fly_label.string = '更換飛升屬性';
}
this.fly_button.active = true;
this.property_node.active = false;
this.pet_label.string = this.pet.name;
cc.loader.loadRes(`ui/photo/${this.pet.resid}`, cc.SpriteFrame, (err, spriteFrame) => {
if (err) {
cc.log(err);
}
else {
this.pet_sprite.spriteFrame = spriteFrame;
}
});
},
/*
* 點擊飛升按鈕
*/
onFlyClick () {
if(this.pet.fly==null){
return;
}
if (this.pet.fly%10 == 0) {
if (this.pet.level < 50) {
MsgAlert.addMsg('寵物需要0轉50級');
return;
}
GameModel.send('c2s_petfly_msg', {
petid: this.petid,
type: 0,
});
}
else if (this.pet.fly%10 == 1) {
if (this.pet.level < 100 || this.pet.relive < 1) {
MsgAlert.addMsg('寵物需要1轉100級');
return;
}
GameModel.send('c2s_petfly_msg', {
petid: this.petid,
type: 0,
});
}
else if (this.pet.fly%10 == 2) {
if (this.pet.level < 120 || this.pet.relive < 2) {
MsgAlert.addMsg('寵物需要2轉120級');
return;
}
this.property_node.active = true;
this.fly_button.active = false;
}
else if (this.pet.fly%10 == 3) {
if (this.pet.level < 200 || this.pet.relive < 3) {
MsgAlert.addMsg('寵物需要3轉200級');
return;
}
this.property_node.active = true;
this.fly_button.active = false;
}
},
/*
* 點擊選擇初始值
*/
onPropertyClick (event, param) {
if (GameModel.player.gameData.money < 5000000) {
MsgAlert.addMsg('需要消耗500萬銀兩銀兩不足');
return;
}
if (param == parseInt(this.pet.fly/10)) {
MsgAlert.addMsg('當前是已選擇此屬性,請選擇其它屬性!');
return;
}
GameModel.notice.addMsg(1, '需要消耗500萬銀兩是否繼續 ', () => {
GameModel.send('c2s_petfly_msg', {
petid: this.petid,
type: parseInt(param),
});
}, () => {});
},
onClose () {
this.node.destroy();
},
});