private new void OnDestroyAbilityHitbox(Entity ent, AbilityHitbox hitbox) { if (References.NetworkIdentity.hasAuthority == true) { _nextHitboxDestroyed.Add(hitbox.CastData); PinouNetworkManager.MainBehaviour.SetDirty(master.gameObject, SyncableVariable.EntityAbilityHitboxDestroyed); } }
private void SyncDestroyAbilityHitbox(SyncableVariable var, NetworkReader reader) { int hitboxCount = reader.ReadInt32(); for (int i = 0; i < hitboxCount; i++) { AbilityCastData castData = reader.ReadAbilityCastData(); AbilityHitbox.DestroyFromCastData(castData); if (References.NetworkIdentity.isServer && References.NetworkIdentity.hasAuthority == false) { _nextHitboxDestroyed.Add(castData); PinouNetworkManager.MainBehaviour.SetDirty(master.gameObject, SyncableVariable.EntityAbilityHitboxDestroyed); } } }
private void SyncCastAbility(SyncableVariable var, NetworkReader reader) { int hitboxCount = reader.ReadInt32(); for (int i = 0; i < hitboxCount; i++) { AbilityCastData castData = reader.ReadAbilityCastData(); if (castData.AbilityCast.Hitbox.UnlimitedLifeSpan == true || castData.AbilityCast.Hitbox.LifeSpan > 0) { AbilityHitbox hitBox = AbilityPerformer.HandleSpawnAbilityHitbox(castData); hitBox.ActivateVisualMode(); } OnPerformAbility.Invoke(master, castData); if (References.NetworkIdentity.isServer && References.NetworkIdentity.hasAuthority == false) { _nextAbilitiesCast.Add(castData); PinouNetworkManager.MainBehaviour.SetDirty(master.gameObject, SyncableVariable.EntityAbilityCast); } } }