Merge branch 'develop' of ssh://git.pthub.vn:3222/Unity/perfect-world-unity into fix-ui

This commit is contained in:
Chomper9981
2026-04-20 14:44:07 +07:00
11 changed files with 80 additions and 23 deletions
@@ -14,6 +14,8 @@ namespace BrewMonster.Scripts.ChatUI
{
[Header("MiniChat")]
public Button onOpenChatPanelButton;
[Tooltip("Dialog name registered in CECUIManager/CECGameUIMan for full chat panel.")]
[SerializeField] string chatDialogName = "Win_Chat";
[Tooltip("Parent cho các dòng tin xem trước (nên có VerticalLayoutGroup).")]
public RectTransform miniChatContent;
[Tooltip("ScrollRect bọc mini chat (null = không cuộn). Nếu để trống, Awake sẽ thử GetComponentInParent từ miniChatContent.")]
@@ -78,6 +80,10 @@ namespace BrewMonster.Scripts.ChatUI
void OnOpenChatPanelButtonClicked()
{
// Open through CECUIManager stack so current top UI/popup is hidden consistently.
if (!string.IsNullOrEmpty(chatDialogName) && CECUIManager.Instance != null)
CECUIManager.Instance.ShowUI(chatDialogName);
EventBus.Publish(new OpenChatPanelRequestedEvent());
}
+2 -2
View File
@@ -11,7 +11,7 @@ public class NPCVisual : MonoBehaviour
protected CECNPC.INFO m_NPCInfo;
[SerializeField] private Queue<string> _animationQueue = new Queue<string>();
[SerializeField] private AnimancerState _currentState;
private bool debugNamePlateBounds = true;
private bool debugNamePlateBounds = false;
private const float fadeTime = .2f;
private const FadeMode FadeMode = Animancer.FadeMode.FixedDuration;
@@ -181,7 +181,7 @@ public class NPCVisual : MonoBehaviour
var currentBounds = new Bounds(worldCenter, worldSize);
if (debugNamePlateBounds)
{
Debug.Log($"[Cuong] [NPCVisual] smr={renderer.name} localCenter={meshBounds.center} localSize={meshBounds.size} worldCenter={worldCenter} worldSize={worldSize} worldMaxY={currentBounds.max.y}");
BMLogger.Log($"[Cuong] [NPCVisual] smr={renderer.name} localCenter={meshBounds.center} localSize={meshBounds.size} worldCenter={worldCenter} worldSize={worldSize} worldMaxY={currentBounds.max.y}");
}
if (!hasAnySkinnedMesh)
@@ -86,9 +86,9 @@ namespace BrewMonster
public Skill88Stub() : base(88)
{
cls = 1;
name = "ӿȪ";
nativename = "ӿȪ";
icon = "ӿȪ";
name = "涌泉";
nativename = "涌泉";
icon = "涌泉";
max_level = 10;
type = 1;
apcost = 0;
@@ -109,11 +109,43 @@ namespace BrewMonster
long_range = 0;
restrict_corpse = 0;
allow_forms = 1;
effect = "ӿȪ";
effect = "涌泉";
doenchant = 1;
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
m_szFlyGfxPath = string.Empty;
m_szHitGrndGfxPath = string.Empty;
m_szHitGfxPath = "策划联入/人物技能/飞行/涌泉中招.gfx";
m_szFlySfxPath = string.Empty;
m_szHitGrndSfxPath = string.Empty;
m_szHitSfxPath = "skill/02mage/涌泉_c";
// GFX Movement and Behavior Parameters / GFX移动和行为参数
m_MoveMode = (GfxMoveMode)0;
m_TargetMode = (GfxTargetMode)0;
m_AttFlyMode = (GfxAttackMode)0;
m_AttHitMode = (GfxAttackMode)0;
m_dwFlyTime = 0;
m_bTraceTarget = false;
m_FlyClusterCount = 1;
m_FlyClusterInterval = 0;
m_HitClusterCount = 1;
m_HitClusterInterval = 0;
m_bOneHit = true;
m_bFadeOut = false;
m_bRelScl = true;
m_fDefTarScl = 1.8f;
// Area parameters (commented out) / 区域参数(已注释)
// m_bArea = false;
// m_Shape = (EmitShape)0;
// m_vSize = new Vector3(0.0f, 0.0f, 0.0f);
// Param (commented out) / 参数(已注释)
// m_paramType = (GfxSkillValType)1;
// m_param = new GFX_SKILL_PARAM();
// m_param.nVal = 0;
restrict_weapons.Add(0);
restrict_weapons.Add(292);
range = new Range();
@@ -129,7 +129,7 @@ namespace BrewMonster.UI
{
CreateOneRankDlg(taoistRank);
}
totalSPText.text = " <color=yellow>Nguyên Thần:</color> " +GetHostPlayer().GetBasicProps().iSP.ToString() + "</color>";
}
// ʼڶԻһԷڴ / Initialize rank sub-dialogs once to avoid realloc
@@ -190,6 +190,7 @@ namespace BrewMonster.UI
FitSize();
ShowLastSelectedSkill();
}
totalSPText.text = " <color=yellow>Nguyên Thần:</color> " + GetHostPlayer().GetBasicProps().iSP.ToString() + "</color>";
}
// ħ״̬ / Reset when switching between god/evil
@@ -39,7 +39,6 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
{
if (skillbutton == null)
{
Debug.LogError("Skill Button is not assigned in AUIImagePicture");
return;
}
skillbutton.onClick.RemoveAllListeners();
@@ -98,7 +97,12 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
Debug.LogError("Skill Image is not assigned in AUIImagePicture");
return;
}
skillbutton.interactable = true;
if (skillbutton != null)
{
skillbutton.interactable = true;
}
disPlayImage.color = Color.white;
disPlayImage.sprite = sprite;
disPlayImage.gameObject.SetActive(true);
@@ -222,18 +226,13 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
continue;
}
if (TrySetSkillGroupIconByNIcon(index, comboSkills[index].nIcon))
if (TrySetDefaultSkillGroupIcon())
{
return true;
}
}
_skillGroupIndex = resolvedGroup;
if (TrySetDefaultSkillGroupIcon())
{
return true;
}
Clear();
return false;
}
@@ -104,7 +104,7 @@ namespace BrewMonster
continue;
}
if (TrySetSkillGroupIconByNIcon(groupIndex, comboSkills[groupIndex].nIcon))
if (TrySetDefaultSkillGroupIcon())
{
return true;
}
@@ -114,6 +114,24 @@ namespace BrewMonster
return false;
}
private bool TrySetDefaultSkillGroupIcon()
{
var uiMan = EC_Game.GetGameRun()?.GetUIManager()?.GetInGameUIMan();
if (uiMan == null)
{
return false;
}
var icon = uiMan.GetIcon(DefaultComboIcon, EC_GAMEUI_ICONS.ICONS_SKILLGRP);
if (icon == null)
{
return false;
}
SetImage(icon);
return true;
}
private bool TrySetSkillGroupIconByNIcon(int groupIndex, int nIcon)
{
_skillGroupIndex = groupIndex;
@@ -144,6 +144,7 @@ namespace BrewMonster
private void OnClickedConfirmCombo()
{
_skillSetUpComboWidget.ShowCurrentCombos();
if (_currentSelectComboSlot != null &&
_skillSetUpComboWidget.CurrentComboSetting.comboSkill[_currentSelectComboSlot.GetSlotIndex].idSkill == null)
{
@@ -104,7 +104,7 @@ namespace BrewMonster
_btnLoopAttack.OnClickedSkillSlot -= OnSelectedSkillToAsign;
}
private void ShowCurrentCombos()
public void ShowCurrentCombos()
{
// setting.comboSkill[GetData() - 1].nIcon = (byte)m_nIcon;
if (Setting.comboSkill == null || _combosList.Count != Setting.comboSkill.Length)
@@ -112,7 +112,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 104, y: -5}
m_SizeDelta: {x: 290, y: 0}
m_SizeDelta: {x: 600, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!222 &7228077960814023056
CanvasRenderer:
@@ -252,9 +252,9 @@ MonoBehaviour:
m_IgnoreLayout: 0
m_MinWidth: 290
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredWidth: 600
m_PreferredHeight: -1
m_FlexibleWidth: 603.72
m_FlexibleWidth: 600
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6627717456258223658
@@ -371,8 +371,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -175.64499, y: 151.8}
m_SizeDelta: {x: -1148.71, y: 227}
m_AnchoredPosition: {x: -157.2, y: 151.8}
m_SizeDelta: {x: -1235.6001, y: 227}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5093099212117339368
CanvasRenderer:
+1 -1
View File
@@ -943,7 +943,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 335.91, y: -507.53912}
m_AnchoredPosition: {x: 335.91, y: -431.53912}
m_SizeDelta: {x: 651.82, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2731969899170380074