public void Initialize(Unit unit) { Unit = unit; transform.SetParent(Unit.transform, false); transform.localPosition = Vector3.zero; transform.localRotation = Quaternion.identity; transform.localScale = Vector3.one; ReplaceModel(Unit.Model); Unit.BoltEntity.AddEventListener(this); Unit.AddCallback(nameof(IUnitState.DeathState), OnDeathStateChanged); Unit.AddCallback(nameof(IUnitState.SpellCast), OnSpellCastChanged); EventHandler.RegisterEvent(Unit, GameEvents.UnitModelChanged, OnModelChanged); auraEffectController.HandleAttach(this); }
public MovementInfo(Unit unit, IUnitState unitState) { Unit = unit; UnitState = unitState; if (!unit.IsOwner) { unit.AddCallback(nameof(IUnitState.MovementFlags), OnUnitStateFlagsChanged); } }
public void Attach(Unit unit) { Unit = unit; transform.position = Unit.Position; ReplaceModel(Unit.Model, UnitModelReplacementMode.ScopeIn); OnScaleChanged(); Unit.BoltEntity.AddEventListener(this); Unit.AddCallback(nameof(IUnitState.DeathState), OnDeathStateChanged); Unit.AddCallback(nameof(IUnitState.SpellCast), OnSpellCastChanged); Unit.AddCallback(nameof(IUnitState.EmoteType), OnEmoteTypeChanged); Unit.AddCallback(nameof(IUnitState.EmoteFrame), OnEmoteFrameChanged); EventHandler.RegisterEvent(Unit, GameEvents.UnitModelChanged, OnModelChanged); EventHandler.RegisterEvent(Unit, GameEvents.UnitScaleChanged, OnScaleChanged); EventHandler.RegisterEvent(Unit, GameEvents.UnitVisualsChanged, OnVisualsChanged); auraEffectController.HandleAttach(this); }
protected override void OnAttach() { base.OnAttach(); Array.Resize(ref changedSlots, Unit.VisibleAuraMaxCount); Array.Resize(ref auraSlots, Unit.VisibleAuraMaxCount); for (int i = 0; i < auraSlots.Length; i++) { auraSlots[i] = new Slot(this); } changedSlots.Fill(true); Unit.AddCallback($"{nameof(IUnitState.VisibleAuras)}[]", OnVisibleAurasChanged); }
private void InitializeCaster(Unit caster) { this.caster = caster; caster.AddCallback(nameof(IUnitState.SpellCast), OnSpellCastChanged); }