internal static void RunBarricadeDamage(UnturnedBarricade barricade, ref ushort damage, ref bool cancel) { if (OnBarricadeDamage == null) { return; } OnBarricadeDamage(barricade, ref damage, (damage > barricade.Health), ref cancel); if (damage > barricade.Health && !cancel) { RunBarricadeDestroy(barricade, ref cancel); } }
internal static void RunBarricadeRemoved(UnturnedBarricade barricade, ref bool cancel) { if (OnBarricadeRemoved == null) { return; } OnBarricadeRemoved(barricade, ref cancel); if (!cancel) { UnturnedServer.RemoveBarricade(barricade); } }
public static void askRepair(this Barricade barricade, ushort amount) { // Set the variables bool cancel = false; // Run the events BarricadeEvents.RunBarricadeRepair(UnturnedBarricade.FindBarricade(barricade), ref amount, ref cancel); // Run the original function if (!cancel) { DetourManager.CallOriginal(typeof(Barricade).GetMethod("askRepair", BindingFlags.Instance | BindingFlags.Public), barricade, amount); } }
public void askSalvageBarricade(CSteamID steamID, byte x, byte y, ushort plant, ushort index) { BarricadeRegion barricadeRegion; bool cancel = false; if (BarricadeManager.tryGetRegion(x, y, plant, out barricadeRegion)) { BarricadeData data = barricadeRegion.barricades[(int)index]; BarricadeEvents.RunBarricadeSalvage(UnturnedBarricade.Create(data), ref cancel); } if (!cancel) { DetourManager.CallOriginal(typeof(BarricadeManager).GetMethod("askSalvageBarricade", BindingFlags.Public | BindingFlags.Instance), BarricadeManager.instance, steamID, x, y, plant, index); } }
internal static void RunBarricadeCreated(BarricadeData barricade, ref bool cancel) => OnBarricadeCreated?.Invoke(UnturnedBarricade.Create(barricade), ref cancel);
internal static void RunBarricadeSalvage(UnturnedBarricade barricade, ref bool cancel) => OnBarricadeSalvage?.Invoke(barricade, ref cancel);
internal static void RunBarricadeDestroy(UnturnedBarricade barricade, ref bool cancel) => OnBarricadeDestroy?.Invoke(barricade, ref cancel);
internal static void RunBarricadeRepair(UnturnedBarricade barricade, ref ushort repair, ref bool cancel) => OnBarricadeRepair?.Invoke(barricade, ref repair, ref cancel);