using UnityEngine;
|
using UnityEngine.UI;
|
|
using System;
|
using System.Collections.Generic;
|
|
namespace vnxbqy.UI
|
{
|
|
public class AssistPlayerCell : MonoBehaviour
|
{
|
[SerializeField] Text nameText;
|
[SerializeField] Text lvText;
|
[SerializeField] GameObject lvIcon;
|
[SerializeField] AvatarCell avatarCell;
|
[SerializeField] Image realmIcon;
|
[SerializeField] Button helpBtn;
|
[SerializeField] Image helpBgImg;
|
[SerializeField] Text helpText;
|
[SerializeField] Button goldHelpBtn;
|
[SerializeField] Text goldHelpText;
|
[SerializeField] Text fightPowerText;
|
[SerializeField] Text rewardText;
|
[SerializeField] Image relationImg;
|
[SerializeField] Text jobNameText;
|
|
FriendsModel friendsModel
|
{
|
get { return ModelCenter.Instance.GetModel<FriendsModel>(); }
|
}
|
DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
|
DungeonAssistModel.AssistPlayerInfo playerInfo = null;
|
|
|
private void OnEnable()
|
{
|
goldHelpBtn.AddListener(ClickGoldHelp);
|
assistModel.UpdataAssistPlayerEvent += UpdateAssistState;
|
}
|
|
private void OnDisable()
|
{
|
goldHelpBtn.RemoveAllListeners();
|
assistModel.UpdataAssistPlayerEvent -= UpdateAssistState;
|
}
|
|
public void SetDisplay(int playerId)
|
{
|
playerInfo = assistModel.GetAssistPlayerInfo(playerId);
|
if (playerInfo == null) return;
|
|
nameText.text = playerInfo.Name;
|
avatarCell.InitUI(AvatarHelper.GetAvatarModel(playerInfo.PlayerID, playerInfo.Face, playerInfo.FacePic, playerInfo.Job));
|
int realmLv = playerInfo.RealmLV;
|
var realmConfig = RealmConfig.Get(playerInfo.RealmLV);
|
realmIcon.SetSprite(realmConfig == null ? "NoRealm" : realmConfig.Img);
|
fightPowerText.text = StringUtility.Contact(Language.Get("MainInterfacePanel_HeadPortraitTip_ZL"),playerInfo.FightPower);
|
UpdateAssistState(playerInfo.PlayerID);
|
jobNameText.text = OccupationNameConfig.GetOccupationName(playerInfo.Job);
|
UpdateAssistReward();
|
UpdateRelation();
|
int nirvanaLv = playerInfo.LV - friendsModel.OpenGreatLV;
|
lvIcon.SetActive(nirvanaLv > 0);
|
if (nirvanaLv > 0)
|
{
|
lvText.text = nirvanaLv.ToString();
|
}
|
else
|
{
|
lvText.text = playerInfo.LV.ToString();
|
}
|
}
|
|
public void UpdateAssistState(int playerId)
|
{
|
if (playerInfo == null || playerInfo.PlayerID != playerId) return;
|
|
helpBtn.RemoveAllListeners();
|
if (playerInfo.IsAssist)
|
{
|
helpBtn.SetActive(true);
|
goldHelpBtn.SetActive(false);
|
helpText.text = Language.Get("DungeonAssist122");
|
helpBgImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
}
|
else
|
{
|
goldHelpBtn.SetActive(playerInfo.IsGoldAssist);
|
helpBtn.SetActive(!playerInfo.IsGoldAssist);
|
if (playerInfo.IsGoldAssist)
|
{
|
goldHelpText.text = assistModel.goldAssistPlayer.ToString();
|
}
|
else
|
{
|
helpBtn.AddListener(ClickHelp);
|
helpText.text = Language.Get("DungeonAssist121");
|
helpBgImg.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
}
|
}
|
}
|
|
public void UpdateAssistReward()
|
{
|
if (playerInfo == null) return;
|
|
var related = playerInfo.relatedToPlayer;
|
List<int> rewards = null;
|
int sumCoins = 0;
|
switch (related)
|
{
|
case DungeonAssistModel.RelatedToPlayer.Ally:
|
sumCoins = assistModel.GetAssistReward(2);
|
break;
|
case DungeonAssistModel.RelatedToPlayer.Friend:
|
case DungeonAssistModel.RelatedToPlayer.FriendAndAlly:
|
sumCoins = assistModel.GetAssistReward(1);
|
break;
|
}
|
|
if (sumCoins > 0)
|
{
|
rewardText.SetActive(true);
|
rewardText.text = Language.Get("DungeonAssist127", sumCoins);
|
}
|
else
|
{
|
rewardText.SetActive(false);
|
}
|
}
|
|
public void UpdateRelation()
|
{
|
if (playerInfo == null) return;
|
|
relationImg.SetActive(playerInfo.relatedToPlayer != DungeonAssistModel.RelatedToPlayer.None);
|
switch (playerInfo.relatedToPlayer)
|
{
|
case DungeonAssistModel.RelatedToPlayer.Friend:
|
relationImg.SetSprite("XT_FBZZ_04");
|
break;
|
case DungeonAssistModel.RelatedToPlayer.Ally:
|
relationImg.SetSprite("XT_FBZZ_05");
|
break;
|
}
|
}
|
|
private void ClickHelp()
|
{
|
if (playerInfo == null) return;
|
|
HelpTip();
|
assistModel.SendPlayerAssist(0,playerInfo.PlayerID,playerInfo.IsNeedGold);
|
}
|
|
private void ClickGoldHelp()
|
{
|
ulong haveMoney = UIHelper.GetMoneyCnt(2);
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),Language.Get("DungeonAssist131",assistModel.goldAssistPlayer),
|
(bool isOk)=>
|
{
|
if(isOk)
|
{
|
if(haveMoney >= (ulong)assistModel.goldAssistPlayer)
|
{
|
HelpTip();
|
assistModel.SendPlayerAssist(0, playerInfo.PlayerID, playerInfo.IsNeedGold);
|
}
|
else
|
{
|
//WindowCenter.Instance.Open<RechargeTipWin>();
|
SysNotifyMgr.Instance.ShowTip("LackMoney", 2);
|
}
|
}
|
});
|
}
|
|
private void HelpTip()
|
{
|
if (assistModel.GetAlreadyAssistNum() < 2)
|
{
|
SysNotifyMgr.Instance.ShowTip("SummonAssistant1");
|
}
|
else
|
{
|
SysNotifyMgr.Instance.ShowTip("SummonAssistant2");
|
}
|
}
|
|
}
|
}
|