|
@@ -9,6 +9,7 @@ namespace ET.Client
|
|
|
{
|
|
|
[Event]
|
|
|
[FriendOfAttribute(typeof(ET.Client.UnitRenderComponet))]
|
|
|
+ [FriendOfAttribute(typeof(ET.Client.ModelViewComponent))]
|
|
|
public class OnNewZoneObjectHandler : BEvent<EventType.OnNewZoneObject>
|
|
|
{
|
|
|
protected override async ETTask OnEvent(EventType.OnNewZoneObject args)
|
|
@@ -41,7 +42,7 @@ namespace ET.Client
|
|
|
private async ETTask CreatUnitModel(BattleUnit unit, string modelName)
|
|
|
{
|
|
|
var zu = unit.ZUnit;
|
|
|
- if(modelName.IsNullOrWhitespace() )
|
|
|
+ if (modelName.IsNullOrWhitespace())
|
|
|
{
|
|
|
modelName = $"Unit_{zu.Info.FileName}";
|
|
|
}
|
|
@@ -56,7 +57,7 @@ namespace ET.Client
|
|
|
var render = ModelViewComponent.Instance.AddChildWithId<UnitRenderComponet, GameObject>(unit.Id, go, true);
|
|
|
if (zu.Info.Properties is XmdsUnitProperties prop && prop.ShowHPBanner)
|
|
|
{
|
|
|
- await CreateHeadbar(render, zu);
|
|
|
+ CreateHeadbar(render, zu).Coroutine();
|
|
|
}
|
|
|
if (unit is BattleActor)
|
|
|
{
|
|
@@ -64,7 +65,7 @@ namespace ET.Client
|
|
|
}
|
|
|
//Log.Debug($"unitRender({zu.ObjectID}),pos({zu.X},{zu.Y},{zu.Z}) ok.");
|
|
|
|
|
|
- switch(zu.CurrentState)
|
|
|
+ switch (zu.CurrentState)
|
|
|
{
|
|
|
case CommonAI.Zone.Helper.UnitActionStatus.Move:
|
|
|
EventSystem.Instance.Publish(PlayAnimatorEvent.Clone(zu.ObjectID, PlayAnimatorEvent.AniType.Run));
|
|
@@ -78,7 +79,7 @@ namespace ET.Client
|
|
|
EventSystem.Instance.Publish(PlayAnimatorEvent.Clone(zu.ObjectID, PlayAnimatorEvent.AniType.Idle));
|
|
|
break;
|
|
|
}
|
|
|
- if(zu.GetBuffStatusCount() > 0)
|
|
|
+ if (zu.GetBuffStatusCount() > 0)
|
|
|
{
|
|
|
EventSystem.Instance.Publish(BuffChangeEvent.Static.Clone(zu.ObjectID, null, EventType.BuffChangeEvent.BuffOP.Reload));
|
|
|
}
|
|
@@ -131,12 +132,76 @@ namespace ET.Client
|
|
|
render.NameBar = name;
|
|
|
render.HPBar = progresshp;
|
|
|
|
|
|
- name.text = "";
|
|
|
- name.visible = false;
|
|
|
+
|
|
|
+ if (zu.Force == 3)
|
|
|
+ {
|
|
|
+ name.text = "";
|
|
|
+ name.visible = false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ name.text = zu.SyncInfo.Name;
|
|
|
+ TryShowName(render);
|
|
|
+ }
|
|
|
|
|
|
progresshp.visible = false;
|
|
|
progresshp.value = zu.HP * 100 / zu.MaxHP;
|
|
|
render.SyncHeadBarPos();
|
|
|
}
|
|
|
+
|
|
|
+ private async void TryShowName(UnitRenderComponet render)
|
|
|
+ {
|
|
|
+ if (render.IsVipName)
|
|
|
+ {
|
|
|
+ render.NameBar.visible = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var unitCnt = UnitMgr.Instance.PlayerList.Count - 7;
|
|
|
+ if (unitCnt <= GameSetting.Name_level_1)
|
|
|
+ {
|
|
|
+ render.NameBar.visible = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (!ModelViewComponent.Instance.IsHideNormalName)
|
|
|
+ {
|
|
|
+ ModelViewComponent.Instance.IsHideNormalName = true;
|
|
|
+ foreach(var id in UnitMgr.Instance.PlayerList)
|
|
|
+ {
|
|
|
+ if (id == render.Id) continue;
|
|
|
+ var r = ModelViewComponent.Instance.GetChild<UnitRenderComponet>(id);
|
|
|
+ if (r != null && r.NameBar != null && !r.IsVipName)
|
|
|
+ {
|
|
|
+ r.NameBar.visible = false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ int showTime;
|
|
|
+ if (unitCnt < GameSetting.Name_level_2)
|
|
|
+ {
|
|
|
+ showTime = 5000;
|
|
|
+ }
|
|
|
+ else if(unitCnt < GameSetting.Name_level_3)
|
|
|
+ {
|
|
|
+ showTime = 3000;
|
|
|
+ }
|
|
|
+ else if(unitCnt < GameSetting.Name_level_4)
|
|
|
+ {
|
|
|
+ showTime = 1000;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ render.NameBar.visible = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ render.NameBar.visible = true;
|
|
|
+ await TimerComponent.Instance.WaitAsync(showTime);
|
|
|
+ render.NameBar.visible = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|