public UnturnedBarricadeBuildable(BarricadeDrop drop) : base( new UnturnedBuildableAsset(drop.asset), new UnityTransform(drop.model), new UnturnedBuildableState(drop.GetServersideData().barricade), new UnturnedBuildableOwnership(drop.GetServersideData()), drop.instanceID.ToString()) { BarricadeDrop = drop; Interactable = drop.interactable; }
public UnturnedBarricadeBuildable(BarricadeData data, BarricadeDrop drop) : this(drop) { if (drop.GetServersideData() != data) { throw new Exception($"{nameof(data)} is incorrect barricade data for {nameof(drop)}"); } }
private void OnBarricadeDamaged(CSteamID instigatorSteamID, Transform barricadeTransform, ref ushort pendingTotalDamage, ref bool shouldAllow, EDamageOrigin damageOrigin) { SteamPlayer steamPlayer; if (!Configuration.Instance.AllowRaid && (steamPlayer = PlayerTool.getSteamPlayer(instigatorSteamID)) != null) { BarricadeDrop drop = BarricadeManager.FindBarricadeByRootTransform(barricadeTransform); BarricadeData data = drop.GetServersideData(); // return if barricade owner is instigator if (data.owner == instigatorSteamID.m_SteamID || data.group == steamPlayer.player.quests.groupID.m_SteamID) { return; } // return if barricade owner is offline if (!Provider.clients.Exists(x => x.playerID.steamID.m_SteamID == data.owner || x.player.quests.groupID.m_SteamID == data.group)) { return; } this.StartPlayerRaid(instigatorSteamID); } }