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)}");
     }
 }
Example #3
0
        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);
            }
        }