| 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");  | 
|             }  | 
|         }  | 
|   | 
|     }  | 
| }  |