|
@@ -157,44 +157,6 @@ namespace ET
|
|
|
return UnitTemplateIdHash.ContainsKey(tid) ? UnitTemplateIdHash[tid] : null;
|
|
|
}
|
|
|
|
|
|
- public async ETTask ProcessLauncheffectTag(uint objectid, string tag)
|
|
|
- {
|
|
|
-
|
|
|
- Match m = Regex.Match(tag, @"^@(\w+)\(([\w\d\s_,]+)\)");
|
|
|
- if (m.Groups.Count >= 3)
|
|
|
- {
|
|
|
- string name = m.Groups[1].Value;
|
|
|
- string param = m.Groups[2].Value;
|
|
|
- switch (name)
|
|
|
- {
|
|
|
- case "ChangeMode":
|
|
|
- var ps = param.Split(',');
|
|
|
- if (ps.Length > 1)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- var delay = Convert.ToInt32(ps[1]);
|
|
|
- await TimerComponent.Instance.WaitAsync(delay);
|
|
|
- EventSystem.Instance.Publish(ChangeModeEvent.Static.Clone(objectid, ps[0]));
|
|
|
- }
|
|
|
- catch
|
|
|
- {
|
|
|
- Log.Error($"effect tag param error: {tag}");
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- EventSystem.Instance.Publish(ChangeModeEvent.Static.Clone(objectid, param));
|
|
|
- }
|
|
|
- return;
|
|
|
- default:
|
|
|
- Log.Error($"effect unknow tag: {tag}");
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- Log.Error($"effect illegal tag: {tag}");
|
|
|
- }
|
|
|
-
|
|
|
private void registerEventHandler()
|
|
|
{
|
|
|
|
|
@@ -218,11 +180,6 @@ namespace ET
|
|
|
if (launcheffect != null)
|
|
|
{
|
|
|
EventSystem.Instance.Publish(PlayEffectEvent.Static.Clone(launcheffect, unit.Id, CommonLang.Geometry.Vector3.Zero));
|
|
|
-
|
|
|
- if(!launcheffect.Tag.IsNullOrWhitespace() )
|
|
|
- {
|
|
|
- ProcessLauncheffectTag(e.ObjectID, launcheffect.Tag).Coroutine();
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -234,19 +191,34 @@ namespace ET
|
|
|
var e = ev as UnitDeadEvent;
|
|
|
Log.Debug($"Unit({e.object_id}) dead");
|
|
|
|
|
|
- EventSystem.Instance.Publish<PlayAnimatorEvent>(PlayAnimatorEvent.Static.Clone(
|
|
|
- e.ObjectID, AnimatorEventType.Dead));
|
|
|
-
|
|
|
var unit = UnitMgr.Instance.GetUnit(e.ObjectID);
|
|
|
if(unit != null && unit is BattleUnit bunit)
|
|
|
{
|
|
|
- var launcheffect = bunit.ZUnit.Info.DeadActionEffect;
|
|
|
+ EventSystem.Instance.Publish<PlayAnimatorEvent>(PlayAnimatorEvent.Static.Clone(
|
|
|
+ e.ObjectID, AnimatorEventType.Dead));
|
|
|
+
|
|
|
+ var launcheffect = bunit.ZUnit.Info.DeadEffect;
|
|
|
if (launcheffect != null)
|
|
|
{
|
|
|
- EventSystem.Instance.Publish<PlayEffectEvent>(PlayEffectEvent.Static.Clone(launcheffect, unit.Id, CommonLang.Geometry.Vector3.Zero));
|
|
|
+ if (launcheffect.BindBody)
|
|
|
+ {
|
|
|
+ vecTemp.Set(0, 0, 0);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ vecTemp.Set(unit.ZoneObject.X, unit.ZoneObject.Y, unit.ZoneObject.Z);
|
|
|
+ }
|
|
|
+ EventSystem.Instance.Publish(PlayEffectEvent.Static.Clone(launcheffect, unit.Id, vecTemp));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ launcheffect = bunit.ZUnit.Info.DeadAnimationEndEffect;
|
|
|
+ if (launcheffect != null)
|
|
|
+ {
|
|
|
+ vecTemp.Set(unit.ZoneObject.X, unit.ZoneObject.Y, unit.ZoneObject.Z);
|
|
|
+ EventSystem.Instance.Publish(PlayEffectEvent.Static.Clone(launcheffect, unit.Id, vecTemp));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
});
|
|
|
eventHandler.AddListener<UnitRebirthEvent>((ev) =>
|
|
|
{
|