Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA202_tagMCAttackMode.cs
@@ -4,9 +4,9 @@ { public static void Send_SwitchAttackMode(E_AttackMode attackMode) { C030A_tagCChangeAttackMode _proto = new C030A_tagCChangeAttackMode(); var _proto = new C030A_tagCChangeAttackMode(); _proto.Mode = (byte)attackMode; if (CrossServerUtility.IsCrossServerBoss()) if (CrossServerUtility.IsCrossServer()) { GameNetSystem.Instance.SendToCrossServer(_proto); } @@ -14,7 +14,6 @@ { GameNetSystem.Instance.SendInfo(_proto); } } public override void Done(GameNetPackBasic vNetPack) Fight/Stage/Dungeon/AdventureStage.cs
@@ -18,7 +18,8 @@ public void Enter() { IsInAdventureStage = true; IsInAdventureStage = true; ClientDungeonStageUtility.RequestStartClientDungeon(0, 0); m_CacheHeroPos = PlayerDatas.Instance.hero.Pos; SnxxzGame.Instance.StartCoroutine(_Enter()); } @@ -26,6 +27,7 @@ public void Exit() { IsInAdventureStage = false; ClientDungeonStageUtility.RequestExitClientDungeon(); SnxxzGame.Instance.StartCoroutine(_Exit()); } System/HazyRegion/HazyDemonKingModel.cs
@@ -309,7 +309,7 @@ PlayerDatas.Instance.baseData.mainServerMapIdRecord = PlayerDatas.Instance.baseData.MapID; PlayerDatas.Instance.baseData.MapID = Client_MapID; var attackMode = new C030A_tagCChangeAttackMode(); attackMode.Mode = (byte)E_AttackMode.Peace; attackMode.Mode = (byte)E_AttackMode.Contest; GameNetSystem.Instance.PushPackage(attackMode, ServerType.Main); } System/ItemTip/EquipTipUtility.cs
@@ -35,6 +35,7 @@ public GemInfo gemInfo; public TrainProperty trainProperty; public List<ItemOperateType> operates; public WingRefineMaterials refineMaterials; } @@ -110,6 +111,11 @@ public List<int> skills; } public struct WingRefineMaterials { public List<Int2> materials; } 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>(); } } @@ -155,6 +161,9 @@ case 41: case 42: WindowCenter.Instance.Open<PetMountTipWin>(); break; case 113: WindowCenter.Instance.Open<WingTipWin>(); break; case 114: WindowCenter.Instance.Open<GuardTipWin>(); @@ -229,6 +238,9 @@ case 41: case 42: WindowCenter.Instance.Open<PetMountTipWin>(); break; case 113: WindowCenter.Instance.Open<WingTipWin>(); break; case 114: WindowCenter.Instance.Open<GuardTipWin>(); @@ -325,9 +337,11 @@ guid = guid, baseInfo = GetBaseInfo(guid), baseProperty=GetBaseProperty(item.itemId), baseProperty = GetBaseProperty(item.itemId), legendProperty = GetLegendProperty(guid), petMountBaseProperty = GetPetMountBaseProperty(item.itemId), operates = GetOperates(guid), refineMaterials = GetWingRefineMaterials(guid), }; } @@ -337,6 +351,8 @@ { itemId = itemId, baseInfo = GetBaseInfo(itemId), baseProperty = GetBaseProperty(itemId), legendProperty = GetLegendProperty(itemId), petMountBaseProperty = GetPetMountBaseProperty(itemId), }; } @@ -545,8 +561,26 @@ { var data = new LegendProperty(); data.isPreview = true; data.trueCount = LegendPropertyUtility.GetEquipPropertyCount(itemId); data.properties = LegendPropertyUtility.GetEquipProperties(itemId); var config = ItemConfig.Get(itemId); switch (config.Type) { case 113: data.trueCount = LegendPropertyUtility.GetWingPropertyCount(config.LV); var ids = LegendPropertyUtility.GetWingProperties(config.LV); var values = LegendPropertyUtility.GetWingProperties(config.LV); data.properties = new List<Int2>(); var min = Mathf.Min(ids.Count, values.Count); for (int i = 0; i < min; i++) { data.properties.Add(new Int2(ids[i], values[i])); } break; default: data.trueCount = LegendPropertyUtility.GetEquipPropertyCount(itemId); data.properties = LegendPropertyUtility.GetEquipProperties(itemId); break; } return data; } @@ -892,6 +926,36 @@ return skillInfo; } private static WingRefineMaterials GetWingRefineMaterials(string guid) { var item = packModel.GetItemByGuid(guid); if (item == null) { return default(WingRefineMaterials); } if (item.config.Type != 113) { return default(WingRefineMaterials); } var refineMaterials = new WingRefineMaterials(); refineMaterials.materials = new List<Int2>(); var ids = item.GetUseData((int)ItemUseDataKey.wingMaterialItemID); var values = item.GetUseData((int)ItemUseDataKey.wingMaterialItemCount); if (!ids.IsNullOrEmpty() && !values.IsNullOrEmpty()) { var min = Mathf.Min(ids.Count, values.Count); for (int i = 0; i < min; i++) { refineMaterials.materials.Add(new Int2(ids[i], values[i])); } } return refineMaterials; } private static List<ItemOperateType> GetOperates(int itemId) { var config = ItemConfig.Get(itemId); @@ -1005,7 +1069,11 @@ operates.Add(ItemOperateType.renewal); } operates.Add(ItemOperateType.putOn); if (ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId)) { operates.Add(ItemOperateType.putOn); } return operates; } System/ItemTip/TipJobAndPlaceWidget.cs
New file @@ -0,0 +1,37 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, April 22, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class TipJobAndPlaceWidget : MonoBehaviour { [SerializeField] Text m_Job; [SerializeField] Text m_EquipPlace; public void Display(int itemId) { var config = ItemConfig.Get(itemId); if (JobNameConfig.Has(config.JobLimit)) { m_Job.text = Language.Get("EquipWin_JobTitleText_1") + JobNameConfig.Get(config.JobLimit).name; } else { m_Job.text = Language.Get("EquipWin_JobTitleText_1") + Language.Get("StoreWin110"); } m_EquipPlace.text = Language.Get("EquipWin_PartTitleText_1") + UIHelper.GetEquipPlaceName(config.EquipPlace); } } } System/ItemTip/TipJobAndPlaceWidget.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: b403cf8b0e91440449852097bdce1364 timeCreated: 1555899459 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/ItemTip/TipWingRefineMaterialsWidget.cs
New file @@ -0,0 +1,36 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, April 22, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class TipWingRefineMaterialsWidget : MonoBehaviour { [SerializeField] Text m_Description; public void Display(EquipTipUtility.WingRefineMaterials info) { var materials = info.materials; var lines = new string[materials.Count]; for (var i = 0; i < materials.Count; i++) { var config = ItemConfig.Get(materials[i].x); var itemName = UIHelper.AppendColor(config.ItemColor, config.ItemName); lines[i] = StringUtility.Contact(itemName, "X", materials[i].y); } m_Description.text = string.Join("\r\n", lines); } } } System/ItemTip/TipWingRefineMaterialsWidget.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 8554d2e7d4f7e244088599eafec741e3 timeCreated: 1555900244 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/ItemTip/WingTipWin.cs
New file @@ -0,0 +1,201 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, April 22, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class WingTipWin : Window { [SerializeField] TipItemBaseInfoWidget m_BaseInfoWidget; [SerializeField] ScrollRect m_SrollRect; [SerializeField] TipBasePropertyWidget m_BasePropertyWidget; [SerializeField] TipLegendPropertyWidget m_LegendPropertyWidget; [SerializeField] TipWingRefineMaterialsWidget m_RefineMaterialsWidget; [SerializeField] TipItemDescriptionWidget m_DescriptionWidget; [SerializeField] TipJobAndPlaceWidget m_JobAndPlaceWidget; [SerializeField] OperateButton[] m_OperateButtons; [SerializeField] Button m_Close; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.SetListener(() => { WindowCenter.Instance.Close(this.GetType().Name); }); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); m_SrollRect.verticalNormalizedPosition = 1f; DisplayBaseInfo(); DisplayBaseProperty(); DisplayLegendProperty(); DisplayRefineMaterials(); DisplayItemDescription(); DisplayJobAndPlace(); DisplayOperateButton(); } #endregion private void DisplayBaseInfo() { var baseInfo = EquipTipUtility.mainTipData.baseInfo; m_BaseInfoWidget.Display(baseInfo); } private void DisplayBaseProperty() { var baseProperty = EquipTipUtility.mainTipData.baseProperty; m_BasePropertyWidget.Display(baseProperty); } private void DisplayLegendProperty() { var legendProperty = EquipTipUtility.mainTipData.legendProperty; m_LegendPropertyWidget.gameObject.SetActive(!legendProperty.properties.IsNullOrEmpty()); if (!legendProperty.properties.IsNullOrEmpty()) { m_LegendPropertyWidget.Display(legendProperty); } } private void DisplayRefineMaterials() { var refineMaterials = EquipTipUtility.mainTipData.refineMaterials; m_RefineMaterialsWidget.gameObject.SetActive(!refineMaterials.materials.IsNullOrEmpty()); if (!refineMaterials.materials.IsNullOrEmpty()) { m_RefineMaterialsWidget.Display(refineMaterials); } } private void DisplayItemDescription() { var itemId = EquipTipUtility.mainTipData.baseInfo.itemId; m_DescriptionWidget.Display(itemId); } private void DisplayJobAndPlace() { var itemId = EquipTipUtility.mainTipData.baseInfo.itemId; m_JobAndPlaceWidget.Display(itemId); } private void DisplayOperateButton() { var operates = EquipTipUtility.mainTipData.operates; var guid = EquipTipUtility.mainTipData.guid; if (operates.IsNullOrEmpty()) { for (int i = 0; i < m_OperateButtons.Length; i++) { var button = m_OperateButtons[i]; button.SetActive(false); } } else { for (int i = 0; i < m_OperateButtons.Length; i++) { var button = m_OperateButtons[i]; if (i < operates.Count) { button.SetActive(true); button.Bind(operates[i], guid); } else { button.SetActive(false); } } } } [Serializable] public class OperateButton { [SerializeField] RectTransform m_Container; [SerializeField] Button m_Button; [SerializeField] Text m_Title; ItemOperateType operateType; string guid; public void SetActive(bool active) { this.m_Container.gameObject.SetActive(active); } public void Bind(ItemOperateType type, string guid) { operateType = type; this.guid = guid; switch (type) { case ItemOperateType.putOn: this.m_Title.text = "穿上"; break; case ItemOperateType.putOff: this.m_Title.text = "脱下"; break; case ItemOperateType.sell: this.m_Title.text = "出售"; break; case ItemOperateType.putOut: this.m_Title.text = "取出"; break; case ItemOperateType.putIn: this.m_Title.text = "放入"; break; default: this.m_Title.text = ""; break; } m_Button.SetListener(() => { WindowCenter.Instance.Close<WingTipWin>(); EquipTipUtility.Operate(operateType, this.guid); }); } } } } System/ItemTip/WingTipWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: ff1497f8879a73545ac4282720b4e8ac timeCreated: 1555898314 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/KnapSack/Logic/ItemTipsModel.cs
@@ -345,6 +345,7 @@ #endif switch (curAttrData.winType) { case ItemWinType.wingsWin: case ItemWinType.guardWin: case ItemWinType.itemWin: if (curAttrData.isPreview) @@ -371,9 +372,6 @@ EquipTipUtility.Show(curAttrData.guid); } } break; case ItemWinType.wingsWin: WindowCenter.Instance.Open<WingsWin>(); break; case ItemWinType.buyItemWin: WindowCenter.Instance.Open<BuyItemInfoWin>(); System/Realm/RealmBriefBehaviour.cs
@@ -12,6 +12,7 @@ [SerializeField] PropertyBehaviour m_ClonePropertyBeha; [SerializeField] Transform m_PropertyRoot; [SerializeField] List<PropertyBehaviour> m_Properties; [SerializeField] Text m_ReikiPoint; [SerializeField] Transform m_ContainerUnlockEquip; [SerializeField] Image m_UnlockEquip; [SerializeField] Button m_Preview; @@ -58,12 +59,15 @@ { m_Properties[i].gameObject.SetActive(false); } m_ReikiPoint.text = model.realmLevelUpReikiPoint.ToString(); } void DisplayEquip() { var level = 0; if (model.IsUnlockEquipRealm(realmLevel, out level)) if (model.IsUnlockEquipRealm(realmLevel, out level) && model.displayRealmLevel >= model.realmEquipDisplayLevel) { m_ContainerUnlockEquip.gameObject.SetActive(true); var config = RealmConfig.Get(realmLevel); System/Realm/RealmModel.cs
@@ -15,6 +15,8 @@ List<List<int>> m_RealmStages = new List<List<int>>(); public int realmMaxLevel { get; private set; } public int realmPoolOpenLevel { get; private set; } public int realmEquipDisplayLevel { get; private set; } public int realmLevelUpReikiPoint { get; private set; } public bool isBossPass { get; private set; } public int realmExpTime { get; private set; } public long startExp { get; private set; } @@ -213,6 +215,12 @@ var funcConfig = FuncConfigConfig.Get("RealmExpTime"); realmExpTime = int.Parse(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("RealmEqiupDisplayLevel"); realmEquipDisplayLevel = int.Parse(funcConfig.Numerical1); funcConfig = FuncConfigConfig.Get("LVUPAddPoint"); realmLevelUpReikiPoint = int.Parse(funcConfig.Numerical3); } public bool TryGetRealmProperty(int level, out Dictionary<int, int> propertyDict) System/Realm/RealmStageBehaviour.cs
@@ -13,6 +13,7 @@ [SerializeField] Transform m_ContainerSelect; [SerializeField] Image m_SelectIcon; [SerializeField] UIEffect m_Effect; [SerializeField] UIEffect m_PracticeEffect; [SerializeField] Button m_Select; public int realmLevel { get; private set; } @@ -35,6 +36,7 @@ DisplayBase(); DisplaySelect(); DisplayPracticeEffect(); DisplayEffect(false); } @@ -51,6 +53,21 @@ { var config = RealmConfig.Get(realmLevel); m_SelectIcon.SetSprite(StringUtility.Contact("RealmSelectBottom_", config.Quality)); } } void DisplayPracticeEffect() { if (model.displayRealmLevel + 1 == realmLevel) { if (!m_PracticeEffect.IsPlaying) { m_PracticeEffect.Play(); } } else { m_PracticeEffect.StopImediatly(); } } @@ -95,6 +112,7 @@ private void SelectRealmRefresh() { DisplaySelect(); DisplayPracticeEffect(); } private void OnSelect() System/Realm/RealmWin.cs
@@ -272,6 +272,12 @@ void DisplayUnlockEquip() { m_ContainerUnlockEquip.gameObject.SetActive(false); if (model.displayRealmLevel < model.realmEquipDisplayLevel) { return; } var stage = model.GetRealmStage(model.displayRealmLevel); List<int> realms = null; if (model.TryGetRealmStages(stage, out realms))