//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, November 27, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using Snxxz.UI; namespace Snxxz.UI { public class RoleParticularsWin : Window { [SerializeField] List roleEquipList = new List(); [SerializeField] Button addFriendBtn; [SerializeField] Button m_ViewHorse; [SerializeField] Button m_ViewPet; [SerializeField] Button closeBtn; [SerializeField] Text fairyName; [SerializeField] Image realmImg; [SerializeField] Text playerTxt; [SerializeField] Text fightPowerTxt; [SerializeField] RawImage roleModel; RoleParticularModel m_Model; RoleParticularModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } FriendsModel m_FriendModel; FriendsModel friendsModel { get { return m_FriendModel ?? (m_FriendModel = ModelCenter.Instance.GetModel()); } } EquipWashModel m_EquipWashModel; EquipWashModel equipWashModel { get { return m_EquipWashModel ?? (m_EquipWashModel = ModelCenter.Instance.GetModel()); } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { addFriendBtn.onClick.AddListener(OnAddFriend); closeBtn.onClick.AddListener(CloseClick); for (int i = 0; i < roleEquipList.Count; i++) { RoleEquipType roleEquipType = roleEquipList[i].type; roleEquipList[i].itemCell.cellBtn.onClick.AddListener(() => { OnRoleEquipClick(roleEquipType); }); } m_ViewHorse.onClick.AddListener(ViewHorse); m_ViewPet.onClick.AddListener(ViewPet); } private void OnRoleEquipClick(RoleEquipType type) { RoleParticularModel.ItemData itemData = model.GetItemData(type); if (itemData != null) { RoleParticularModel.ViewPlayerData viewPlayerData = model.GetViewPlayerData(model.viewPlayer); ItemAttrData attrData = new ItemAttrData(itemData.ItemID, false, 1, -1, itemData.IsBind, false, PackType.rptDeleted, "", itemData.useDataDict); attrData.SetStrengthData(viewPlayerData.rolePlusData.GetEquipStarLv((int)type), strengthengmodel.GameDefineIndex((int)type)); attrData.SetGemModel(viewPlayerData.rolePlusData.GetEquipStone((int)type)); RoleParticularModel.EquipWash? equipWash = viewPlayerData.rolePlusData.GetEquipWash((int)type); if (equipWash.HasValue) { attrData.SetWashModel(equipWashModel.OnGetWashType((int)type), equipWash.Value.LV, equipWash.Value.Value); } RoleParticularModel.EquipSuit _suit; if (viewPlayerData.rolePlusData.TryGetEquipSuit(itemData.ItemIndex, out _suit)) { attrData.SetOtherSuitData(itemData.ItemID, itemData.ItemIndex, _suit.suitDict, viewPlayerData.GetEquipAllSuitCount(itemData.ItemIndex)); } itemTipsModel.SetItemTipsModel(attrData); } } protected override void OnPreOpen() { OnShowRoleEquip(); WindowCenter.Instance.windowAfterCloseEvent += WindowAfterCloseEvent; } protected override void OnAfterOpen() { } protected override void OnPreClose() { WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterCloseEvent; } protected override void OnAfterClose() { UI3DModelExhibition.Instance.StopShowPlayer(); } #endregion private void WindowAfterCloseEvent(Window win) { if (win is ViewHorseDetailWin || win is ViewPetDetailWin) { OnShowRoleEquip(); } } private void OnAddFriend() { if (friendsModel.GetFirendInfo((uint)model.viewPlayer, (byte)GroupType.Balcklist) != null) { SysNotifyMgr.Instance.ShowTip("Friend_RemoveBlacklist"); return; } friendsModel.OnClickAddFriend((uint)model.viewPlayer); } private void ViewPet() { RoleParticularModel.ViewPlayerData viewPlayerData = model.GetViewPlayerData(model.viewPlayer); if (viewPlayerData != null && viewPlayerData.rolePlusData.pets.Count > 0) { WindowCenter.Instance.Open(); } } private void ViewHorse() { RoleParticularModel.ViewPlayerData viewPlayerData = model.GetViewPlayerData(model.viewPlayer); if (viewPlayerData != null && viewPlayerData.rolePlusData.horses.Count > 0) { WindowCenter.Instance.Open(); } } private void OnShowRoleEquip() { addFriendBtn.gameObject.SetActive(friendsModel.GetFirendInfo((uint)model.viewPlayer, (byte)GroupType.Friend) == null); for (int i = 0; i < roleEquipList.Count; i++) { ItemCell itemCell = roleEquipList[i].itemCell; RoleParticularModel.ItemData itemData = model.GetItemData(roleEquipList[i].type); itemCell.gameObject.SetActive(itemData != null); if (itemData == null) { continue; } ItemCellModel cellModel = new ItemCellModel(itemData.ItemID, false, 1, itemData.IsBind, "", PackType.rptEquip, false, itemData.useDataDict); itemCell.Init(cellModel); } RoleParticularModel.ViewPlayerData viewPlayerData = model.GetViewPlayerData(model.viewPlayer); if (viewPlayerData != null) { m_ViewHorse.gameObject.SetActive(viewPlayerData.rolePlusData.horses.Count > 0); m_ViewPet.gameObject.SetActive(viewPlayerData.rolePlusData.pets.Count > 0); if (viewPlayerData.rolePropData.FamilyID == 0) { fairyName.gameObject.SetActive(false); } else { fairyName.gameObject.SetActive(true); fairyName.text = StringUtility.Contact(Language.Get("RoleParticularWin_1"), viewPlayerData.rolePropData.FamilyName); } var realmLv = viewPlayerData.rolePropData.RealmLV; realmImg.gameObject.SetActive(realmLv > 0); if (realmLv > 0) { RealmConfig _tagRealmModel = Config.Instance.Get(realmLv); if (_tagRealmModel != null) realmImg.SetSprite(_tagRealmModel.Img); } playerTxt.text = StringUtility.Contact(viewPlayerData.rolePropData.Name, "Lv. ", viewPlayerData.rolePropData.LV); fightPowerTxt.text = StringUtility.Contact(Language.Get("RoleParticularWin_2"), viewPlayerData.rolePropData.FightPower); int clothes = 0; int _suitLevel = 0; RoleParticularModel.ItemData itemData = model.GetItemData(RoleEquipType.retClothes); if (itemData != null) { clothes = itemData.ItemID; _suitLevel = viewPlayerData.GetEquipSuitLevel(); } int weapon = 0; itemData = model.GetItemData(RoleEquipType.retWeapon); if (itemData != null) { weapon = itemData.ItemID; } int wing = 0; itemData = model.GetItemData(RoleEquipType.retWing); if (itemData != null) { wing = itemData.ItemID; } int weapon2 = 0; itemData = model.GetItemData(RoleEquipType.retWeapon2); if (itemData != null) { weapon2 = itemData.ItemID; } UI3DModelExhibition.Instance.BeginShowOtherPlayer(roleModel, viewPlayerData.rolePropData.Job, clothes, _suitLevel, weapon, wing, weapon2); } } [Serializable] public class RoleEquip { public RoleEquipType type; public ItemCell itemCell; } } }