protected override void RemoveAllNonOnDestroyAbilities() { if (this._abilityIdentity.isAuthority) { RecordInvokeEntryContext context; this.StartRecordInvokeEntry(0, 0, 0, 0xff, out context); Offset <MetaArg_AbilityControl> offset = MetaArg_AbilityControl.CreateMetaArg_AbilityControl(context.builder, AbilityControlType.RemoveAllNonDestroyAbilities); context.Finish <MetaArg_AbilityControl>(offset, AbilityInvokeArgument.MetaArg_AbilityControl); base.RemoveAllNonOnDestroyAbilities(); } }
private void MetaHandlerAbilityControl(AbilityInvokeEntry invokeEntry) { _metaAbilityControl = invokeEntry.GetArgument <MetaArg_AbilityControl>(_metaAbilityControl); switch (_metaAbilityControl.Type) { case AbilityControlType.AddAppliedAbilities: base.AddAppliedAbilities(); break; case AbilityControlType.RemoveAllAbilities: base.RemoveAllAbilities(); break; case AbilityControlType.RemoveAllNonDestroyAbilities: base.RemoveAllNonOnDestroyAbilities(); break; } }