Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
| | |
| | | public static void Init()
|
| | | {
|
| | | // 登记相应的数据体及对应的数据转逻辑类
|
| | | Register(typeof(HA719_tagSCPlayerEquipCacheResult) ,typeof(DTCA719_tagSCPlayerEquipCacheResult));
|
| | | Register(typeof(HB108_tagMCYinjiStartTime) ,typeof(DTCB108_tagMCYinjiStartTime));
|
| | | Register(typeof(HA309_tagMCSkillElementInfo), typeof(DTCA309_tagMCSkillElementInfo));
|
| | | Register(typeof(HA325_tagMCNPCAttackCountInfo), typeof(DTCA325_tagMCNPCAttackCountInfo));
|
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | //A2 12 查看玩家详细信息#tagCMViewPlayerInfo
|
| | |
|
| | | public class CA212_tagCMViewPlayerInfo : GameNetPackBasic {
|
| | | public uint PlayerID;
|
| | |
|
| | | public CA212_tagCMViewPlayerInfo () {
|
| | | combineCmd = (ushort)0x03FE;
|
| | | _cmd = (ushort)0xA212;
|
| | | }
|
| | |
|
| | | public override void WriteToBytes () {
|
| | | WriteBytes (PlayerID, NetDataType.DWORD);
|
| | | }
|
| | |
|
| | | }
|
| | | //A2 12 查看玩家详细信息#tagCMViewPlayerInfo
|
| | |
|
| | | public class CA212_tagCMViewPlayerInfo : GameNetPackBasic
|
| | | {
|
| | | public uint PlayerID;
|
| | | public byte EquipClassLV; //大于0为查看指定境界阶装备信息, 0为查看默认信息
|
| | |
|
| | | public CA212_tagCMViewPlayerInfo()
|
| | | {
|
| | | combineCmd = (ushort)0x03FE;
|
| | | _cmd = (ushort)0xA212;
|
| | | }
|
| | |
|
| | | public override void WriteToBytes()
|
| | | {
|
| | | WriteBytes(PlayerID, NetDataType.DWORD);
|
| | | WriteBytes(EquipClassLV, NetDataType.BYTE);
|
| | | }
|
| | |
|
| | | } |
| New file |
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | | using Snxxz.UI;
|
| | |
|
| | | // A7 19 查询玩家境界阶装备信息结果 #tagSCPlayerEquipCacheResult
|
| | | public class DTCA719_tagSCPlayerEquipCacheResult : DtcBasic
|
| | | {
|
| | | OtherPlayerEquipModel model { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } }
|
| | |
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
base.Done(vNetPack);
|
| | | var vNetData = vNetPack as HA719_tagSCPlayerEquipCacheResult;
model.OnGetEquipDetails(vNetData);
}
|
| | | }
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 9c0893d47e73bc940816981cae5e83fe |
| | | timeCreated: 1556330037 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | // A7 19 查询玩家境界阶装备信息结果 #tagSCPlayerEquipCacheResult
|
| | |
|
| | | public class HA719_tagSCPlayerEquipCacheResult : GameNetPackBasic {
|
| | | public uint PlayerID; //玩家ID
|
| | | public byte EquipClassLV;
|
| | | public ushort ItemDataSize;
|
| | | public string ItemData; //物品记录 |
| | |
|
| | | public HA719_tagSCPlayerEquipCacheResult () {
|
| | | _cmd = (ushort)0xA719;
|
| | | }
|
| | |
|
| | | public override void ReadFromBytes (byte[] vBytes) {
|
| | | TransBytes (out PlayerID, vBytes, NetDataType.DWORD);
|
| | | TransBytes (out EquipClassLV, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out ItemDataSize, vBytes, NetDataType.WORD);
|
| | | TransBytes (out ItemData, vBytes, NetDataType.Chars, ItemDataSize);
|
| | | }
|
| | |
|
| | | }
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: f2b31ad6cbddb164d9d5bef0c9ea97e8 |
| | | timeCreated: 1556330037 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | |
| | | JobSetup = JobSetupConfig.Get(ActorInfo.Job); |
| | | |
| | | RoleParticularModel.ItemData _item = null; |
| | | |
| | | if (m_ViewPlayerData.roleEquipDataDic.TryGetValue(RoleEquipType.Clothes, out _item)) |
| | | { |
| | | _clothesId = _item.ItemID; |
| | | } |
| | | |
| | | if (m_ViewPlayerData.roleEquipDataDic.TryGetValue(RoleEquipType.Weapon, out _item)) |
| | | { |
| | | _weaponId = _item.ItemID; |
| | | } |
| | | |
| | | if (m_ViewPlayerData.roleEquipDataDic.TryGetValue(RoleEquipType.Weapon2, out _item)) |
| | | { |
| | | _secondaryId = _item.ItemID; |
| | | } |
| | | |
| | | if (m_ViewPlayerData.roleEquipDataDic.TryGetValue(RoleEquipType.Wing, out _item)) |
| | | { |
| | | _wingId = _item.ItemID; |
| | | } |
| | | _clothesId = m_ViewPlayerData.GetItemId(RoleEquipType.Clothes);
|
| | | _weaponId = m_ViewPlayerData.GetItemId(RoleEquipType.Weapon);
|
| | | _secondaryId = m_ViewPlayerData.GetItemId(RoleEquipType.Weapon2); |
| | | _wingId = m_ViewPlayerData.GetItemId(RoleEquipType.Wing); |
| | | } |
| | | |
| | | //Debug.LogFormat("Name: {0}", ActorInfo.PlayerName); |
| | |
| | | m_ViewPlayerData = new RoleParticularModel.ViewPlayerData(); |
| | | } |
| | | |
| | | m_ViewPlayerData.roleEquipDataDic.Clear(); |
| | | m_ViewPlayerData.itemDatas = LitJson.JsonMapper.ToObject<RoleParticularModel.ItemData[]>(package.ItemData); |
| | | m_ViewPlayerData.rolePropData = LitJson.JsonMapper.ToObject<RoleParticularModel.RolePropData>(package.PropData); |
| | | m_ViewPlayerData.rolePlusData = new RoleParticularModel.RolePlusData(); |
| | | m_ViewPlayerData.rolePlusData.AnalysisRolePlusData(package.PlusData); |
| | | if (m_ViewPlayerData.itemDatas != null) |
| | | { |
| | | for (int i = 0; i < m_ViewPlayerData.itemDatas.Length; i++) |
| | | { |
| | | m_ViewPlayerData.itemDatas[i].AnalysisUserData(); |
| | | m_ViewPlayerData.roleEquipDataDic[(RoleEquipType)m_ViewPlayerData.itemDatas[i].ItemIndex] = m_ViewPlayerData.itemDatas[i]; |
| | | } |
| | | } |
| | | m_ViewPlayerData.AnalysisEquipSuit(); |
| | | |
| | | SyncHelpPlayerInfo(); |
| | | } |
| | |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "UnInit", _m_UnInit); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "OnBeforePlayerDataInitialize", _m_OnBeforePlayerDataInitialize); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetItemData", _m_GetItemData); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetViewPlayerData", _m_GetViewPlayerData); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "ViewRoleEquip", _m_ViewRoleEquip); |
| | | Utils.RegisterFunc(L, Utils.METHOD_IDX, "ViewRoleFightPower", _m_ViewRoleFightPower); |
| | |
| | | |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | } catch(System.Exception gen_e) { |
| | | return LuaAPI.luaL_error(L, "c# exception:" + gen_e); |
| | | } |
| | | |
| | | } |
| | | |
| | | [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] |
| | | static int _m_GetItemData(RealStatePtr L) |
| | | { |
| | | try { |
| | | |
| | | ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); |
| | | |
| | | |
| | | Snxxz.UI.RoleParticularModel gen_to_be_invoked = (Snxxz.UI.RoleParticularModel)translator.FastGetCSObj(L, 1); |
| | | |
| | | |
| | | |
| | | { |
| | | RoleEquipType _type;translator.Get(L, 2, out _type); |
| | | |
| | | Snxxz.UI.RoleParticularModel.ItemData gen_ret = gen_to_be_invoked.GetItemData( _type ); |
| | | translator.Push(L, gen_ret); |
| | | |
| | | |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | } catch(System.Exception gen_e) { |
| | |
| | | |
| | | public class EquipFightPower : Singleton<EquipFightPower> |
| | | { |
| | | |
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } |
| | | EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } |
| | | EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } |
| | |
| | | { |
| | | Equation.Instance.Clear(); |
| | | Equation.Instance.AddKeyValue("equipScoreTotal", CountEquipScore(level)); |
| | | var power = 0; |
| | | power = Equation.Instance.Eval<int>(scoreFormula); |
| | | var power = Equation.Instance.Eval<int>(scoreFormula); |
| | | |
| | | var propertyContainer = new Properties(); |
| | | CountProperties(level, ref propertyContainer); |
| | |
| | | |
| | | private List<int> CountEightSuitSkills(int level) |
| | | { |
| | | var eightSuitLevel = equipModel.GetSuitLevel(level, EquipSuitType.EightSuit); |
| | | return CountEightSuitSkills(PlayerDatas.Instance.baseData.Job, level, eightSuitLevel); |
| | | } |
| | | |
| | | private List<int> CountEightSuitSkills(int job, int level, int eightSuitLevel) |
| | | { |
| | | var skills = new List<int>(); |
| | | |
| | | var eightSuitLevel = equipModel.GetSuitLevel(level, EquipSuitType.EightSuit); |
| | | List<EquipSuitConfig> eightConfigs = null; |
| | | if (eightSuitLevel >= 0) |
| | | { |
| | | eightConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit); |
| | | eightConfigs = EquipSuitConfig.GetConfigs(job, level, EquipSuitType.EightSuit); |
| | | } |
| | | |
| | | for (int i = 9; i >= 0; i--) |
| | |
| | | var fiveSuitLevel = equipModel.GetSuitLevel(level, EquipSuitType.FiveSuit); |
| | | var eightSuitLevel = equipModel.GetSuitLevel(level, EquipSuitType.EightSuit); |
| | | |
| | | CountSuitProperties(level, twoSuitLevel, fiveSuitLevel, eightSuitLevel, ref container); |
| | | } |
| | | |
| | | private void CountSuitProperties(int level, int twoLevel, int fiveLevel, int eightLevel, ref Properties container) |
| | | { |
| | | List<EquipSuitConfig> twoConfigs = null; |
| | | if (twoSuitLevel >= 0) |
| | | if (twoLevel >= 0) |
| | | { |
| | | twoConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.TwoSuit); |
| | | } |
| | | |
| | | List<EquipSuitConfig> fiveConfigs = null; |
| | | if (fiveSuitLevel >= 0) |
| | | if (fiveLevel >= 0) |
| | | { |
| | | fiveConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.FiveSuit); |
| | | } |
| | | |
| | | List<EquipSuitConfig> eightConfigs = null; |
| | | if (eightSuitLevel >= 0) |
| | | if (eightLevel >= 0) |
| | | { |
| | | eightConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit); |
| | | } |
| | |
| | | continue; |
| | | } |
| | | |
| | | if (twoSuitLevel >= i) |
| | | if (twoLevel >= i) |
| | | { |
| | | var config = twoConfigs.Find(x => { return x.star == i; }); |
| | | foreach (var property in config.attr) |
| | |
| | | } |
| | | } |
| | | |
| | | if (fiveSuitLevel >= i) |
| | | if (fiveLevel >= i) |
| | | { |
| | | var config = fiveConfigs.Find(x => { return x.star == i; }); |
| | | foreach (var property in config.attr) |
| | |
| | | } |
| | | } |
| | | |
| | | if (eightSuitLevel >= i) |
| | | if (eightLevel >= i) |
| | | { |
| | | var config = eightConfigs.Find(x => { return x.star == i; }); |
| | | foreach (var property in config.attr) |
| | |
| | | continue; |
| | | } |
| | | |
| | | var values = strengthenModel.GetEquipValueList(level, i); |
| | | foreach (var item in values) |
| | | { |
| | | container.Add(item.AttType, item.AttValue); |
| | | } |
| | | var type = EquipStrengthModel.GetEquipStrengthType(i); |
| | | var strengthenLevel = strengthenModel.GetStrengthLevel(level, i); |
| | | CountStrengthenProperties(type, strengthenLevel, ref container); |
| | | } |
| | | } |
| | | |
| | | private void CountStrengthenProperties(int type, int strengthenLevel, ref Properties container) |
| | | { |
| | | var config = ItemPlusConfig.GetTypeAndLevel(type, strengthenLevel); |
| | | var min = Mathf.Min(config.attType.Length, config.attValue.Length); |
| | | for (int i = 0; i < min; i++) |
| | | { |
| | | container.Add(config.attType[i], config.attValue[i]); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | var star = starModel.GetEquipStarLevel(equipPosition); |
| | | var config = EquipStarConfig.Get(equipPosition.x, equipPosition.y, star); |
| | | if (config == null) |
| | | { |
| | | continue; |
| | | } |
| | | CountStarProperties(level, i, star, ref container); |
| | | } |
| | | } |
| | | |
| | | foreach (var property in config.BaseAttrInfo) |
| | | { |
| | | container.Add(property.x, property.y); |
| | | } |
| | | |
| | | foreach (var property in config.StarAttrInfo) |
| | | { |
| | | container.Add(property.x, property.y); |
| | | } |
| | | private void CountStarProperties(int level, int place, int star, ref Properties container) |
| | | { |
| | | var config = EquipStarConfig.Get(level, place, star); |
| | | if (config == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | foreach (var property in config.BaseAttrInfo) |
| | | { |
| | | container.Add(property.x, property.y); |
| | | } |
| | | |
| | | foreach (var property in config.StarAttrInfo) |
| | | { |
| | | container.Add(property.x, property.y); |
| | | } |
| | | } |
| | | |
| | | private void CountGemProperties(int level, ref Properties container) |
| | |
| | | continue; |
| | | } |
| | | |
| | | var itemConfig = ItemConfig.Get(gem); |
| | | if (itemConfig.Effect2 > 0) |
| | | { |
| | | container.Add(itemConfig.Effect2, itemConfig.EffectValueA2); |
| | | } |
| | | |
| | | if (itemConfig.Effect3 > 0) |
| | | { |
| | | container.Add(itemConfig.Effect3, itemConfig.EffectValueA3); |
| | | } |
| | | |
| | | if (itemConfig.Effect4 > 0) |
| | | { |
| | | container.Add(itemConfig.Effect4, itemConfig.EffectValueA4); |
| | | } |
| | | |
| | | if (itemConfig.Effect5 > 0) |
| | | { |
| | | container.Add(itemConfig.Effect5, itemConfig.EffectValueA5); |
| | | } |
| | | |
| | | CountGemItemProperties(gem, ref container); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | private void CountGemItemProperties(int gem, ref Properties container) |
| | | { |
| | | var config = ItemConfig.Get(gem); |
| | | if (config == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (config.Effect2 > 0) |
| | | { |
| | | container.Add(config.Effect2, config.EffectValueA2); |
| | | } |
| | | |
| | | if (config.Effect3 > 0) |
| | | { |
| | | container.Add(config.Effect3, config.EffectValueA3); |
| | | } |
| | | |
| | | if (config.Effect4 > 0) |
| | | { |
| | | container.Add(config.Effect4, config.EffectValueA4); |
| | | } |
| | | |
| | | if (config.Effect5 > 0) |
| | | { |
| | | container.Add(config.Effect5, config.EffectValueA5); |
| | | } |
| | | } |
| | | |
| | | private void CountTrainProperties(int level, ref Properties container) |
| | |
| | | container.Add(data.config.attType3, Mathf.Min(data.config.attMax3, trainedProperties.z)); |
| | | } |
| | | |
| | | } |
| | | |
| | | public int CalculatePower(int job, int level, List<EquipInfo> equipInfos) |
| | | { |
| | | var propertyContainer = new Properties(); |
| | | var totalScore = 0; |
| | | |
| | | var stars = new List<int>(); |
| | | foreach (var info in equipInfos) |
| | | { |
| | | totalScore += info.score; |
| | | stars.Add(info.starLevel); |
| | | |
| | | var config = ItemConfig.Get(info.itemId); |
| | | var strengthenType = EquipStrengthModel.GetEquipStrengthType(config.EquipPlace); |
| | | CountStrengthenProperties(strengthenType, info.strengthenLevel, ref propertyContainer); |
| | | CountStarProperties(config.LV, config.EquipPlace, info.starLevel, ref propertyContainer); |
| | | |
| | | if (!info.stones.IsNullOrEmpty()) |
| | | { |
| | | foreach (var gem in info.stones) |
| | | { |
| | | CountGemItemProperties(gem, ref propertyContainer); |
| | | } |
| | | } |
| | | |
| | | if (!info.trainProperties.IsNullOrEmpty()) |
| | | { |
| | | foreach (var property in info.trainProperties) |
| | | { |
| | | propertyContainer.Add(property.x, property.y); |
| | | } |
| | | } |
| | | } |
| | | |
| | | stars.Sort((int x, int y) => { return x.CompareTo(y); }); |
| | | var twoSuitLevel = stars.Count > 1 ? stars[1] : -1; |
| | | var fiveSuitLevel = stars.Count > 4 ? stars[4] : -1; |
| | | var eightSuitLevel = stars.Count > 7 ? stars[7] : -1; |
| | | CountSuitProperties(level, twoSuitLevel, fiveSuitLevel, eightSuitLevel, ref propertyContainer); |
| | | |
| | | Equation.Instance.Clear(); |
| | | Equation.Instance.AddKeyValue("equipScoreTotal", totalScore); |
| | | var power = Equation.Instance.Eval<int>(scoreFormula); |
| | | |
| | | Equation.Instance.Clear(); |
| | | var keys = propertyContainer.keys; |
| | | for (int i = 0; i < keys.Count; i++) |
| | | { |
| | | var id = keys[i]; |
| | | var value = propertyContainer[id]; |
| | | var config = PlayerPropertyConfig.Get(id); |
| | | Equation.Instance.AddKeyValue(config.Parameter, value); |
| | | } |
| | | |
| | | power += Equation.Instance.Eval<int>(propertyFormula); |
| | | |
| | | var skills = CountEightSuitSkills(job, level, eightSuitLevel); |
| | | if (!skills.IsNullOrEmpty()) |
| | | { |
| | | foreach (var skill in skills) |
| | | { |
| | | var config = SkillConfig.Get(skill); |
| | | power += config.FightPower; |
| | | } |
| | | } |
| | | |
| | | return power; |
| | | } |
| | | |
| | | class Properties |
| | |
| | | |
| | | } |
| | | |
| | | public struct EquipInfo |
| | | { |
| | | public int itemId; |
| | | public int score; |
| | | public int strengthenLevel; |
| | | public int breakLevel; |
| | | public int starLevel; |
| | | public List<int> stones; |
| | | public List<Int2> trainProperties; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | public EquipAppearance GetAppearance() |
| | | { |
| | | var appearance = new EquipAppearance(); |
| | | appearance.job = PlayerDatas.Instance.baseData.Job; |
| | | |
| | | var clothes = equipSlots[(int)RoleEquipType.Clothes].equip.value; |
| | | if (string.IsNullOrEmpty(clothes)) |
| | | { |
| | |
| | | |
| | | public struct EquipAppearance |
| | | { |
| | | public int job; |
| | | public int clothes; |
| | | public int weapon; |
| | | public int secondary; |
| | |
| | | int equipLevel = strengthModel.SelectLevel;
|
| | | int equipPlace = strengthModel.SelectEquipPlace;
|
| | | int equipIndex = EquipPlaceMapConfig.GetServerPlace(equipLevel, equipPlace);
|
| | | equipType = strengthModel.GetEquipStrengthType(equipPlace);
|
| | | equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace);
|
| | | int equipLv = 0;
|
| | | int advancedLv = 0;
|
| | | if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//获取当前强化等级
|
| | |
| | | }
|
| | | NeedMoney.gameObject.SetActive(false);
|
| | | m_TextNumber.text = "+" + equipLv;
|
| | | int equipType = strengthModel.GetEquipStrengthType(equipPlace);
|
| | | int equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace);
|
| | |
|
| | | var star = equipStarModel.GetEquipStarLevel(new Int2(level, equipPlace));
|
| | | var item = packModel.GetItemByGuid(equipGuid);
|
| | |
| | | {
|
| | | public Dictionary<int, EquipStrength> EquipStrengthDic = new Dictionary<int, EquipStrength>();//强化数据
|
| | | public Dictionary<int, Dictionary<int, int>> EquipLevelMaxDic = new Dictionary<int, Dictionary<int, int>>();//强化类型的最大等级上限
|
| | | public Dictionary<int, int> PartTypeDic = new Dictionary<int, int>();//强化的部位类型
|
| | | static Dictionary<int, int> PartTypeDic = new Dictionary<int, int>();//强化的部位类型
|
| | | public Dictionary<int, int> EvolutionTypeMaxDic = new Dictionary<int, int>();
|
| | | public event Action EquipStrengthUpdate;//强化数据刷新
|
| | | public event Action EquipStrengthLvUpdate;//强化升级成功
|
| | |
| | | public event Action SelectLevelRefresh;//一级页签刷新
|
| | |
|
| | | private bool isChangeBool = true;
|
| | | public bool IsChangeBool
|
| | | {
|
| | | public bool IsChangeBool {
|
| | | get { return isChangeBool; }
|
| | | set { isChangeBool = value; }
|
| | | }
|
| | |
| | | public int SelectLevel//装备类别
|
| | | {
|
| | | get { return selectLevel; }
|
| | | set
|
| | | {
|
| | | set {
|
| | | if (selectLevel != value)
|
| | | {
|
| | | selectLevel = value;
|
| | |
| | | public int SelectEquipPlace//装备类别
|
| | | {
|
| | | get { return selectEquipPlace; }
|
| | | set
|
| | | {
|
| | | set {
|
| | | if (selectEquipPlace != value)
|
| | | {
|
| | | selectEquipPlace = value;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int GetEquipStrengthType(int equipPlace)//获取装备类型
|
| | | public static int GetEquipStrengthType(int equipPlace)//获取装备类型
|
| | | {
|
| | | int type = 1;
|
| | | if (PartTypeDic.ContainsKey(equipPlace))
|
| | |
| | | return type;
|
| | | }
|
| | |
|
| | | public int GetEquipLevelMax(int type,int star)//获取某一类型的最大强化等级
|
| | | public int GetEquipLevelMax(int type, int star)//获取某一类型的最大强化等级
|
| | | {
|
| | | int lv = 0;
|
| | | if (EquipLevelMaxDic.ContainsKey(type))
|
| | |
| | | |
| | | DisplayMoney(); |
| | | |
| | | int equipType = strengthModel.GetEquipStrengthType(equipPlace); |
| | | int equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace); |
| | | |
| | | var star = equipStarModel.GetEquipStarLevel(new Int2(level, equipPlace));
|
| | | var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, level);
|
| | |
| | |
|
| | | DisplayMoney();
|
| | |
|
| | | int equipType = strengthModel.GetEquipStrengthType(equipPlace);
|
| | | int equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace);
|
| | |
|
| | | var star = equipStarModel.GetEquipStarLevel(new Int2(level, equipPlace));
|
| | | var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, level);
|
| | |
| | | advancedLv = model.EquipStrengthDic[equipIndex].EvolveLV;
|
| | | }
|
| | |
|
| | | int equipType = model.GetEquipStrengthType(equipPlace);
|
| | | int equipType = EquipStrengthModel.GetEquipStrengthType(equipPlace);
|
| | | var itemPlusMaxConfig = ItemPlusMaxConfig.GetEquipTypeAndEquipStar(equipType, star);//获取强化等级上限值
|
| | | if (itemPlusMaxConfig == null)
|
| | | {
|
| | |
| | |
|
| | | if (m_EquipStrengthUpper.gameObject.activeSelf)
|
| | | {
|
| | | int equipType = model.GetEquipStrengthType(model.SelectEquipPlace);
|
| | | int equipType = EquipStrengthModel.GetEquipStrengthType(model.SelectEquipPlace);
|
| | | var equipPosition = new Int2(model.SelectLevel, model.SelectEquipPlace);
|
| | | var star = equipStarModel.GetEquipStarLevel(equipPosition);
|
| | | var equipGuid = equipModel.GetEquip(equipPosition);
|
| | |
| | | {
|
| | | equipLv = model.EquipStrengthDic[equipIndex].StrengthLevel;
|
| | | }
|
| | | int equipType = model.GetEquipStrengthType(model.SelectEquipPlace);
|
| | | int equipType = EquipStrengthModel.GetEquipStrengthType(model.SelectEquipPlace);
|
| | | var itemPlusMaxConfig = ItemPlusMaxConfig.GetEquipTypeAndEquipStar(equipType, star);//获取强化等级上限值
|
| | | if (itemPlusMaxConfig.levelMax > equipLv)
|
| | | {
|
| | |
| | | var viewPlayerData = roleParticularModel.GetViewPlayerData((int)model.transmitPlayer);
|
| | | if (viewPlayerData != null)
|
| | | {
|
| | | clothesId = 0;
|
| | | var itemData = roleParticularModel.GetItemData(RoleEquipType.Clothes);
|
| | | if (itemData != null)
|
| | | {
|
| | | clothesId = itemData.ItemID;
|
| | | }
|
| | | fashionClothesId = 0;
|
| | | itemData = roleParticularModel.GetItemData(RoleEquipType.FashionClothes);
|
| | | if (itemData != null)
|
| | | {
|
| | | fashionClothesId = itemData.ItemID;
|
| | | }
|
| | | wingsId = 0;
|
| | | itemData = roleParticularModel.GetItemData(RoleEquipType.Wing);
|
| | | if (itemData != null)
|
| | | {
|
| | | wingsId = itemData.ItemID;
|
| | | }
|
| | | secondaryId = 0;
|
| | | itemData = roleParticularModel.GetItemData(RoleEquipType.Weapon2);
|
| | | if (itemData != null)
|
| | | {
|
| | | secondaryId = itemData.ItemID;
|
| | | }
|
| | | fashionSecondaryId = 0;
|
| | | itemData = roleParticularModel.GetItemData(RoleEquipType.FashionWeapon2);
|
| | | if (itemData != null)
|
| | | {
|
| | | fashionSecondaryId = itemData.ItemID;
|
| | | }
|
| | | clothesId = viewPlayerData.GetItemId(RoleEquipType.Clothes);
|
| | | fashionClothesId = viewPlayerData.GetItemId(RoleEquipType.FashionClothes);
|
| | | wingsId = viewPlayerData.GetItemId(RoleEquipType.Wing);
|
| | | secondaryId = viewPlayerData.GetItemId(RoleEquipType.Weapon2);
|
| | | fashionSecondaryId = viewPlayerData.GetItemId(RoleEquipType.FashionWeapon2);
|
| | |
|
| | | data = new UI3DPlayerExhibitionData
|
| | | {
|
| | |
| | | m_LeaderMob.gameObject.SetActive(_hasLeaderData);
|
| | | if (_hasLeaderData)
|
| | | {
|
| | | int clothes = 0;
|
| | | int _suitEffect = 0;
|
| | | var _leaderData = model.kingFairyData.leaderData;
|
| | | RoleParticularModel.ItemData itemData;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.Clothes))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.Clothes];
|
| | | clothes = itemData.ItemID;
|
| | | _suitEffect = _leaderData.GetEquipSuitLevel();
|
| | | }
|
| | | int weapon = 0;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.Weapon))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.Weapon];
|
| | | weapon = itemData.ItemID;
|
| | | }
|
| | | int wing = 0;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.Wing))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.Wing];
|
| | | wing = itemData.ItemID;
|
| | | }
|
| | | int weapon2 = 0;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.Weapon2))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.Weapon2];
|
| | | weapon2 = itemData.ItemID;
|
| | | }
|
| | | int fashionClothes = 0;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.FashionClothes))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.FashionClothes];
|
| | | fashionClothes = itemData.ItemID;
|
| | | }
|
| | | int fashionWeapon = 0;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.FashionWeapon))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.FashionWeapon];
|
| | | fashionWeapon = itemData.ItemID;
|
| | | }
|
| | | int fashionWeapon2 = 0;
|
| | | if (_leaderData.roleEquipDataDic.ContainsKey(RoleEquipType.FashionWeapon2))
|
| | | {
|
| | | itemData = _leaderData.roleEquipDataDic[RoleEquipType.FashionWeapon2];
|
| | | fashionWeapon2 = itemData.ItemID;
|
| | | }
|
| | | int clothes = _leaderData.GetItemId(RoleEquipType.Clothes);
|
| | | int weapon = _leaderData.GetItemId(RoleEquipType.Weapon);
|
| | | int wing = _leaderData.GetItemId(RoleEquipType.Wing);
|
| | | int weapon2 = _leaderData.GetItemId(RoleEquipType.Weapon2);
|
| | | int fashionClothes = _leaderData.GetItemId(RoleEquipType.FashionClothes);
|
| | | int fashionWeapon = _leaderData.GetItemId(RoleEquipType.FashionWeapon);
|
| | | int fashionWeapon2 = _leaderData.GetItemId(RoleEquipType.FashionWeapon2);
|
| | |
|
| | | var data = new UI3DPlayerExhibitionData
|
| | | {
|
| | |
| | | public int level;
|
| | | } |
| | | |
| | | public struct OtherPlayerEquipInfo
|
| | | {
|
| | | public int job;
|
| | | public int itemId;
|
| | | public int score;
|
| | | public List<Int2> legendProperties;
|
| | | public List<int> suitPlaces;
|
| | | public Dictionary<EquipSuitType, int> suitLevels;
|
| | | public int strengthenLevel;
|
| | | public int starLevel;
|
| | | public List<Int2> trainProperties;
|
| | | public Dictionary<int, bool> gemHoleActiveStates; |
| | | public Dictionary<int, int> gems;
|
| | | } |
| | | |
| | | static PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } |
| | | static EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } |
| | | static EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } |
| | |
| | | } |
| | | }
|
| | |
|
| | | public static void ShowOtherPlayerEquip(OtherPlayerEquipInfo info)
|
| | | {
|
| | | secondaryData = null;
|
| | | mainTipData = CreateOtherPlayerEquipData(info);
|
| | | WindowCenter.Instance.Open<EquipTipWin>();
|
| | | }
|
| | |
|
| | | public static void ShowGatherSoul(PackType packType, int index)
|
| | | {
|
| | | if (packType == PackType.GatherSoul || packType == PackType.InterimPack)
|
| | |
| | | legendProperty = GetLegendProperty(itemId), |
| | | getWay = GetGetWay(itemId) |
| | | }; |
| | | } |
| | | |
| | | static TipData CreateOtherPlayerEquipData(OtherPlayerEquipInfo info)
|
| | | {
|
| | | var config = ItemConfig.Get(info.itemId);
|
| | | var baseInfo = new BaseInfo()
|
| | | {
|
| | | itemId = info.itemId,
|
| | | star = info.starLevel,
|
| | | strengthenLevel = info.strengthenLevel,
|
| | | score = info.score,
|
| | | isEquiped=true,
|
| | | };
|
| | |
|
| | | var baseProperty = GetBaseProperty(info.itemId);
|
| | | if (info.starLevel > 0)
|
| | | {
|
| | | var starProperties = new List<Int2>();
|
| | | baseProperty.star = info.starLevel;
|
| | | var starConfig = EquipStarConfig.Get(config.LV, config.EquipPlace, info.starLevel);
|
| | | starProperties.AddRange(starConfig.BaseAttrInfo);
|
| | | baseProperty.starProperties = starProperties;
|
| | | }
|
| | |
|
| | | var legendProperty = new LegendProperty()
|
| | | {
|
| | | properties = info.legendProperties,
|
| | | };
|
| | |
|
| | | var skillInfo = GetSkillInfo(info.itemId);
|
| | | |
| | | var job = config.JobLimit; |
| | | var twoConfigs = EquipSuitConfig.GetConfigs(job, config.LV, EquipSuitType.TwoSuit); |
| | | var name = twoConfigs[0].name; |
| | | var level = config.LV; |
| | | var maxSuitLevel = EquipStarModel.GetMaxStarLevel(level); |
| | | |
| | | var twoSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); |
| | | var fiveSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); |
| | | var eightSuits = new Dictionary<int, bool>(); |
| | | var eightSuitLevel = info.suitLevels[EquipSuitType.EightSuit]; |
| | | |
| | | for (var i = 0; i <= 9; i++, i++, i++)
|
| | | {
|
| | | var configs = EquipSuitConfig.GetConfigs(job, level, EquipSuitType.TwoSuit);
|
| | | var actived = info.suitLevels[EquipSuitType.TwoSuit] >= i;
|
| | | var properties = new List<Int2>();
|
| | | foreach (var item in configs)
|
| | | {
|
| | | if (item.star == i)
|
| | | {
|
| | | properties.AddRange(item.attr);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | twoSuitProperties[i] = new EquipSuitPropertyEntry()
|
| | | {
|
| | | type = EquipSuitType.TwoSuit,
|
| | | actived = actived,
|
| | | properties = properties,
|
| | | };
|
| | |
|
| | | configs = EquipSuitConfig.GetConfigs(job, level, EquipSuitType.FiveSuit);
|
| | | actived = info.suitLevels[EquipSuitType.FiveSuit] >= i;
|
| | | properties = new List<Int2>();
|
| | | foreach (var item in configs)
|
| | | {
|
| | | if (item.star == i)
|
| | | {
|
| | | properties.AddRange(item.attr);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | fiveSuitProperties[i] = new EquipSuitPropertyEntry()
|
| | | {
|
| | | type = EquipSuitType.TwoSuit,
|
| | | actived = actived,
|
| | | properties = properties,
|
| | | };
|
| | |
|
| | | eightSuits[i] = eightSuitLevel >= i;
|
| | | } |
| | | |
| | | var suitInfo = new SuitInfo() |
| | | { |
| | | name = name, |
| | | level = level, |
| | | job = job, |
| | | maxSuitLevel = maxSuitLevel, |
| | | places = info.suitPlaces, |
| | | twoSuitProperties = twoSuitProperties, |
| | | fiveSuitProperties = fiveSuitProperties, |
| | | eightSuits = eightSuits |
| | | };
|
| | |
|
| | | var starInfo = new StarInfo()
|
| | | {
|
| | | equipPosition = new Int2(config.LV, config.EquipPlace),
|
| | | starLevel = info.starLevel,
|
| | | maxLevel = EquipStarModel.GetMaxStarLevel(config.ItemColor, config.LV),
|
| | | };
|
| | |
|
| | | var type = EquipStrengthModel.GetEquipStrengthType(config.EquipPlace); |
| | | var strengthenConfig = ItemPlusConfig.GetTypeAndLevel(type, info.strengthenLevel); |
| | | var strengthenProperties = new List<Int2>(); |
| | | for (int i = 0; i < strengthenConfig.attType.Length; i++) |
| | | {
|
| | | strengthenProperties.Add(new Int2(strengthenConfig.attType[i], strengthenConfig.attValue[i])); |
| | | }
|
| | | var strengthenProperty = new StrengthenProperty()
|
| | | {
|
| | | strengthenLevel = info.strengthenLevel,
|
| | | properties = strengthenProperties
|
| | | };
|
| | |
|
| | | var gemInfo = new GemInfo()
|
| | | {
|
| | | activeStates = info.gemHoleActiveStates,
|
| | | gems = info.gems,
|
| | | };
|
| | |
|
| | | var trainProperty = new TrainProperty()
|
| | | {
|
| | | properties = info.trainProperties,
|
| | | };
|
| | |
|
| | | return new TipData() |
| | | { |
| | | itemId = info.itemId, |
| | | baseInfo = baseInfo, |
| | | baseProperty = baseProperty, |
| | | legendProperty = legendProperty, |
| | | skillInfo = skillInfo, |
| | | suitInfo = suitInfo, |
| | | starInfo = starInfo, |
| | | strengthenProperty = strengthenProperty, |
| | | gemInfo = gemInfo, |
| | | trainProperty = trainProperty, |
| | | };
|
| | | } |
| | | |
| | | static TipData CreateGoodEquipData(int itemId, int goodId) |
| | |
| | | |
| | | var isEquiped = equipModel.GetEquip(new Int2(level, place)) == guid; |
| | | |
| | | var type = strengthenModel.GetEquipStrengthType(place); |
| | | var type = EquipStrengthModel.GetEquipStrengthType(place); |
| | | var star = starModel.GetEquipStarLevel(new Int2(level, place)); |
| | | var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, level); |
| | | var maxStrengthenLevel = strengthenModel.GetEquipLevelMax(type, Mathf.Min(star, maxStar)); |
| | |
| | | var data = new StrengthenProperty(); |
| | | |
| | | var strengthenLevel = strengthenModel.GetStrengthLevel(level, place); |
| | | var type = strengthenModel.GetEquipStrengthType(place); |
| | | var type = EquipStrengthModel.GetEquipStrengthType(place); |
| | | var star = starModel.GetEquipStarLevel(new Int2(level, place)); |
| | | var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV); |
| | | var maxStrengthenLevel = strengthenModel.GetEquipLevelMax(type, Mathf.Min(star, maxStar)); |
| | |
| | | for (int i = 0; i < count; i++) |
| | | { |
| | | var property = data.properties[i]; |
| | | var config = PlayerPropertyConfig.Get(property.x); |
| | | |
| | | var name = config.Name; |
| | | var value = PlayerPropertyConfig.GetValueDescription(property.x, property.y); |
| | | lines[i] = string.Format("{0}:{1}", name, value); |
| | | lines[i] = PlayerPropertyConfig.GetFullDescription(property.x, property.y); |
| | | } |
| | | m_PropertyBehaviour.text = string.Join("\r\n", lines); |
| | | } |
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Friday, April 26, 2019 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class OtherPlayerEquipLevelBehaviour : ScrollItem |
| | | { |
| | | [SerializeField] Text m_Title; |
| | | [SerializeField] Image m_BackGround; |
| | | [SerializeField] Button m_Select; |
| | | |
| | | int level; |
| | | OtherPlayerEquipModel model { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } } |
| | | |
| | | public override void Display(object _data) |
| | | { |
| | | base.Display(_data); |
| | | this.level = (int)_data; |
| | | |
| | | var realm = EquipControlConfig.Get(this.level, 1).realm; |
| | | this.m_Title.text = RealmConfig.Get(realm).Name; |
| | | model.selectedLevelChangeEvent += OnSelected; |
| | | |
| | | m_Select.SetListener(Select); |
| | | } |
| | | |
| | | public override void Dispose() |
| | | { |
| | | model.selectedLevelChangeEvent -= OnSelected; |
| | | base.Dispose(); |
| | | } |
| | | |
| | | private void Select() |
| | | { |
| | | model.SelectLevel(this.level); |
| | | } |
| | | |
| | | private void OnSelected() |
| | | { |
| | | DisplayBackGround(model.selectedLevel == this.level); |
| | | } |
| | | |
| | | private void DisplayBackGround(bool selected) |
| | | { |
| | | m_BackGround.SetSprite(selected ? "ListBtn_Select" : "ListBtn_UnSelect"); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 808e6d8d919a2d64db44947530a864ed |
| | | timeCreated: 1556262320 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using System; |
| | | using LitJson; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class OtherPlayerEquipModel : Model |
| | | { |
| | | |
| | | int m_SelectedLevel = 0; |
| | | public int selectedLevel { |
| | | get { |
| | | return m_SelectedLevel; |
| | | } |
| | | private set { |
| | | if (this.m_SelectedLevel != value) |
| | | { |
| | | m_SelectedLevel = value; |
| | | if (selectedLevelChangeEvent != null) |
| | | { |
| | | selectedLevelChangeEvent(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public int playerId { get; private set; } |
| | | public int playerJob { get; private set; } |
| | | public int playerRealm { get; private set; } |
| | | public int playerVipLevel { get; private set; } |
| | | public int wing { get; private set; } |
| | | |
| | | public event Action selectedLevelChangeEvent; |
| | | Dictionary<int, EquipDetailsGroup> equipDetailsGroups = new Dictionary<int, EquipDetailsGroup>(); |
| | | |
| | | RoleParticularModel roleParticularModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } } |
| | | |
| | | public override void Init() |
| | | { |
| | | |
| | | } |
| | | |
| | | public override void UnInit() |
| | | { |
| | | } |
| | | |
| | | public void ViewPlayerEquip(PlayerBriefInfo info) |
| | | { |
| | | this.playerId = info.id; |
| | | this.playerJob = info.job; |
| | | this.playerRealm = info.realm; |
| | | this.playerVipLevel = info.vipLevel; |
| | | this.wing = info.wing; |
| | | |
| | | SelectLevel(1); |
| | | WindowCenter.Instance.Open<OtherPlayerEquipWin>(); |
| | | } |
| | | |
| | | public void SelectLevel(int level) |
| | | { |
| | | if (equipDetailsGroups.ContainsKey(level)) |
| | | { |
| | | selectedLevel = level; |
| | | } |
| | | else |
| | | { |
| | | switch (roleParticularModel.viewPlayerType) |
| | | { |
| | | case 4: |
| | | case 7: |
| | | { |
| | | var sendInfo = new CC002_tagCGViewCrossPlayerInfo(); |
| | | sendInfo.PlayerID = (uint)roleParticularModel.viewPlayer; |
| | | GameNetSystem.Instance.SendInfo(sendInfo); |
| | | } |
| | | break; |
| | | case 5: |
| | | case 6: |
| | | { |
| | | var sendInfo = new CA212_tagCMViewPlayerInfo(); |
| | | sendInfo.PlayerID = (uint)roleParticularModel.viewPlayer; |
| | | sendInfo.EquipClassLV = (byte)level; |
| | | GameNetSystem.Instance.SendToCrossServer(sendInfo); |
| | | } |
| | | break; |
| | | default: |
| | | { |
| | | var sendInfo = new CA212_tagCMViewPlayerInfo(); |
| | | sendInfo.PlayerID = (uint)roleParticularModel.viewPlayer; |
| | | sendInfo.EquipClassLV = (byte)level; |
| | | GameNetSystem.Instance.SendInfo(sendInfo); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void OnGetEquipDetails(HA719_tagSCPlayerEquipCacheResult info) |
| | | { |
| | | equipDetailsGroups[info.EquipClassLV] = new EquipDetailsGroup(playerJob, info.EquipClassLV, info.ItemData); |
| | | selectedLevel = info.EquipClassLV; |
| | | } |
| | | |
| | | public Dictionary<int, EquipBrief> GetEquipBriefs() |
| | | { |
| | | if (equipDetailsGroups.ContainsKey(selectedLevel)) |
| | | { |
| | | var equipDetailsGroup = equipDetailsGroups[selectedLevel]; |
| | | var equipBriefs = new Dictionary<int, EquipBrief>(); |
| | | foreach (var details in equipDetailsGroup.equips.Values) |
| | | { |
| | | var config = ItemConfig.Get(details.itemId); |
| | | equipBriefs[config.EquipPlace] = new EquipBrief() |
| | | { |
| | | itemId = details.itemId, |
| | | star = details.star, |
| | | }; |
| | | } |
| | | |
| | | return equipBriefs; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public int GetFightPoint() |
| | | { |
| | | if (equipDetailsGroups.ContainsKey(selectedLevel)) |
| | | { |
| | | return equipDetailsGroups[selectedLevel].fightPoint; |
| | | } |
| | | else |
| | | { |
| | | return 0; |
| | | } |
| | | } |
| | | |
| | | public EquipAppearance GetEquipAppearance() |
| | | { |
| | | if (equipDetailsGroups.ContainsKey(selectedLevel)) |
| | | { |
| | | var equipDetailsGroup = equipDetailsGroups[selectedLevel]; |
| | | var equips = equipDetailsGroup.equips; |
| | | var suitLevels = equipDetailsGroup.GetSuitLevels(); |
| | | var appearance = new EquipAppearance() |
| | | { |
| | | job = playerJob, |
| | | clothes = equips.ContainsKey((int)RoleEquipType.Clothes) ? equips[(int)RoleEquipType.Clothes].itemId : 0, |
| | | weapon = equips.ContainsKey((int)RoleEquipType.Weapon) ? equips[(int)RoleEquipType.Weapon].itemId : 0, |
| | | secondary = equips.ContainsKey((int)RoleEquipType.Weapon2) ? equips[(int)RoleEquipType.Weapon2].itemId : 0, |
| | | wings = wing, |
| | | isSuit = suitLevels.ContainsKey(EquipSuitType.EightSuit) && suitLevels[EquipSuitType.EightSuit] > 0, |
| | | }; |
| | | |
| | | return appearance; |
| | | } |
| | | else |
| | | { |
| | | return default(EquipAppearance); |
| | | } |
| | | } |
| | | |
| | | public ItemTipUtility.OtherPlayerEquipInfo GetEquipInfo(int level, int place) |
| | | { |
| | | if (!equipDetailsGroups.ContainsKey(level)) |
| | | { |
| | | return default(ItemTipUtility.OtherPlayerEquipInfo); |
| | | } |
| | | |
| | | if (!equipDetailsGroups[level].equips.ContainsKey(place)) |
| | | { |
| | | return default(ItemTipUtility.OtherPlayerEquipInfo); |
| | | } |
| | | |
| | | var details = equipDetailsGroups[level].equips[place]; |
| | | |
| | | var equipInfo = new ItemTipUtility.OtherPlayerEquipInfo(); |
| | | equipInfo.job = playerJob; |
| | | equipInfo.itemId = details.itemId; |
| | | |
| | | equipInfo.score = details.score; |
| | | equipInfo.legendProperties = details.legendProperties; |
| | | equipInfo.suitPlaces = equipDetailsGroups[level].GetSuitPlaces(); |
| | | equipInfo.suitLevels = equipDetailsGroups[level].GetSuitLevels(); |
| | | equipInfo.strengthenLevel = details.strengthenLevel; |
| | | equipInfo.starLevel = details.star; |
| | | |
| | | equipInfo.trainProperties = details.trainProperties; |
| | | |
| | | var gemHoleActiveStates = new Dictionary<int, bool>(); |
| | | gemHoleActiveStates[0] = true; |
| | | gemHoleActiveStates[1] = details.star >= 2; |
| | | gemHoleActiveStates[2] = details.star >= 5; |
| | | gemHoleActiveStates[3] = playerVipLevel >= 6; |
| | | |
| | | equipInfo.gemHoleActiveStates = gemHoleActiveStates; |
| | | equipInfo.gems = new Dictionary<int, int>(); |
| | | for (var i = 0; i < details.stones.Count; i++) |
| | | { |
| | | equipInfo.gems[i] = details.stones[i]; |
| | | } |
| | | |
| | | return equipInfo; |
| | | } |
| | | |
| | | public SuitInfo GetSuitInfo() |
| | | { |
| | | if (!equipDetailsGroups.ContainsKey(selectedLevel)) |
| | | { |
| | | return default(SuitInfo); |
| | | } |
| | | |
| | | var suitInfo = new SuitInfo(); |
| | | suitInfo.job = playerJob; |
| | | suitInfo.level = selectedLevel; |
| | | suitInfo.collectedPlaces = equipDetailsGroups[selectedLevel].GetSuitPlaces(); |
| | | suitInfo.suitLevels = equipDetailsGroups[selectedLevel].GetSuitLevels(); |
| | | |
| | | return suitInfo; |
| | | } |
| | | |
| | | public void Clear() |
| | | { |
| | | selectedLevel = 0; |
| | | equipDetailsGroups.Clear(); |
| | | } |
| | | |
| | | public struct EquipBrief |
| | | { |
| | | public int itemId; |
| | | public int star; |
| | | } |
| | | |
| | | public class EquipDetails |
| | | { |
| | | public int itemId; |
| | | public int score; |
| | | public int star; |
| | | public int strengthenLevel; |
| | | public int evolveLevel; |
| | | public List<int> stones = new List<int>(); |
| | | public int trainLevel; |
| | | public List<Int2> trainProperties = new List<Int2>(); |
| | | public List<Int2> legendProperties = new List<Int2>(); |
| | | |
| | | public EquipDetails(JsonData serverInfo) |
| | | { |
| | | itemId = (int)serverInfo["ItemID"]; |
| | | star = serverInfo.Keys.Contains("Star") ? (int)serverInfo["Star"] : 0; |
| | | strengthenLevel = serverInfo.Keys.Contains("PlusLV") ? (int)serverInfo["PlusLV"] : 0; |
| | | evolveLevel = serverInfo.Keys.Contains("EvolveLV") ? (int)serverInfo["EvolveLV"] : 0; |
| | | |
| | | if (serverInfo.Keys.Contains("Stone")) |
| | | { |
| | | var stoneJson = serverInfo["Stone"]; |
| | | for (int i = 0; i < stoneJson.Count; i++) |
| | | { |
| | | stones.Add((int)stoneJson[i]); |
| | | } |
| | | } |
| | | |
| | | if (serverInfo.Keys.Contains("Wash")) |
| | | { |
| | | var washJson = serverInfo["Wash"]; |
| | | trainLevel = (int)washJson["LV"]; |
| | | |
| | | var washValueJson = washJson["Value"]; |
| | | var config = ItemConfig.Get(itemId); |
| | | var trainType = EquipTrainModel.GetTrainType(config.EquipPlace); |
| | | var trainData = EquipWashConfig.Get(trainType, trainLevel); |
| | | |
| | | trainProperties.Add(new Int2(trainData.config.attType1, (int)washValueJson[0])); |
| | | trainProperties.Add(new Int2(trainData.config.attType2, (int)washValueJson[1])); |
| | | trainProperties.Add(new Int2(trainData.config.attType3, (int)washValueJson[2])); |
| | | } |
| | | else |
| | | { |
| | | var config = ItemConfig.Get(itemId); |
| | | var trainType = EquipTrainModel.GetTrainType(config.EquipPlace); |
| | | var trainData = EquipWashConfig.Get(trainType, 1); |
| | | |
| | | trainProperties.Add(new Int2(trainData.config.attType1, 0)); |
| | | trainProperties.Add(new Int2(trainData.config.attType2, 0)); |
| | | trainProperties.Add(new Int2(trainData.config.attType3, 0)); |
| | | } |
| | | |
| | | Dictionary<int, List<int>> userData = null; |
| | | if (serverInfo.Keys.Contains("UserData")) |
| | | { |
| | | userData = ConfigParse.Analysis(serverInfo["UserData"].ToString()); |
| | | if (userData.ContainsKey(17) && userData.ContainsKey(19)) |
| | | { |
| | | var count = Mathf.Min(userData[17].Count, userData[19].Count); |
| | | for (int i = 0; i < count; i++) |
| | | { |
| | | legendProperties.Add(new Int2(userData[17][i], userData[19][i])); |
| | | } |
| | | } |
| | | } |
| | | |
| | | var legendIds = new List<int>(); |
| | | var legendValues = new List<int>(); |
| | | foreach (var property in legendProperties) |
| | | { |
| | | legendIds.Add(property.x); |
| | | legendValues.Add(property.y); |
| | | } |
| | | |
| | | this.score = ItemLogicUtility.Instance.GetEquipScore(PackType.Item, itemId, userData); |
| | | } |
| | | |
| | | } |
| | | |
| | | public class EquipDetailsGroup |
| | | { |
| | | public readonly int job; |
| | | public readonly int level = 0; |
| | | public readonly int fightPoint = 0; |
| | | public Dictionary<int, EquipDetails> equips = new Dictionary<int, EquipDetails>(); |
| | | |
| | | public EquipDetailsGroup(int job, int level, string equipInfo) |
| | | { |
| | | this.job = job; |
| | | this.level = level; |
| | | var json = JsonMapper.ToObject(equipInfo); |
| | | foreach (var key in json.Keys) |
| | | { |
| | | var serverPlace = 0; |
| | | int.TryParse(key, out serverPlace); |
| | | if (serverPlace == 0) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | var equipPosition = EquipSet.ServerPlaceToClientPlace(serverPlace); |
| | | equips[equipPosition.y] = new EquipDetails(json[key]); |
| | | } |
| | | |
| | | var equipInfos = new List<EquipFightPower.EquipInfo>(); |
| | | foreach (var equip in equips.Values) |
| | | { |
| | | equipInfos.Add(new EquipFightPower.EquipInfo() |
| | | { |
| | | itemId = equip.itemId, |
| | | score = equip.score, |
| | | strengthenLevel = equip.strengthenLevel, |
| | | starLevel = equip.star, |
| | | stones = equip.stones, |
| | | trainProperties = equip.trainProperties, |
| | | }); |
| | | } |
| | | |
| | | fightPoint = EquipFightPower.Instance.CalculatePower(this.job, this.level, equipInfos); |
| | | } |
| | | |
| | | public List<int> GetSuitPlaces() |
| | | { |
| | | var places = new List<int>(); |
| | | foreach (var item in equips) |
| | | { |
| | | if (ItemLogicUtility.Instance.IsSuitEquip(item.Value.itemId)) |
| | | { |
| | | places.Add(item.Key); |
| | | } |
| | | } |
| | | |
| | | return places; |
| | | } |
| | | |
| | | public Dictionary<EquipSuitType, int> GetSuitLevels() |
| | | { |
| | | var stars = new List<int>(); |
| | | foreach (var item in equips) |
| | | { |
| | | if (item.Key > 8) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | var star = item.Value.star; |
| | | stars.Add(star); |
| | | } |
| | | |
| | | stars.Sort((int x, int y) => { return x.CompareTo(y); }); |
| | | |
| | | var twoSuitLevel = stars.Count > 1 ? stars[1] : -1; |
| | | var fiveSuitLevel = stars.Count > 4 ? stars[4] : -1; |
| | | var eightSuitLevel = stars.Count > 7 ? stars[7] : -1; |
| | | |
| | | return new Dictionary<EquipSuitType, int>() { |
| | | { EquipSuitType.TwoSuit, twoSuitLevel }, |
| | | { EquipSuitType.FiveSuit, fiveSuitLevel}, |
| | | {EquipSuitType.EightSuit, eightSuitLevel }, |
| | | }; |
| | | } |
| | | |
| | | } |
| | | |
| | | public struct PlayerBriefInfo |
| | | { |
| | | public int id; |
| | | public int job; |
| | | public int realm; |
| | | public int vipLevel; |
| | | public int wing; |
| | | } |
| | | |
| | | public struct SuitInfo |
| | | { |
| | | public int level; |
| | | public int job; |
| | | public List<int> collectedPlaces; |
| | | public Dictionary<EquipSuitType, int> suitLevels; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: d6dcf0874b3151d47a57443733c657f2 |
| | | timeCreated: 1556258269 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Friday, April 26, 2019 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class OtherPlayerEquipSlotBehaviour : MonoBehaviour |
| | | { |
| | | [SerializeField] Button m_ViewDetials; |
| | | [SerializeField] Text m_SlotName; |
| | | [SerializeField] Image m_Icon; |
| | | [SerializeField] Image m_IconFrame; |
| | | [SerializeField] Text m_Star; |
| | | |
| | | OtherPlayerEquipModel model { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } } |
| | | |
| | | int place; |
| | | int itemId; |
| | | int star; |
| | | |
| | | public void Display(int place, int itemId, int star) |
| | | { |
| | | this.place = place; |
| | | this.itemId = itemId; |
| | | this.star = star; |
| | | |
| | | DisplayBaseInfo(); |
| | | } |
| | | |
| | | public void Dispose() |
| | | { |
| | | } |
| | | |
| | | private void DisplayBaseInfo() |
| | | { |
| | | m_SlotName.text = UIHelper.GetEquipPlaceName(place); |
| | | var hasEquip = this.itemId != 0; |
| | | m_SlotName.gameObject.SetActive(!hasEquip); |
| | | |
| | | if (hasEquip) |
| | | { |
| | | var config = ItemConfig.Get(this.itemId); |
| | | m_Icon.SetSprite(config.IconKey); |
| | | m_IconFrame.SetItemBackGround(config.ItemColor); |
| | | |
| | | m_Star.gameObject.SetActive(true); |
| | | m_Star.text = this.star >= 1 ? string.Format("{0}星", this.star) : ""; |
| | | } |
| | | else |
| | | { |
| | | m_Star.gameObject.SetActive(false); |
| | | m_Icon.SetSprite(GetDefaultEquipIcon(place)); |
| | | m_IconFrame.SetSprite("ItemNormal_a"); |
| | | } |
| | | } |
| | | |
| | | private string GetDefaultEquipIcon(int place) |
| | | { |
| | | return StringUtility.Contact("EquipDefaultIcon_", place); |
| | | } |
| | | |
| | | private void Start() |
| | | { |
| | | m_ViewDetials.SetListener(ViewEquipDetails); |
| | | } |
| | | |
| | | private void ViewEquipDetails() |
| | | { |
| | | ItemTipUtility.ShowOtherPlayerEquip(model.GetEquipInfo(model.selectedLevel, this.place)); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 720ecb8d6acc65f4b98869a9bada1c01 |
| | | timeCreated: 1556249011 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Friday, April 26, 2019 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class OtherPlayerEquipWin : Window |
| | | { |
| | | [SerializeField] RectTransform m_Content; |
| | | [SerializeField] Button m_Close; |
| | | [SerializeField] CyclicScroll m_EquipLevelScroll; |
| | | [SerializeField] EquipSlots m_EquipSlots; |
| | | [SerializeField] Text m_FightPoint; |
| | | [SerializeField] RawImage m_Role; |
| | | [SerializeField] OtherPlayerSuitWidget m_WidgetSuit; |
| | | |
| | | OtherPlayerEquipModel model { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } } |
| | | EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } |
| | | |
| | | bool resetRoleRotation = false; |
| | | #region Built-in |
| | | protected override void BindController() |
| | | { |
| | | } |
| | | |
| | | protected override void AddListeners() |
| | | { |
| | | m_Close.SetListener(() => { WindowCenter.Instance.Close<OtherPlayerEquipWin>(); }); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | resetRoleRotation = true; |
| | | m_Content.gameObject.SetActive(false); |
| | | model.selectedLevelChangeEvent += OnSelectedLevelChange; |
| | | } |
| | | |
| | | protected override void OnAfterOpen() |
| | | { |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | model.selectedLevelChangeEvent -= OnSelectedLevelChange; |
| | | } |
| | | |
| | | protected override void OnAfterClose() |
| | | { |
| | | } |
| | | |
| | | protected override void OnActived() |
| | | { |
| | | base.OnActived(); |
| | | DisplayEquipLevels(); |
| | | if (model.selectedLevel != 0) |
| | | { |
| | | m_Content.gameObject.SetActive(true); |
| | | DisplayEquips(); |
| | | DisplayFightPoint(); |
| | | DisplayAppearance(); |
| | | DisplaySuitInfo(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | private void OnSelectedLevelChange() |
| | | { |
| | | m_Content.gameObject.SetActive(true); |
| | | DisplayEquips(); |
| | | DisplayFightPoint(); |
| | | DisplayAppearance(); |
| | | DisplaySuitInfo(); |
| | | } |
| | | |
| | | private void DisplayEquipLevels() |
| | | { |
| | | var realm = model.playerRealm; |
| | | var levels = new List<int>(); |
| | | var allLevels = equipModel.GetAllEquipSets(); |
| | | |
| | | foreach (var level in allLevels) |
| | | { |
| | | var config = EquipControlConfig.Get(level, 1); |
| | | if (realm >= config.realm) |
| | | { |
| | | levels.Add(level); |
| | | } |
| | | } |
| | | |
| | | m_EquipLevelScroll.Init(levels); |
| | | } |
| | | |
| | | private void DisplayEquips() |
| | | { |
| | | var equipDetails = model.GetEquipBriefs(); |
| | | for (int i = 1; i <= 12; i++) |
| | | { |
| | | var itemId = equipDetails.ContainsKey(i) ? equipDetails[i].itemId : 0; |
| | | var star = equipDetails.ContainsKey(i) ? equipDetails[i].star : 0; |
| | | m_EquipSlots[i].Display(i, itemId, star); |
| | | } |
| | | } |
| | | |
| | | private void DisplayFightPoint() |
| | | { |
| | | m_FightPoint.text = model.GetFightPoint().ToString(); |
| | | } |
| | | |
| | | private void DisplayAppearance() |
| | | { |
| | | var appearance = model.GetEquipAppearance(); |
| | | UI3DModelExhibition.Instance.ShowPlayer(m_Role, new UI3DPlayerExhibitionData() |
| | | { |
| | | job = appearance.job, |
| | | clothesId = appearance.clothes, |
| | | weaponId = appearance.weapon, |
| | | secondaryId = appearance.secondary, |
| | | keepRotation = resetRoleRotation, |
| | | }); |
| | | |
| | | resetRoleRotation = false; |
| | | } |
| | | |
| | | private void DisplaySuitInfo() |
| | | { |
| | | m_WidgetSuit.Display(model.GetSuitInfo()); |
| | | } |
| | | |
| | | [System.Serializable] |
| | | public class EquipSlots |
| | | { |
| | | public OtherPlayerEquipSlotBehaviour weapon; |
| | | public OtherPlayerEquipSlotBehaviour secondary; |
| | | public OtherPlayerEquipSlotBehaviour hat; |
| | | public OtherPlayerEquipSlotBehaviour clothes; |
| | | public OtherPlayerEquipSlotBehaviour belt; |
| | | public OtherPlayerEquipSlotBehaviour trousers; |
| | | public OtherPlayerEquipSlotBehaviour shoes; |
| | | public OtherPlayerEquipSlotBehaviour glove; |
| | | public OtherPlayerEquipSlotBehaviour neck; |
| | | public OtherPlayerEquipSlotBehaviour fairy1; |
| | | public OtherPlayerEquipSlotBehaviour fairy2; |
| | | public OtherPlayerEquipSlotBehaviour jade; |
| | | |
| | | public OtherPlayerEquipSlotBehaviour this[int place] { |
| | | get { |
| | | switch ((RoleEquipType)place) |
| | | { |
| | | case RoleEquipType.Weapon: |
| | | return weapon; |
| | | case RoleEquipType.Weapon2: |
| | | return secondary; |
| | | case RoleEquipType.Hat: |
| | | return hat; |
| | | case RoleEquipType.Clothes: |
| | | return clothes; |
| | | case RoleEquipType.Belt: |
| | | return belt; |
| | | case RoleEquipType.Trousers: |
| | | return trousers; |
| | | case RoleEquipType.Shoes: |
| | | return shoes; |
| | | case RoleEquipType.Glove: |
| | | return glove; |
| | | case RoleEquipType.Neck: |
| | | return neck; |
| | | case RoleEquipType.FairyCan1: |
| | | return fairy1; |
| | | case RoleEquipType.FairyCan2: |
| | | return fairy2; |
| | | case RoleEquipType.Jade: |
| | | return jade; |
| | | default: |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: c98313b28f1d52c438270c585b823c88 |
| | | timeCreated: 1556248770 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Friday, April 26, 2019 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine.UI; |
| | | using System; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | public class OtherPlayerSuitWidget : MonoBehaviour |
| | | { |
| | | [SerializeField] Text m_SuitName; |
| | | [SerializeField] StarToggle[] m_StarToggles; |
| | | [SerializeField] Text[] m_SuitEquipNames; |
| | | |
| | | [SerializeField] EquipSuitPropertyBar m_TwoSuit; |
| | | [SerializeField] EquipSuitPropertyBar m_FiveSuit; |
| | | [SerializeField] Text m_EightSuitTitle; |
| | | [SerializeField] Text m_EightSuitDescription; |
| | | |
| | | List<int> collectedPlaces; |
| | | int level; |
| | | int job; |
| | | int twoSuitLevel; |
| | | int fiveSuitLevel; |
| | | int eightSuitLevel; |
| | | |
| | | public void Display(OtherPlayerEquipModel.SuitInfo suitInfo) |
| | | { |
| | | collectedPlaces = suitInfo.collectedPlaces; |
| | | level = suitInfo.level; |
| | | job = suitInfo.job; |
| | | twoSuitLevel = suitInfo.suitLevels[EquipSuitType.TwoSuit]; |
| | | fiveSuitLevel = suitInfo.suitLevels[EquipSuitType.FiveSuit]; |
| | | eightSuitLevel = suitInfo.suitLevels[EquipSuitType.EightSuit]; |
| | | |
| | | m_SuitName.text = EquipSuitConfig.GetConfigs(job, level, EquipSuitType.TwoSuit)[0].name; |
| | | var maxLevel = EquipStarModel.GetMaxStarLevel(level); |
| | | m_StarToggles[3].SetActive(maxLevel >= 9); |
| | | m_StarToggles[2].SetActive(maxLevel >= 6); |
| | | m_StarToggles[1].SetActive(maxLevel >= 3); |
| | | m_StarToggles[0].SetActive(true); |
| | | |
| | | m_StarToggles[3].AddListener(() => { DisplayProperty(9); }); |
| | | m_StarToggles[2].AddListener(() => { DisplayProperty(6); }); |
| | | m_StarToggles[1].AddListener(() => { DisplayProperty(3); }); |
| | | m_StarToggles[0].AddListener(() => { DisplayProperty(0); }); |
| | | |
| | | m_StarToggles[0].Select(); |
| | | |
| | | for (int i = 1; i <= 8; i++) |
| | | { |
| | | var hasSuit = collectedPlaces.Contains(i); |
| | | m_SuitEquipNames[i - 1].color = UIHelper.GetUIColor(hasSuit ? TextColType.Green : TextColType.White, true); |
| | | m_SuitEquipNames[i - 1].text = UIHelper.GetEquipPlaceName(i); |
| | | } |
| | | } |
| | | |
| | | void DisplayProperty(int star) |
| | | { |
| | | var twoConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.TwoSuit); |
| | | var fiveConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.FiveSuit); |
| | | var eightConfigs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit); |
| | | |
| | | var config = twoConfigs.Find(x => { return x.star == star; }); |
| | | var properties = new List<Int2>(); |
| | | var twoSuit = new EquipSuitPropertyEntry() |
| | | { |
| | | type = EquipSuitType.TwoSuit, |
| | | actived = twoSuitLevel >= star, |
| | | properties = new List<Int2>(config.attr), |
| | | }; |
| | | |
| | | config = fiveConfigs.Find(x => { return x.star == star; }); |
| | | properties = new List<Int2>(); |
| | | var fiveSuit = new EquipSuitPropertyEntry() |
| | | { |
| | | type = EquipSuitType.FiveSuit, |
| | | actived = fiveSuitLevel >= star, |
| | | properties = new List<Int2>(config.attr), |
| | | }; |
| | | |
| | | config = eightConfigs.Find(x => { return x.star == star; }); |
| | | |
| | | m_TwoSuit.Display(twoSuit); |
| | | m_FiveSuit.Display(fiveSuit); |
| | | m_EightSuitDescription.text = GetEightSuitDescription(config.id); |
| | | var color = UIHelper.GetUIColor(eightSuitLevel >= star ? TextColType.Green : TextColType.White, true); |
| | | m_EightSuitTitle.color = color; |
| | | m_EightSuitDescription.color = color; |
| | | } |
| | | |
| | | public void Dispose() |
| | | { |
| | | |
| | | } |
| | | |
| | | private string GetEightSuitDescription(int suitId) |
| | | { |
| | | var config = EquipSuitConfig.Get(suitId); |
| | | if (config.skillID > 0) |
| | | { |
| | | return config.description; |
| | | } |
| | | else |
| | | { |
| | | return PlayerPropertyConfig.GetFullDescription(config.attr[0]); |
| | | } |
| | | } |
| | | |
| | | [System.Serializable] |
| | | public class StarToggle |
| | | { |
| | | public int star; |
| | | public Text title; |
| | | public Toggle toggle; |
| | | |
| | | Action onSelect; |
| | | |
| | | public void SetActive(bool active) |
| | | { |
| | | title.gameObject.SetActive(active); |
| | | toggle.interactable = active; |
| | | if (active) |
| | | { |
| | | toggle.SetListener(OnValueChange); |
| | | } |
| | | else |
| | | { |
| | | toggle.RemoveAllListeners(); |
| | | } |
| | | } |
| | | |
| | | public void Select() |
| | | { |
| | | toggle.isOn = true; |
| | | } |
| | | |
| | | public void AddListener(Action callBack) |
| | | { |
| | | onSelect = callBack; |
| | | } |
| | | |
| | | private void OnValueChange(bool value) |
| | | { |
| | | if (value) |
| | | { |
| | | if (onSelect != null) |
| | | { |
| | | onSelect(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 68b60f9b9f16c934f8e82ad5adef028f |
| | | timeCreated: 1556249026 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | private Dictionary<int, ViewPlayerData> viewPlayerDataDic = new Dictionary<int, ViewPlayerData>();
|
| | | private Dictionary<int, ulong> funcFightPowerDict = new Dictionary<int, ulong>();
|
| | | public event Action PowerUpdate;
|
| | | public ItemData GetItemData(RoleEquipType type)
|
| | | {
|
| | | if (viewPlayerDataDic.ContainsKey(viewPlayer))
|
| | | {
|
| | | if (viewPlayerDataDic[viewPlayer].roleEquipDataDic.ContainsKey(type))
|
| | | return viewPlayerDataDic[viewPlayer].roleEquipDataDic[type];
|
| | | }
|
| | | return null;
|
| | | }
|
| | |
|
| | | public ViewPlayerData GetViewPlayerData(int player)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | viewPlayerData.getTime = DateTime.Now;
|
| | | viewPlayerData.roleEquipDataDic.Clear();
|
| | | viewPlayerData.itemDatas = JsonMapper.ToObject<ItemData[]>(package.ItemData);
|
| | | viewPlayerData.rolePropData = JsonMapper.ToObject<RolePropData>(package.PropData);
|
| | |
|
| | | viewPlayerData.rolePlusData = new RolePlusData();
|
| | | viewPlayerData.rolePlusData.AnalysisRolePlusData(package.PlusData);
|
| | | if (viewPlayerData.itemDatas != null)
|
| | | {
|
| | | for (int i = 0; i < viewPlayerData.itemDatas.Length; i++)
|
| | | {
|
| | | viewPlayerData.itemDatas[i].AnalysisUserData();
|
| | | viewPlayerData.roleEquipDataDic[(RoleEquipType)viewPlayerData.itemDatas[i].ItemIndex] = viewPlayerData.itemDatas[i];
|
| | | }
|
| | | }
|
| | | viewPlayerData.AnalysisEquipSuit();
|
| | |
|
| | | ShowRoleParticulars(viewPlayerData);
|
| | | }
|
| | |
|
| | |
| | | public RolePropData rolePropData;
|
| | | public RolePlusData rolePlusData;
|
| | |
|
| | | public Dictionary<RoleEquipType, ItemData> roleEquipDataDic = new Dictionary<RoleEquipType, ItemData>();
|
| | |
|
| | | public DateTime getTime;
|
| | |
|
| | | public void AnalysisEquipSuit()
|
| | | {
|
| | | }
|
| | |
|
| | | public int GetEquipSuitLevel()
|
| | | {
|
| | | return 0;
|
| | | }
|
| | |
|
| | | public int GetItemId(RoleEquipType type)
|
| | | {
|
| | | if (rolePropData.EquipShowID != null)
|
| | | {
|
| | | foreach (var id in rolePropData.EquipShowID)
|
| | | {
|
| | | var itemConfig = ItemConfig.Get(id);
|
| | | if (itemConfig != null && itemConfig.EquipPlace == (int)type)
|
| | | {
|
| | | return id;
|
| | | }
|
| | | }
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | [Serializable]
|
| | | public struct RolePropData
|
| | | {
|
| | |
| | | public ulong FightPower;
|
| | | public uint EquipShowSwitch;
|
| | | public int ServerGroupID;
|
| | | public int VIPLV;
|
| | | public int[] EquipShowID;
|
| | | }
|
| | |
|
| | | public class RolePlusData
|
| | |
| | |
|
| | | public class RoleParticularsWin : Window
|
| | | {
|
| | | [SerializeField] List<RoleEquip> roleEquipList = new List<RoleEquip>();
|
| | | [SerializeField] Button addFriendBtn;
|
| | | [SerializeField] Button m_AddFriend;
|
| | | [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;
|
| | | [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<RoleParticularModel>(); } }
|
| | | FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel<FriendsModel>(); } }
|
| | | OtherPlayerEquipModel otherPlayerEquipModel { get { return ModelCenter.Instance.GetModel<OtherPlayerEquipModel>(); } }
|
| | |
|
| | |
|
| | | #region Built-in
|
| | |
| | |
|
| | | 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.button.onClick.AddListener(() =>
|
| | | {
|
| | | OnRoleEquipClick(roleEquipType);
|
| | | });
|
| | | }
|
| | |
|
| | | m_AddFriend.onClick.AddListener(OnAddFriend);
|
| | | m_Close.onClick.AddListener(CloseClick);
|
| | | 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, false, PackType.Deleted,
|
| | | // "", itemData.useDataDict);
|
| | | // attrData.SetStrengthData(viewPlayerData.rolePlusData.GetEquipStarLv((int)type),1);
|
| | | // attrData.SetGemModel(viewPlayerData.rolePlusData.GetEquipStone((int)type));
|
| | | // itemTipsModel.SetItemTipsModel(attrData);
|
| | |
|
| | | ItemTipUtility.Show(itemData.ItemID);
|
| | | }
|
| | | m_ViewRealmEquip.AddListener(ViewRealmEquip);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | |
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | otherPlayerEquipModel.Clear();
|
| | | WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterCloseEvent;
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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()
|
| | | {
|
| | | 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,
|
| | | "", PackType.Equip, false, itemData.useDataDict);
|
| | | itemCell.Init(cellModel);
|
| | | }
|
| | |
|
| | | var viewPlayerData = model.GetViewPlayerData(model.viewPlayer);
|
| | | addFriendBtn.gameObject.SetActive(!viewPlayerData.IsCrossServerPlayer()
|
| | | m_AddFriend.gameObject.SetActive(!viewPlayerData.IsCrossServerPlayer()
|
| | | && friendsModel.GetFirendInfo((uint)model.viewPlayer, (byte)GroupType.Friend) == null);
|
| | |
|
| | | if (viewPlayerData != null)
|
| | |
| | |
|
| | | if (viewPlayerData.rolePropData.FamilyID == 0)
|
| | | {
|
| | | fairyName.gameObject.SetActive(false);
|
| | | m_FairyName.gameObject.SetActive(false);
|
| | | }
|
| | | else
|
| | | {
|
| | | fairyName.gameObject.SetActive(true);
|
| | | fairyName.text = StringUtility.Contact(Language.Get("RoleParticularWin_1"), viewPlayerData.rolePropData.FamilyName);
|
| | | m_FairyName.gameObject.SetActive(true);
|
| | | m_FairyName.text = StringUtility.Contact(Language.Get("RoleParticularWin_1"),
|
| | | viewPlayerData.rolePropData.FamilyName);
|
| | | }
|
| | | var realmLv = viewPlayerData.rolePropData.RealmLV;
|
| | | realmImg.gameObject.SetActive(realmLv > 0);
|
| | | m_RealmIcon.gameObject.SetActive(realmLv > 0);
|
| | | if (realmLv > 0)
|
| | | {
|
| | | RealmConfig _tagRealmModel = RealmConfig.Get(realmLv);
|
| | | if (_tagRealmModel != null)
|
| | | RealmConfig realmConfig = RealmConfig.Get(realmLv);
|
| | | if (realmConfig != null)
|
| | | {
|
| | | realmImg.SetSprite(_tagRealmModel.Img);
|
| | | m_RealmIcon.SetSprite(realmConfig.Img);
|
| | | }
|
| | | }
|
| | | playerTxt.text = StringUtility.Contact(viewPlayerData.rolePropData.Name, "Lv. ", viewPlayerData.rolePropData.LV);
|
| | | fightPowerTxt.text = StringUtility.Contact(Language.Get("RoleParticularWin_2"), viewPlayerData.rolePropData.FightPower);
|
| | | 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 clothes = 0;
|
| | | int _suitLevel = 0;
|
| | | RoleParticularModel.ItemData itemData = model.GetItemData(RoleEquipType.Clothes);
|
| | | if (itemData != null)
|
| | | {
|
| | | clothes = itemData.ItemID;
|
| | | _suitLevel = viewPlayerData.GetEquipSuitLevel();
|
| | | }
|
| | | int weapon = 0;
|
| | | itemData = model.GetItemData(RoleEquipType.Weapon);
|
| | | if (itemData != null)
|
| | | {
|
| | | weapon = itemData.ItemID;
|
| | | }
|
| | | int wing = 0;
|
| | | itemData = model.GetItemData(RoleEquipType.Wing);
|
| | | if (itemData != null)
|
| | | {
|
| | | wing = itemData.ItemID;
|
| | | }
|
| | | int weapon2 = 0;
|
| | | itemData = model.GetItemData(RoleEquipType.Weapon2);
|
| | | if (itemData != null)
|
| | | {
|
| | | weapon2 = itemData.ItemID;
|
| | | }
|
| | | int fashionClothes = 0;
|
| | | itemData = model.GetItemData(RoleEquipType.FashionClothes);
|
| | | if (itemData != null)
|
| | | {
|
| | | fashionClothes = itemData.ItemID;
|
| | | }
|
| | | int fashionWeapon = 0;
|
| | | itemData = model.GetItemData(RoleEquipType.FashionWeapon);
|
| | | if (itemData != null)
|
| | | {
|
| | | fashionWeapon = itemData.ItemID;
|
| | | }
|
| | | int fashionWeapon2 = 0;
|
| | | itemData = model.GetItemData(RoleEquipType.FashionWeapon2);
|
| | | if (itemData != null)
|
| | | {
|
| | | fashionWeapon2 = itemData.ItemID;
|
| | | }
|
| | | 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
|
| | | {
|
| | |
| | | secondaryId = weapon2,
|
| | | isDialogue = false,
|
| | | };
|
| | | UI3DModelExhibition.Instance.ShowPlayer(roleModel, data);
|
| | |
|
| | | m_RawPlayer.gameObject.SetActive(true);
|
| | | UI3DModelExhibition.Instance.ShowPlayer(m_RawPlayer, data);
|
| | | }
|
| | | }
|
| | |
|
| | | [Serializable]
|
| | | public class RoleEquip
|
| | | {
|
| | | public RoleEquipType type;
|
| | | public ItemCell itemCell;
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
| | | {
|
| | | case FuncPowerType.Equip:
|
| | | {
|
| | | foreach (var itemData in viewPlayerData.roleEquipDataDic.Values)
|
| | | if (viewPlayerData.rolePropData.EquipShowID != null)
|
| | | {
|
| | | ItemConfig _tagChinItemModel = ItemConfig.Get(itemData.ItemID);
|
| | | if (_tagChinItemModel != null && (_tagChinItemModel.ItemColor > viewRoleFuncModel.condition[0]
|
| | | || (_tagChinItemModel.ItemColor == viewRoleFuncModel.condition[0]
|
| | | && (viewRoleFuncModel.condition.Length < 2 || _tagChinItemModel.StarLevel >= viewRoleFuncModel.condition[1]))))
|
| | | foreach (var itemId in viewPlayerData.rolePropData.EquipShowID)
|
| | | {
|
| | | targetValue++;
|
| | | ItemConfig _tagChinItemModel = ItemConfig.Get(itemId);
|
| | | if (_tagChinItemModel != null && (_tagChinItemModel.ItemColor > viewRoleFuncModel.condition[0]
|
| | | || (_tagChinItemModel.ItemColor == viewRoleFuncModel.condition[0]
|
| | | && (viewRoleFuncModel.condition.Length < 2 || _tagChinItemModel.StarLevel >= viewRoleFuncModel.condition[1]))))
|
| | | {
|
| | | targetValue++;
|
| | | }
|
| | | }
|
| | | }
|
| | | var packTypeModel = playerPack.GetSinglePack(PackType.Equip);
|
| | |
| | | case FuncPowerType.Wing:
|
| | | {
|
| | | handled = true;
|
| | | RoleParticularModel.ItemData itemData = model.GetItemData(RoleEquipType.Wing);
|
| | | if (itemData!=null)
|
| | | var wingId = viewPlayerData.GetItemId(RoleEquipType.Wing);
|
| | | if (wingId != 0)
|
| | | {
|
| | | ItemConfig _tagChinItemModel = ItemConfig.Get(itemData.ItemID);
|
| | | ItemConfig _tagChinItemModel = ItemConfig.Get(wingId);
|
| | | targetCompareTxt.text = string.Format(viewRoleFuncModel.compareTip, _tagChinItemModel.ItemName);
|
| | | }
|
| | | else
|