Ejemplo n.º 1
0
        private void StartRainOfFire(Vector3 origin, ConfigData.Settings setting)
        {
            float radius          = setting.Radius;
            int   numberOfRockets = setting.RocketAmount;
            float duration        = setting.Duration;
            bool  dropsItems      = setting.ItemDropControl.EnableItemDrop;

            ItemDrop[] itemDrops = setting.ItemDropControl.ItemsToDrop;

            float intervals = duration / numberOfRockets;

            if (configData.Options.NotifyEvent)
            {
                if (PopupNotifications)
                {
                    PopupNotifications.Call("CreatePopupNotification", msg("incoming"));
                }
                else
                {
                    PrintToChat(msg("incoming"));
                }
            }

            timer.Repeat(intervals, numberOfRockets, () => RandomRocket(origin, radius, setting));
        }
Ejemplo n.º 2
0
        private bool StartOnPlayer(string playerName, ConfigData.Settings setting)
        {
            BasePlayer player = GetPlayerByName(playerName);

            if (player == null)
            {
                return(false);
            }

            StartRainOfFire(player.transform.position, setting);
            return(true);
        }
Ejemplo n.º 3
0
        private void RandomRocket(Vector3 origin, float radius, ConfigData.Settings setting)
        {
            bool    isFireRocket = false;
            Vector2 rand         = UnityEngine.Random.insideUnitCircle;
            Vector3 offset       = new Vector3(rand.x * radius, 0, rand.y * radius);

            Vector3 direction = (Vector3.up * -2.0f + Vector3.right).normalized;
            Vector3 launchPos = origin + offset - direction * 200;

            if (RandomRange(1, setting.FireRocketChance) == 1)
            {
                isFireRocket = true;
            }

            BaseEntity rocket = CreateRocket(launchPos, direction, isFireRocket);

            if (setting.ItemDropControl.EnableItemDrop)
            {
                var comp = rocket.gameObject.AddComponent <ItemCarrier>();
                comp.SetCarriedItems(setting.ItemDropControl.ItemsToDrop);
                comp.SetDropMultiplier(configData.Options.GlobalDropMultiplier);
            }
        }