private void ClientRemote_OnWeaponStart(ICharacter whoFires) { if (whoFires == null || !whoFires.IsInitialized) { return; } WeaponSystemClientDisplay.ClientOnWeaponStart(whoFires); }
private static void SharedCallOnWeaponStart(WeaponState state, ICharacter character) { Api.Assert(!state.IsEventWeaponStartSent, "Firing event must be not set"); state.IsEventWeaponStartSent = true; if (IsClient) { // start firing weapon on Client-side WeaponSystemClientDisplay.ClientOnWeaponStart(character); } else // if IsServer { using var scopedBy = Shared.GetTempList <ICharacter>(); Server.World.GetScopedByPlayers(character, scopedBy); Instance.CallClient(scopedBy.AsList(), _ => _.ClientRemote_OnWeaponStart(character)); } }