860 lines
26 KiB
C#
860 lines
26 KiB
C#
// ***********************************************************************
|
|
// Assembly : Game
|
|
// Author : Kimch
|
|
// Created : 2021-03-26
|
|
// Description :
|
|
// Last Modified By :
|
|
// Last Modified On :
|
|
// ***********************************************************************
|
|
// <copyright file= "PetWindow.View" company="Kunpo"></copyright>
|
|
// <summary></summary>
|
|
// ***********************************************************************
|
|
namespace G.UI
|
|
{
|
|
using Spine.Unity;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
partial class PetWindow
|
|
{
|
|
#region Field
|
|
|
|
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
|
|
[KUIFlag]
|
|
Button _btnBack;
|
|
|
|
[KUIFlag]
|
|
Slider _sldExp;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpExp;
|
|
[KUIFlag]
|
|
Button _btnOnekeyUpgrade;
|
|
[KUIFlag]
|
|
Button _btnUpgrade;
|
|
|
|
[KUIFlag]
|
|
Button _btnFeed;
|
|
[KUIFlag]
|
|
Button _btnFeedAd;
|
|
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpFeedTime;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpFeedCount;
|
|
[KUIFlag]
|
|
KUIImage _imgPrivilege;
|
|
|
|
[KUIFlag]
|
|
GameObject __goMoney1;
|
|
[KUIFlag]
|
|
GameObject __goMoney2;
|
|
|
|
[KUIFlag]
|
|
KUIList __listSkill;
|
|
[KUIFlag]
|
|
Button _btnRecast;
|
|
|
|
[KUIFlag]
|
|
GameObject __goSkillDetail;
|
|
|
|
[KUIFlag]
|
|
GameObject _goUnlock;
|
|
[KUIFlag]
|
|
GameObject _goLock;
|
|
|
|
[KUIFlag]
|
|
KUIList __listPets;
|
|
[KUIFlag]
|
|
GameObject __goRecast;
|
|
[KUIFlag]
|
|
GameObject __goReplace;
|
|
|
|
[KUIFlag]
|
|
Button _btnSkillBook;
|
|
[KUIFlag]
|
|
Button _btnRename;
|
|
[KUIFlag]
|
|
Button _btnRanking;
|
|
|
|
[KUIFlag]
|
|
Button _btnLeft;
|
|
[KUIFlag]
|
|
Button _btnRight;
|
|
|
|
[KUIFlag]
|
|
Button _btnGet;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpGet;
|
|
[KUIFlag]
|
|
GameObject __goGetCost;
|
|
|
|
[KUIFlag]
|
|
Image _imgIcon;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpName;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpGrade;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpCombatValue;
|
|
[KUIFlag]
|
|
GameObject __mainSkill;
|
|
[KUIFlag]
|
|
GameObject _goStatus;
|
|
[KUIFlag]
|
|
GameObject _goLabel;
|
|
[KUIFlag]
|
|
Button _btnBattle;
|
|
[KUIFlag]
|
|
TextMeshProUGUI _tmpBattle;
|
|
|
|
[KUIFlag]
|
|
PetSpineWidget _skeleton;
|
|
[KUIFlag]
|
|
KUIImage _imgSpecialIcon;
|
|
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
//private CostWidget _upgradeCost1;
|
|
//private CostWidget _upgradeCost2;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
private CostWidget _getCostWidget;
|
|
|
|
private RecastPanel _recastPanel;
|
|
private ReplacePanel _replacePanel;
|
|
private SkillDetailWidget _skillDetailWidget;
|
|
private SkillWidget _mainSkillWidget;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
private readonly List<PetSimpleWidget> _petWidgets = new List<PetSimpleWidget>();
|
|
|
|
private int _petIndex;
|
|
private readonly List<PetProxy.PetInfo> _pets = new List<PetProxy.PetInfo>();
|
|
|
|
private SmartCostWidget _smartCostWidget;
|
|
|
|
private bool _isTiger = false;
|
|
#endregion
|
|
|
|
#region Property
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
PetProxy.PetInfo selectedPet => _pets[_petIndex];
|
|
|
|
#endregion
|
|
|
|
#region Method
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void InitView()
|
|
{
|
|
SetViewData();
|
|
|
|
_recastPanel = __goRecast.AddComponent<RecastPanel>();
|
|
__goRecast.SetActive(false);
|
|
_replacePanel = __goReplace.AddComponent<ReplacePanel>();
|
|
__goReplace.SetActive(false);
|
|
_skillDetailWidget = __goSkillDetail.AddComponent<SkillDetailWidget>();
|
|
__goSkillDetail.SetActive(false);
|
|
|
|
__listPets.AddTemplate<PetSimpleWidget>(true);
|
|
__listSkill.AddTemplate<SkillWidget>(true);
|
|
_mainSkillWidget = __mainSkill.AddComponent<SkillWidget>();
|
|
|
|
//__goMoney1.SetActive(false);
|
|
//_upgradeCost1 = __goMoney1.AddComponent<CostWidget>();
|
|
//__goMoney2.SetActive(false);
|
|
//_upgradeCost2 = __goMoney2.AddComponent<CostWidget>();
|
|
|
|
_getCostWidget = __goGetCost.AddComponent<CostWidget>();
|
|
|
|
_btnBack.onClick.AddListener(this.OnBackBtnClick);
|
|
_btnOnekeyUpgrade.onClick.AddListener(this.OnOnekeyUpgradeBtnClick);
|
|
_btnUpgrade.onClick.AddListener(this.OnUpgradeBtnClick);
|
|
|
|
_btnRecast.onClick.AddListener(this.OnRecastBtnClick);
|
|
|
|
_btnBattle.onClick.AddListener(OnBattleBtnClick);
|
|
_btnSkillBook.onClick.AddListener(this.OnSkillBookBtnClick);
|
|
_btnRename.onClick.AddListener(this.OnRenameBtnClick);
|
|
|
|
_btnRanking.gameObject.SetActive(FunctionProxy.Instance.GetFunctionUnlock(FunctionProxy.FunctionId.Pet_Rank));
|
|
_btnRanking.onClick.AddListener(this.OnRankingBtnClick);
|
|
|
|
_btnLeft.onClick.AddListener(this.OnLeftBtnClick);
|
|
_btnRight.onClick.AddListener(this.OnRightBtnClick);
|
|
|
|
_btnGet.onClick.AddListener(this.OnGetBtnClick);
|
|
|
|
_btnFeed.onClick.AddListener(this.OnFeedBtnClick);
|
|
_btnFeedAd.onClick.AddListener(this.OnAdFeedBtnClick);
|
|
_smartCostWidget = _btnFeedAd.gameObject.AddComponent<SmartCostWidget>();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void RefreshView()
|
|
{
|
|
__goSkillDetail.SetActive(false);
|
|
|
|
RefreshPetList();
|
|
if (_isTiger)
|
|
{
|
|
_petIndex = _pets.Count - 1;
|
|
_isTiger = false;
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < _pets.Count; i++)
|
|
{
|
|
if (_pets[i].isBattling)
|
|
_petIndex = i;
|
|
}
|
|
}
|
|
|
|
RefreshPetSelect();
|
|
}
|
|
|
|
public void UpdateView()
|
|
{
|
|
RefreshFeed();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void RefreshFeed()
|
|
{
|
|
if (!this.selectedPet.isMaxGrade)
|
|
{
|
|
var remainTime = PetProxy.Instance.petFeedTimestamp - Launch.Timestamp;
|
|
if (remainTime > 0)
|
|
{
|
|
var ts = F.Utils.Time.ToTimeString2(remainTime);
|
|
_tmpFeedTime.text = $"免费培养恢复时间:{ts}";
|
|
|
|
_btnFeed.gameObject.SetActive(false);
|
|
_btnFeedAd.gameObject.SetActive(true);
|
|
_smartCostWidget.SetAdTicket(MoneyProxy.Instance.GetMoney(Item.Id.kAdTicket));
|
|
}
|
|
else
|
|
{
|
|
_tmpFeedTime.text = "";
|
|
_btnFeed.gameObject.SetActive(true);
|
|
_btnFeedAd.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void RefreshPetList()
|
|
{
|
|
_pets.Clear();
|
|
var allPets = PetProxy.Instance.GetAllPets();
|
|
foreach (var pet in allPets)
|
|
{
|
|
if (pet.isUnlock)
|
|
_pets.Add(pet);
|
|
}
|
|
//_pets.AddRange(PetProxy.Instance.GetAllPets());
|
|
_petWidgets.Clear();
|
|
__listPets.Clear();
|
|
foreach (var pet in _pets)
|
|
{
|
|
var widget = __listPets.GetItem<PetSimpleWidget>();
|
|
widget.SetData(pet);
|
|
_petWidgets.Add(widget);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void RefreshPetSelect()
|
|
{
|
|
_btnLeft.gameObject.SetActive(_petIndex > 0);
|
|
_btnRight.gameObject.SetActive(_petIndex < _pets.Count - 1);
|
|
|
|
for (int i = 0; i < _petWidgets.Count; i++)
|
|
{
|
|
_petWidgets[i].SetSelect(i == _petIndex);
|
|
}
|
|
|
|
var pet = _pets[_petIndex];
|
|
|
|
_tmpName.text = pet.name;
|
|
_tmpGrade.text = pet.grade + "级";
|
|
_goLabel.SetActive(pet.item.label == 1);
|
|
|
|
_mainSkillWidget.SetData(pet.mainSkill);
|
|
//AssetProxy.Instance.SetSprite(_imgIcon, petInfo.icon);
|
|
_tmpCombatValue.text = pet.combatValue.ToString();
|
|
var skinAssets = pet.item.skins;
|
|
if (skinAssets != null && skinAssets.Length > 0)
|
|
{
|
|
int skinIndex = 0;
|
|
if (pet.isMaxGrade)
|
|
skinIndex = 2;
|
|
else if (pet.CheckRecast())
|
|
skinIndex = 1;
|
|
if (skinIndex >= skinAssets.Length)
|
|
skinIndex = skinAssets.Length - 1;
|
|
StartCoroutine(SetSkin(skinAssets[skinIndex]));
|
|
}
|
|
|
|
_goStatus.SetActive(pet.isBattling);
|
|
_tmpBattle.text = pet.isBattling ? "休息" : "出战";
|
|
|
|
if (pet.isFriend)
|
|
{
|
|
_goUnlock.SetActive(true);
|
|
_goLock.SetActive(false);
|
|
//_btnRename.gameObject.SetActive(true);
|
|
|
|
RefreshGradeAndExp(false);
|
|
RefreshSkills();
|
|
}
|
|
else
|
|
{
|
|
_goUnlock.SetActive(false);
|
|
_goLock.SetActive(true);
|
|
//_btnRename.gameObject.SetActive(false);
|
|
|
|
var accessItem = pet.access;
|
|
if (accessItem != null)
|
|
_tmpGet.text = accessItem.name;
|
|
|
|
var friendId = pet.friendId;
|
|
if (friendId == Item.Id.kFriend)
|
|
{
|
|
_getCostWidget.SetPrice(pet.friendId, Mathf.Max(0, pet.friend), pet.friendMax);
|
|
_imgSpecialIcon.gameObject.SetActive(false);
|
|
}
|
|
else
|
|
{
|
|
var propCount = ItemProxy.Instance.GetPropCount(friendId);
|
|
var propCountMax = pet.friendMax;
|
|
_getCostWidget.SetPrice(friendId, propCount, propCountMax);
|
|
if (propCount >= propCountMax)
|
|
{
|
|
_tmpGet.text = "激活";
|
|
}
|
|
if (friendId ==3002)
|
|
{
|
|
_imgSpecialIcon.gameObject.SetActive(true);
|
|
//_imgSpecialIcon.SetDefaultSprite(0);
|
|
}
|
|
else
|
|
{
|
|
_imgSpecialIcon.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void RefreshName()
|
|
{
|
|
_tmpName.text = selectedPet.name;
|
|
_petWidgets[_petIndex].RefreshName();
|
|
}
|
|
|
|
void RefreshSkills()
|
|
{
|
|
var petInfo = selectedPet;
|
|
var petSkills = petInfo.CheckSkill();
|
|
__listSkill.Clear();
|
|
for (int i = 0; i < petSkills.Count; i++)
|
|
{
|
|
__listSkill.GetItem().SetData(petSkills[i]);
|
|
}
|
|
|
|
_btnSkillBook.gameObject.SetActive(petInfo.CheckRecast());
|
|
_btnRecast.gameObject.SetActive(petInfo.CheckRecast());
|
|
}
|
|
|
|
IEnumerator SetSkin(string skinAsset)
|
|
{
|
|
if (!string.IsNullOrEmpty(skinAsset))
|
|
{
|
|
if (skinAsset.EndsWith("pic"))
|
|
{
|
|
_skeleton.gameObject.SetActive(false);
|
|
var handle = AssetProxy.Instance.TryGetTemporaryAssetAsync<Sprite>(skinAsset);
|
|
yield return handle;
|
|
if (handle.Status == UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationStatus.Succeeded)
|
|
{
|
|
_imgIcon.enabled = true;
|
|
_imgIcon.overrideSprite = handle.Result;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_imgIcon.enabled = false;
|
|
_skeleton.gameObject.SetActive(true);
|
|
_skeleton.Show(skinAsset, null);
|
|
//var handle = AssetProxy.Instance.TryGetGlobalAssetAsync<GameObject>(spriteAsset);
|
|
//yield return handle;
|
|
//Object.Instantiate(handle.Result, _imgIcon.transform);
|
|
}
|
|
}
|
|
}
|
|
|
|
void ShowSkillDetail(PetProxy.PetSkillInfo petSkill)
|
|
{
|
|
__goSkillDetail.SetActive(true);
|
|
_skillDetailWidget.SetData(petSkill);
|
|
}
|
|
|
|
void RefreshGradeAndExp(bool anim)
|
|
{
|
|
//RefreshUpgradeCost();
|
|
var pet = this.selectedPet;
|
|
if (!pet.isMaxGrade)
|
|
{
|
|
_tmpExp.text = $"<#FF9A00>{pet.grade}级</color> {pet.exp}/{pet.expMax}";
|
|
float target = pet.exp / (float)pet.expMax;
|
|
if (anim)
|
|
StartCoroutine(ShowExpWithAnim(target));
|
|
else
|
|
_sldExp.value = target;
|
|
|
|
var feedCount = TimeProxy.Instance.GetTimeInfo2(TimeProxy.宠物升级);
|
|
_tmpFeedCount.text = $"今日剩余次数:{feedCount.remain}/{feedCount.max}";
|
|
|
|
RefreshFeed();
|
|
|
|
}
|
|
else
|
|
{
|
|
_sldExp.value = 1f;
|
|
_tmpExp.text = "已满级";
|
|
|
|
_btnFeed.gameObject.SetActive(false);
|
|
_btnFeedAd.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
IEnumerator ShowExpWithAnim(float target)
|
|
{
|
|
if (_sldExp.value < target)
|
|
{
|
|
for (int i = 0; i < 20; i++)
|
|
{
|
|
_sldExp.value += 0.05f;
|
|
if (_sldExp.value >= target)
|
|
{
|
|
_sldExp.value = target;
|
|
break;
|
|
}
|
|
yield return null;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < 20; i++)
|
|
{
|
|
_sldExp.value += 0.05f;
|
|
if (_sldExp.value >= 1f)
|
|
{
|
|
_sldExp.value = 0f;
|
|
break;
|
|
}
|
|
yield return null;
|
|
}
|
|
|
|
for (int i = 0; i < 20; i++)
|
|
{
|
|
_sldExp.value += 0.05f;
|
|
if (_sldExp.value >= target)
|
|
{
|
|
_sldExp.value = target;
|
|
break;
|
|
}
|
|
yield return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
void RefreshGrade()
|
|
{
|
|
var petGrade = selectedPet.grade;
|
|
_tmpGrade.text = petGrade + "级";
|
|
foreach (var widget in _petWidgets)
|
|
{
|
|
widget.RefreshGrade();
|
|
}
|
|
if (petGrade % 10 == 0)
|
|
RefreshSkills();
|
|
|
|
var feedCount = TimeProxy.Instance.GetTimeInfo2(TimeProxy.宠物升级);
|
|
_tmpFeedCount.text = $"今日剩余次数:{feedCount.remain}/{feedCount.max}";
|
|
}
|
|
|
|
public void RefreshUpgradeCost()
|
|
{
|
|
_recastPanel.RefreshCost();
|
|
//var costs = selectedPet.CalcUpgradeCost();
|
|
//_upgradeCost1.SetPriceWithMax(costs[0]);
|
|
//_upgradeCost2.SetAndCheckPrice(costs[1]);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void RefreshBattleStatus()
|
|
{
|
|
foreach (var widget in _petWidgets)
|
|
{
|
|
widget.RefreshBattleStatus();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="reset"></param>
|
|
void ShowRecastPanel(bool reset = false)
|
|
{
|
|
var pet = this.selectedPet;
|
|
if (pet != null)
|
|
{
|
|
if (reset)
|
|
{
|
|
pet.ResetRecast();
|
|
}
|
|
__goRecast.SetActive(true);
|
|
_recastPanel.SetData(pet);
|
|
if (reset)
|
|
{
|
|
_recastPanel.ResetLock();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
void ShowReplacePanel()
|
|
{
|
|
__goReplace.SetActive(true);
|
|
_replacePanel.SetData(this.selectedPet);
|
|
}
|
|
|
|
bool LockSkill(SkillWidget skillWidget)
|
|
{
|
|
return _recastPanel.LockSkill(skillWidget);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="petInfo"></param>
|
|
public void OnPetSelect(PetProxy.PetInfo petInfo)
|
|
{
|
|
for (int i = 0; i < _pets.Count; i++)
|
|
{
|
|
if (_pets[i] == petInfo)
|
|
{
|
|
_petIndex = i;
|
|
RefreshPetSelect();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
private void OnUpgradeBtnClick()
|
|
{
|
|
var pet = this.selectedPet;
|
|
if (pet != null)
|
|
{
|
|
var cost = pet.CalcUpgradeCost();
|
|
int shortId = MoneyProxy.Instance.CheckMoney2(cost);
|
|
if (shortId > 0)
|
|
{
|
|
if (shortId != Item.Id.kCoin)
|
|
{
|
|
OpenWindow<PropBuyBox>(ItemProxy.Instance.GetStaticItem<ItemProp>(shortId));
|
|
}
|
|
else
|
|
ToastBox.ShowText("货币不足");
|
|
return;
|
|
}
|
|
|
|
var result = pet.Upgrade();
|
|
if (result > 0)
|
|
{
|
|
MoneyProxy.Instance.CostMoney(cost);
|
|
ToastBox.ShowText("获得100经验");
|
|
RefreshGradeAndExp(true);
|
|
if (result > 1)
|
|
{
|
|
RefreshGrade();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("宠物已满级");
|
|
}
|
|
}
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
private void OnOnekeyUpgradeBtnClick()
|
|
{
|
|
var pet = this.selectedPet;
|
|
if (pet != null)
|
|
{
|
|
int result = -1;
|
|
while (true)
|
|
{
|
|
var cost = pet.CalcUpgradeCost();
|
|
int shortId = MoneyProxy.Instance.CheckMoney2(cost);
|
|
if (shortId > 0)
|
|
{
|
|
break;
|
|
}
|
|
|
|
int upResult = pet.Upgrade();
|
|
if (upResult == 0)
|
|
break;
|
|
result = upResult;
|
|
MoneyProxy.Instance.CostMoney(cost);
|
|
}
|
|
|
|
if (result > 0)
|
|
{
|
|
RefreshGradeAndExp(true);
|
|
if (result > 1)
|
|
{
|
|
RefreshGrade();
|
|
}
|
|
|
|
if (pet.isMaxGrade)
|
|
{
|
|
ToastBox.ShowText("宠物已满级");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
}
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnFeedBtnClick()
|
|
{
|
|
//int feedCount = TimeProxy.Instance.GetDailyAmount(4);
|
|
//if (feedCount <= 0)
|
|
//{
|
|
// ToastBox.ShowText("今天次数不足,请明天再来.");
|
|
// return;
|
|
//}
|
|
var pet = this.selectedPet;
|
|
if (!pet.isMaxGrade)
|
|
{
|
|
var result = PetProxy.Instance.UpgradePet(pet, false);
|
|
if (result > 0)
|
|
{
|
|
RefreshGrade();
|
|
UpdateView();
|
|
RefreshFeed();
|
|
}
|
|
if (result > 1)
|
|
ToastBox.ShowEffect("UI_fx_chongwutupo");
|
|
//ToastBox.ShowText("获得1000经验");
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("宠物已满级");
|
|
}
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnAdFeedBtnClick()
|
|
{
|
|
int feedCount = TimeProxy.Instance.GetTimes(TimeProxy.宠物升级);
|
|
if (feedCount <= 0)
|
|
{
|
|
ToastBox.ShowText("今天次数不足,请明天再来.");
|
|
return;
|
|
}
|
|
|
|
var pet = this.selectedPet;
|
|
if (!pet.isMaxGrade)
|
|
{
|
|
AdProxy.Instance.PlayAdChange("pet", "ads_pet_feed", (error, message) =>
|
|
{
|
|
if (error == 0)
|
|
{
|
|
var result = PetProxy.Instance.UpgradePet(pet, true);
|
|
if (result > 0)
|
|
{
|
|
RefreshGrade();
|
|
UpdateView();
|
|
RefreshFeed();
|
|
}
|
|
if (result > 1)
|
|
ToastBox.ShowEffect("UI_fx_chongwutupo");
|
|
//ToastBox.ShowText("获得2000经验");
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("宠物已满级");
|
|
}
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
void OnBattleBtnClick()
|
|
{
|
|
var petInfo = this.selectedPet;
|
|
if (petInfo.isFriend)
|
|
{
|
|
petInfo.isBattling = !petInfo.isBattling;
|
|
|
|
_goStatus.SetActive(petInfo.isBattling);
|
|
_tmpBattle.text = petInfo.isBattling ? "休息" : "出战";
|
|
|
|
RefreshBattleStatus();
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("宠物未获得");
|
|
}
|
|
}
|
|
|
|
private void OnSkillBookBtnClick()
|
|
{
|
|
OpenWindow<PetSkillBox>();
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnRenameBtnClick()
|
|
{
|
|
var pet = selectedPet;
|
|
if (pet.isFriend)
|
|
NameBox.Show(selectedPet.name, (result) =>
|
|
{
|
|
selectedPet.name = result;
|
|
RefreshName();
|
|
});
|
|
else
|
|
ToastBox.ShowText("宠物获得后才能改名");
|
|
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
void OnRankingBtnClick()
|
|
{
|
|
OpenWindow<RankingWindow>("pet");
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
void OnGetBtnClick()
|
|
{
|
|
var pet = selectedPet;
|
|
if (pet != null)
|
|
{
|
|
if (pet.item.access == 1)
|
|
{
|
|
CloseWindow(this);
|
|
PostNotification(GlobalDefine.EVENT_MAIN_WINDOW_PAGE, null, "0");
|
|
}
|
|
else
|
|
{
|
|
var friendId = pet.friendId;
|
|
if (friendId != Item.Id.kFriend)
|
|
{
|
|
var propCount = ItemProxy.Instance.GetPropCount(friendId);
|
|
var propCountMax = pet.friendMax;
|
|
if (propCount >= propCountMax)
|
|
{
|
|
ItemProxy.Instance.SetPropCount(friendId, propCount - propCountMax);
|
|
pet.Active();
|
|
RefreshView();
|
|
}
|
|
else
|
|
{
|
|
//ToastBox.ShowText("道具不足");
|
|
if (pet.item.access == 7)
|
|
{
|
|
if (QingMingActivity.Instance.isStartActivity)
|
|
{
|
|
CloseWindow(this);
|
|
OpenWindow<QingMingWindow>();
|
|
}
|
|
else
|
|
{
|
|
ToastBox.ShowText("活动未开启");
|
|
}
|
|
return;
|
|
}
|
|
var gemProp = ItemProxy.Instance.GetStaticItem<ItemProp>(26);//修改为打开道具获取路径
|
|
OpenWindow<GainwayBox>(gemProp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnBackBtnClick()
|
|
{
|
|
CloseWindow(this);
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
private void OnLeftBtnClick()
|
|
{
|
|
if (_petIndex > 0)
|
|
{
|
|
_petIndex--;
|
|
RefreshPetSelect();
|
|
}
|
|
}
|
|
|
|
private void OnRightBtnClick()
|
|
{
|
|
if (_petIndex < _pets.Count - 1)
|
|
{
|
|
_petIndex++;
|
|
RefreshPetSelect();
|
|
}
|
|
}
|
|
|
|
private void OnRecastBtnClick()
|
|
{
|
|
ShowRecastPanel(true);
|
|
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|