SamsaraGame/assets/Script/panel/PetFlyPanel.js
2025-04-24 17:03:28 +08:00

176 lines
3.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
},
});