public override TemplateObject Handle(TagData data)
        {
            EffectAssetTag atag = EffectAssetTag.For(data.GetModifier(0));

            if (atag == null)
            {
                return(new TextTag("&{NULL}").Handle(data.Shrink()));
            }
            return(atag.Handle(data.Shrink()));
        }
Beispiel #2
0
        public void EnableForLevel()
        {
            GameObject game = new GameObject("UnturnedFreneticGameObject");

            if (game.GetComponent <UnturnedFreneticTicker>() != null)
            {
                return;
            }
            game.AddComponent <UnturnedFreneticTicker>();
            ItemAssetTag.Init();
            AnimalAssetTag.Init();
            VehicleAssetTag.Init();
            WorldObjectAssetTag.Init();
            ResourceAssetTag.Init();
            BarricadeTag.Init();
            EffectAssetTag.Init();
        }
        public override void Execute(FreneticScript.CommandSystem.CommandQueue queue, CommandEntry entry)
        {
            LocationTag loc = LocationTag.For(entry.GetArgument(queue, 1));

            if (loc == null)
            {
                queue.HandleError(entry, "Invalid location!");
                return;
            }
            string         targetAssetType = entry.GetArgument(queue, 0).ToLower();
            EffectAssetTag effectType      = EffectAssetTag.For(targetAssetType);

            if (effectType == null)
            {
                queue.HandleError(entry, "Invalid effect type!");
                return;
            }
            EffectManager.sendEffect(effectType.Internal.id, EffectManager.INSANE, loc.ToVector3());
            // TODO: radius option instead of always 512 units (INSANE)!
            if (entry.ShouldShowGood(queue))
            {
                entry.Good(queue, "Played effect " + TagParser.Escape(effectType.ToString()) + " at " + TagParser.Escape(loc.ToString()) + "!");
            }
        }