Example #1
0
 void OnEntitySpawned(HNetworkView data)
 {
     if (data.gameObject.name.Contains("WorldItem(Clone)") || data.gameObject.GetComponent <Inventory>() != null)
     {
         data.gameObject.AddComponent <SpinDropControl>();
     }
 }
Example #2
0
        private void IOnTakeDamage(EntityEffectFluid effect, EntityStats target, EntityEffectSourceData source)
        {
            if (effect == null || target == null || source == null || source.Value.Equals(0f))
            {
                return;
            }

            AIEntity entity = target.GetComponent <AIEntity>();

            if (entity != null)
            {
                Interface.CallHook("OnEntityTakeDamage", entity, source);
                return;
            }

#if ITEMV2
            HNetworkView networkView = target.networkView;
#else
            uLink.NetworkView networkView = target.uLinkNetworkView();
#endif
            if (networkView != null)
            {
                PlayerSession session = GameManager.Instance.GetSession(networkView.owner);
                if (session != null)
                {
                    Interface.CallHook("OnPlayerTakeDamage", session, source);
                }
            }
        }
Example #3
0
        private PlayerSession GetPlayerSession(EntityEffectSourceData dataSource)
        {
            if (dataSource?.EntitySource?.GetComponent <EntityStats>()?.networkView == null)
            {
                return(null);
            }
            HNetworkView networkView = dataSource.EntitySource.GetComponent <EntityStats>().networkView;

            return(GameManager.Instance.GetSession(networkView.owner));
        }
        private object IOnEntityEffect(StandardEntityFluidEffect effect, EntityEffectSourceData sourceData, float relativeValue)
        {
            if (sourceData == null || effect.ResolveTargetType() != EntityFluidEffectKeyDatabase.Instance?.Health)
            {
                return(null);
            }

            EntityStats stats = effect.EntityStats;

            if (stats == null)
            {
                return(null);
            }

            float newValue     = Mathf.Clamp(effect.Value + relativeValue, effect.MinValue, effect.MaxValue);
            float updatedValue = newValue - effect.Value;

            sourceData.Value = updatedValue;

            AIEntity entity = stats.GetComponent <AIEntity>();

            if (entity != null)
            {
                if (updatedValue > 0)
                {
                    return(Interface.CallHook("OnEntityHeal", entity, sourceData));
                }
                else if (updatedValue < 0)
                {
                    return(Interface.CallHook("OnEntityTakeDamage", entity, sourceData));
                }

                return(null);
            }

            HNetworkView networkView = stats.networkView;

            if (networkView != null)
            {
                PlayerSession session = GameManager.Instance.GetSession(stats.networkView.owner);
                if (session != null)
                {
                    if (updatedValue > 0)
                    {
                        return(Interface.CallHook("OnPlayerHeal", session, sourceData));
                    }
                    else if (updatedValue < 0)
                    {
                        return(Interface.CallHook("OnPlayerTakeDamage", session, sourceData));
                    }
                }
            }

            return(null);
        }
Example #5
0
 void Destroy(HNetworkView nwv)
 {
     timer.Once(Convert.ToSingle(Config["SecondsTillDestroy"]), () =>
     {
         if (nwv != null)
         {
             ChestList.Remove(nwv);
             Singleton <HNetworkManager> .Instance.NetDestroy(HNetworkExtensions.HNetworkView(nwv));
         }
     });
 }
Example #6
0
 private void OnEntitySpawned(HNetworkView data)
 {
     if (data.gameObject.name == "GenericTownLootCacheServer(Clone)")
     {
         var inv = data.gameObject.GetComponent <Inventory>();
         if (inv != null)
         {
             inv.ClearItems();
             AddCustomItem(inv);
         }
     }
 }
Example #7
0
        void OnEntitySpawned(HNetworkView data)
        {
            if (data.gameObject.name.Contains("WorkBench"))
            {
                var workb = data.gameObject.GetComponent <Crafter>();

                Puts(workb.UnpoweredThinkCoefficient.ToString());
                Puts(workb.ThinksPerSecond.ToString());
                Puts(workb.ThinkCoefficient.ToString());
                workb.ThinksPerSecond = 1f;
            }
        }
Example #8
0
        void OnEntitySpawned(HNetworkView data)
        {
            if (data.gameObject.name.Contains("C4"))
            {
                var sessions    = GameManager.Instance?.GetSessions()?.Values.Where(IsValidSession).ToList();
                var playersNear =
                    sessions.Where(s =>
                                   Vector3.Distance(s.WorldPlayerEntity.transform.position,
                                                    data.gameObject.transform.position) <= _config.main.radius)
                    .ToList();
                blockplayers(playersNear, _config.main.timec4);
            }

            if (data.gameObject.name.Contains("RaidDrill") && !data.gameObject.name.Contains("Item"))
            {
                var sessions    = GameManager.Instance?.GetSessions()?.Values.Where(IsValidSession).ToList();
                var playersNear =
                    sessions.Where(s =>
                                   Vector3.Distance(s.WorldPlayerEntity.transform.position,
                                                    data.gameObject.transform.position) <= _config.main.radius)
                    .ToList();
                blockplayers(playersNear, _config.main.timedrill);
            }
        }