//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, November 27, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Snxxz.UI; namespace Snxxz.UI { public class RoleParticularsWin : Window { [SerializeField] Button m_AddFriend; [SerializeField] Button m_ViewHorse; [SerializeField] Button m_ViewPet; [SerializeField] Button m_ViewRealmEquip; [SerializeField] Button m_Close; [SerializeField] Text m_FairyName; [SerializeField] Image m_RealmIcon; [SerializeField] Text m_PlayerName; [SerializeField] Text m_FightPower; [SerializeField] RawImage m_RawPlayer; RoleParticularModel model { get { return ModelCenter.Instance.GetModel(); } } FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel(); } } OtherPlayerEquipModel otherPlayerEquipModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_AddFriend.onClick.AddListener(OnAddFriend); m_Close.onClick.AddListener(CloseClick); m_ViewHorse.onClick.AddListener(ViewHorse); m_ViewPet.onClick.AddListener(ViewPet); m_ViewRealmEquip.AddListener(ViewRealmEquip); } protected override void OnPreOpen() { OnShowRoleEquip(); WindowCenter.Instance.windowAfterCloseEvent += WindowAfterCloseEvent; } protected override void OnAfterOpen() { } protected override void OnPreClose() { otherPlayerEquipModel.Clear(); WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterCloseEvent; } protected override void OnAfterClose() { UI3DModelExhibition.Instance.StopShow(); if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open(); } } #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 ViewRealmEquip() { var viewPlayerData = model.GetViewPlayerData(model.viewPlayer); var wing = viewPlayerData.GetItemId(RoleEquipType.Wing); otherPlayerEquipModel.ViewPlayerEquip(new OtherPlayerEquipModel.PlayerBriefInfo() { id = model.viewPlayer, realm = viewPlayerData.rolePropData.RealmLV, job = viewPlayerData.rolePropData.Job, vipLevel = viewPlayerData.rolePropData.VIPLV, wing = wing, }); } private void OnShowRoleEquip() { var viewPlayerData = model.GetViewPlayerData(model.viewPlayer); m_AddFriend.gameObject.SetActive(!viewPlayerData.IsCrossServerPlayer() && friendsModel.GetFirendInfo((uint)model.viewPlayer, (byte)GroupType.Friend) == null); 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) { m_FairyName.gameObject.SetActive(false); } else { m_FairyName.gameObject.SetActive(true); m_FairyName.text = StringUtility.Contact(Language.Get("RoleParticularWin_1"), viewPlayerData.rolePropData.FamilyName); } var realmLv = viewPlayerData.rolePropData.RealmLV; m_RealmIcon.gameObject.SetActive(realmLv > 0); if (realmLv > 0) { RealmConfig realmConfig = RealmConfig.Get(realmLv); if (realmConfig != null) { m_RealmIcon.SetSprite(realmConfig.Img); } } m_PlayerName.text = StringUtility.Contact(viewPlayerData.rolePropData.Name, "Lv. ", viewPlayerData.rolePropData.LV); m_FightPower.text = StringUtility.Contact(Language.Get("RoleParticularWin_2"), viewPlayerData.rolePropData.FightPower); int _suitLevel = 0; int clothes = viewPlayerData.GetItemId(RoleEquipType.Clothes); int weapon = viewPlayerData.GetItemId(RoleEquipType.Weapon); int wing = viewPlayerData.GetItemId(RoleEquipType.Wing); int weapon2 = viewPlayerData.GetItemId(RoleEquipType.Weapon2); int fashionClothes = viewPlayerData.GetItemId(RoleEquipType.FashionClothes); int fashionWeapon = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon); int fashionWeapon2 = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon2); var data = new UI3DPlayerExhibitionData { job = viewPlayerData.rolePropData.Job, fashionClothesId = fashionClothes, fashionWeaponId = fashionWeapon, fashionSecondaryId = fashionWeapon2, clothesId = clothes, suitLevel = _suitLevel, weaponId = weapon, wingsId = wing, secondaryId = weapon2, isDialogue = false, }; m_RawPlayer.gameObject.SetActive(true); UI3DModelExhibition.Instance.ShowPlayer(m_RawPlayer, data); } } } }