using System; using System.Collections.Generic; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.UI; public class MinggeSmallTipWin : UIBase { [SerializeField] RectTransform content; [SerializeField] RectTransform arrow; [SerializeField] MinggeItemCell itemCell; [SerializeField] Text itemName; [SerializeField] OutlineEx itemNameOutline; [SerializeField] List fightAttrNames; [SerializeField] List fightAttrValues; [SerializeField] TextEx[] skillDesces; [SerializeField] Transform topObj; protected override void OnPreOpen() { Display(); } protected override void NextFrameAfterOpen() { var worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition); Vector2 screenAdjustedPos = CameraManager.uiCamera.WorldToScreenPoint(worldPos); var beforePos = screenAdjustedPos; var beforeAdjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(beforePos); var rectWidth = content.rect.width * Screen.width / canvasScaler.referenceResolution.x; screenAdjustedPos.x = Mathf.Clamp(screenAdjustedPos.x, rectWidth * 0.5f, Screen.width - rectWidth * 0.5f); screenAdjustedPos.y -= 40; var adjustedPos = CameraManager.uiCamera.ScreenToWorldPoint(screenAdjustedPos); adjustedPos.z = 0; content.position = adjustedPos; arrow.position = new Vector3(beforeAdjustedPos.x, arrow.position.y, 0); } public void Display() { var guid = ItemTipUtility.mainTipData.guid; if (string.IsNullOrEmpty(guid)) { DelayCloseWindow().Forget(); return; } topObj.SetActive(ItemTipUtility.mainTipData.showAll); var equip = PackManager.Instance.GetItemByGuid(guid); itemCell.Display(equip.guid); string qualityName = Language.Get("L1039", MGGuayuQualityConfig.Get(equip.config.ItemColor).ColorName); itemName.text = UIHelper.AppendColor(equip.config.ItemColor, qualityName + equip.config.ItemName, true, 2); itemNameOutline.OutlineColor = UIHelper.GetUIOutlineColor(equip.config.ItemColor); var fightAttrs = EquipModel.Instance.GetEquipFightAttrs(equip); var fightValues = EquipModel.Instance.GetEquipFightValues(equip); for (var i = 0; i < fightAttrNames.Count; i++) { if (i >= fightAttrs.Count) { //显示锁住 fightAttrNames[i].text = "?"; fightAttrNames[i].colorType = TextColType.NavyGray; fightAttrValues[i].text = Language.Get("Mingge27", MinggeManager.Instance.unlockAttrLVList[i - 1]); fightAttrValues[i].colorType = TextColType.NavyGray; } else { fightAttrNames[i].text = PlayerPropertyConfig.Get(fightAttrs[i]).Name; fightAttrNames[i].colorType = TextColType.lightYellow; fightAttrValues[i].text = PlayerPropertyConfig.GetValueDescription(fightAttrs[i], fightValues[i]); fightAttrValues[i].colorType = TextColType.lightYellow; } } //技能描述 所有技能全显示 var skillID = EquipModel.Instance.GetEquipSkillID(equip); if (skillID == 0) { for (int i = 0; i < skillDesces.Length; i++) { skillDesces[i].SetActive(false); } } else { var dict = MinggeManager.Instance.GetMinggeSkillTypeIDDict(); //如果是旧装备 显示当前数量;新装备不同技能数量+1,同技能不变 var hasCnt = dict[skillID].Count; for (int i = 0; i < skillDesces.Length; i++) { skillDesces[i].SetActive(true); skillDesces[i].colorType = i == hasCnt - 1 ? TextColType.lightYellow : TextColType.NavyGray; var showCnt = Math.Min(hasCnt, i + 1); skillDesces[i].text = Language.Get("L1039", Language.Get($"MinggeSkillType_{skillID}")) + SkillConfig.Get(skillID + i).Description + " " + Language.Get("HeroFates11", showCnt, i + 1); } } } }