コード例 #1
0
 public OutlineWall(int x, int y, int x2, int y2, MagicWand magicWand, TSPlayer plr, int wallType, int color, Expression expression)
     : base(x, y, x2, y2, magicWand, plr)
 {
     this.wallType   = wallType;
     this.color      = color;
     this.expression = expression ?? new TestExpression(new Test(t => true));
 }
コード例 #2
0
ファイル: BreakObject.cs プロジェクト: yakoder/NRaas
 public override bool Run()
 {
     try
     {
         Vector3 position = Target.Position;
         if (!Actor.RouteToDynamicObjectRadius(Target, 1.5f, null, new Route.RouteOption[0]))
         {
             return(false);
         }
         if (position == Target.Position)
         {
             if (MagicWand.PerformAnimation(Actor, OnPerform))
             {
                 Magic.EnsureSkill(Actor).IncreaseGoodSpellCount();
             }
         }
         return(true);
     }
     catch (ResetException)
     {
         throw;
     }
     catch (Exception e)
     {
         Common.Exception(Actor, Target, e);
         return(false);
     }
 }
コード例 #3
0
        public override bool Run()
        {
            try
            {
                Actor.SynchronizationLevel  = Sim.SyncLevel.NotStarted;
                Target.SynchronizationLevel = Sim.SyncLevel.NotStarted;
                Target.InteractionQueue.CancelAllInteractions();

                if (BeginSocialInteraction(new SocialInteractionB.Definition(null, Common.Localize("GetRaise:MenuName", Actor.IsFemale), false), false, 3f, true))
                {
                    if (MagicWand.PerformAnimation(Actor, OnPerform))
                    {
                        Magic.EnsureSkill(Actor).IncreaseEvilSpellCount();
                    }

                    return(true);
                }

                return(false);
            }
            catch (ResetException)
            {
                throw;
            }
            catch (Exception e)
            {
                Common.Exception(Actor, Target, e);
                return(false);
            }
        }
コード例 #4
0
        /*
         *  Es necesario testear que la implementación del setter del atributo Attack esté funcionando correctamente.
         */
        public void MagicWandCorrectAttack()
        {
            MagicWand wand = new MagicWand(30, 0);

            wand.Attack = 100;
            Assert.AreEqual(expectedAttack, wand.Attack);
        }
コード例 #5
0
        /*
         *  Es necesario testear que la implementación del setter del atributo Attack y su validación estén funcionando correctamente.
         */
        public void MagicWandIncorrectAttack()
        {
            MagicWand wand = new MagicWand(50, 0);

            wand.Attack = -1;
            Assert.AreEqual(caseWrongAttack, wand.Attack);
        }
コード例 #6
0
 public SetWire(int x, int y, int x2, int y2, MagicWand magicWand, TSPlayer plr, int wire, bool state, Expression expression)
     : base(x, y, x2, y2, magicWand, plr)
 {
     this.expression = expression ?? new TestExpression(new Test(t => true));
     this.state      = state;
     this.wire       = wire;
 }
コード例 #7
0
        public static Weapon CreateWeapon(List <string> args)
        {
            string weaponType   = args[0];
            string weaponName   = args[1];
            int    strength     = int.Parse(args[2]);
            int    agility      = int.Parse(args[3]);
            int    intelligence = int.Parse(args[4]);

            Weapon weapon = null;

            if (weaponType == "Bow")
            {
                weapon = new Bow(weaponName, strength, agility, intelligence);
            }
            else if (weaponType == "Sword")
            {
                weapon = new Sword(weaponName, strength, agility, intelligence);
            }
            else if (weaponType == "MagicWand")
            {
                weapon = new MagicWand(weaponName, strength, agility, intelligence);
            }

            return(weapon);
        }
コード例 #8
0
        /*
         *  Es necesario testear que la implementación del setter del atributo Defense esté funcionando correctamente.
         */
        public void MagicWandCorrectDefense()
        {
            MagicWand wand = new MagicWand(70, 5);

            wand.Defense = 100;
            Assert.AreEqual(expectedDefense, wand.Defense);
        }
コード例 #9
0
ファイル: LootManager.cs プロジェクト: Juutis/AKJ8
    public List <GameObject> GetLoot(LootTable lootTable)
    {
        var loots = new List <GameObject>();

        var random = Random.Range(0.0f, 1.0f);

        if (random < lootTable.WandChance)
        {
            GameObject wandGameObject = Instantiate(WandPrefab);
            MagicWand  wand           = wandGameObject.GetComponent <MagicWand>();
            wand.SetOptions(MagicWand.GetOptions(depthConfig.PowerLevel));
            loots.Add(wandGameObject);
        }

        random = Random.Range(0.0f, 1.0f);
        if (random < lootTable.BootsChance)
        {
            GameObject bootsGameObject = Instantiate(BootsPrefab);
            Boots      boots           = bootsGameObject.GetComponent <Boots>();
            boots.SetOptions(Boots.GetOptions(depthConfig.PowerLevel));
            loots.Add(bootsGameObject);
        }

        random = Random.Range(0.0f, 1.0f);
        if (random < lootTable.HealthPotionChance)
        {
            GameObject potionGameObject = Instantiate(PotionPrefab);
            loots.Add(potionGameObject);
        }

        return(loots);
    }
コード例 #10
0
        public static void UsePoints(Sim sim, int points, OccultTypes intended)
        {
            SpellcastingSkill spellCasting = sim.SkillManager.GetElement(SkillNames.Spellcasting) as SpellcastingSkill;
            MagicWand         wand         = MagicWand.GetWandToUse(sim, spellCasting);

            if (intended != OccultTypes.None)
            {
                if (PrivateUsePoints(sim, wand, points, intended))
                {
                    return;
                }
            }

            foreach (OccultTypes type in sMagicOccult)
            {
                if (type == intended)
                {
                    continue;
                }

                if (PrivateUsePoints(sim, wand, points, type))
                {
                    return;
                }
            }
        }
コード例 #11
0
ファイル: Move.cs プロジェクト: Xekep/WorldEdit
 public Move(int x, int y, int x2, int y2, MagicWand magicWand, TSPlayer plr, int down, int right, Expression expression)
     : base(x, y, x2, y2, magicWand, plr)
 {
     this.down       = down;
     this.right      = right;
     this.expression = expression ?? new TestExpression(new Test(t => true));
 }
コード例 #12
0
        /*
         *  Es necesario testear que la implementación del setter del atributo Defense y su validación estén funcionando correctamente.
         */
        public void MagicWandIncorrectDefense()
        {
            MagicWand wand = new MagicWand(50, 0);

            wand.Defense = -1;
            Assert.AreEqual(caseWrongDefense, wand.Defense);
        }
コード例 #13
0
        public bool Run(T ths, IMagicalDefinition definition)
        {
            MagicControl control = MagicControl.GetBestControl(ths.Actor, definition);

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

            mWand = control.InitialPrep(ths.Actor, definition, out mWandCreated);
            if (mWand == null)
            {
                return(false);
            }

            mWand.PrepareForUse(ths.Actor);

            ths.Wand = mWand;

            bool twoPerson = (ths.Actor == ths.Target);

            if (!Hybrid.Settings.mEnforceTwoPersonAnimation)
            {
                twoPerson = false;
            }

            bool spellCastingEpiclyFailed;
            bool spellCastingSucceeded = !IsFailure(ths.Actor, control, definition, out spellCastingEpiclyFailed);

            if (!EpicFailureAllowed(ths))
            {
                spellCastingEpiclyFailed = false;
            }

            if (!InitialPrep(ths, twoPerson, definition, control, spellCastingSucceeded, spellCastingEpiclyFailed))
            {
                return(false);
            }

            ths.StandardEntry();
            ths.BeginCommodityUpdates();

            if (!SetupAnimation(ths, control, twoPerson))
            {
                return(false);
            }

            control.ConsumeMana(ths.Actor, this, definition);

            if (!PerformResults(ths, "EpicFail", definition, control, spellCastingSucceeded, spellCastingEpiclyFailed))
            {
                mSucceeded = false;
            }

            EventTracker.SendEvent(EventTypeId.kCastSpell, ths.Actor);
            ths.EndCommodityUpdates(mSucceeded);
            ths.StandardExit();
            return(mSucceeded);
        }
コード例 #14
0
ファイル: WitchControl.cs プロジェクト: pepoluan/NRaas
        public override MagicWand InitialPrep(Sim actor, IMagicalDefinition definition, out bool wandCreated)
        {
            actor.SkillManager.AddElement(SkillNames.Spellcasting);
            SpellcastingSkill element = actor.SkillManager.GetElement(SkillNames.Spellcasting) as SpellcastingSkill;

            wandCreated = false;
            return(MagicWand.GetWandToUse(actor, element));
        }
コード例 #15
0
 public Outline(int x, int y, int x2, int y2, MagicWand magicWand, TSPlayer plr, int tileType, int color, bool active, Expression expression)
     : base(x, y, x2, y2, magicWand, plr)
 {
     this.tileType   = tileType;
     this.color      = color;
     this.active     = active;
     this.expression = expression ?? new TestExpression(new Test(t => true));
 }
コード例 #16
0
        /*
         *  Es necesario corroborar que el método RemoveWand implementado efectivamente le quite éste item al mago
         */
        public void TestingRemoveWand()
        {
            Wizard    wizard1 = new Wizard("Phoenix");
            MagicWand wand    = new MagicWand(30, 30);

            wizard1.MagicWand = wand;
            wizard1.RemoveWand();
            Assert.AreEqual(wizard1.MagicWand, null);
        }
コード例 #17
0
        /*
         *  Es necesario corroborar que el método ChangeWand implementado efectivamente cumpla la función esperada,
         *  esto es, reemplazar una MagicWand por una nueva.
         */
        public void TestingChangeWand()
        {
            Wizard wizard1 = new Wizard("Phoenix");

            wizard1.MagicWand = new MagicWand(30, 30);
            MagicWand newMagicWand = new MagicWand(50, 50);

            wizard1.ChangeWand(newMagicWand);
            Assert.AreEqual(newMagicWand, wizard1.MagicWand);
        }
コード例 #18
0
    MagicWandOptions GetWandOptions(int level)
    {
        var opts = MagicWand.GetOptions(level * 0.1f);

        opts.damageLayerMask = LayerMask.GetMask("Player");
        opts.ProjectileLayer = LayerMask.NameToLayer("EnemyProjectile");
        opts.ProjectileTag   = "EnemyProjectile";

        return(opts);
    }
コード例 #19
0
        private static bool PrivateUsePoints(Sim sim, MagicWand wand, int points, OccultTypes type)
        {
            if (!OccultTypeHelper.HasType(sim, type))
            {
                return(false);
            }

            switch (type)
            {
            case OccultTypes.Genie:
                OccultGenie genie = sim.OccultManager.GetOccultType(OccultTypes.Genie) as OccultGenie;
                if (genie != null)
                {
                    genie.MagicPoints.UsePoints(points);
                    (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                    return(true);
                }
                break;

            case OccultTypes.Fairy:
                sim.Motives.ChangeValue(CommodityKind.AuraPower, -points);
                (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                return(true);

            case OccultTypes.Witch:
                if (wand != null)
                {
                    wand.DrainMotive(sim, CommodityKind.MagicFatigue, -points);
                    return(true);
                }
                else
                {
                    float num = (points * DefaultWand.kMotiveDrainMultiplier) * MagicWand.kMoonPhaseMotiveDrainMultiplier[World.GetLunarPhase()];
                    if (sim.BuffManager.HasElement(BuffNames.AnimalFamiliar))
                    {
                        num *= MagicWand.kFamiliarMotiveMultiplier;
                    }
                    sim.Motives.ChangeValue(CommodityKind.MagicFatigue, -num);
                    (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                }
                break;

            case OccultTypes.Unicorn:
                OccultUnicorn unicorn = sim.OccultManager.GetOccultType(OccultTypes.Unicorn) as OccultUnicorn;
                if (unicorn != null)
                {
                    unicorn.MagicPoints.UsePoints(points);
                    (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                    return(true);
                }
                break;
            }

            return(false);
        }
コード例 #20
0
ファイル: LevelManager.cs プロジェクト: Juutis/AKJ8
    private void SpawnWandAt(Vector3 position, float powerLevel)
    {
        if (wandPrefab == null)
        {
            wandPrefab = Resources.Load <MagicWand>("MagicWand");
        }
        MagicWand newWand = Instantiate(wandPrefab, MapGenerator.transform);

        newWand.SetOptions(MagicWand.GetOptions(powerLevel));
        newWand.transform.position = MapGenerator.GetScaled(position);
    }
コード例 #21
0
ファイル: WECommand.cs プロジェクト: Xekep/WorldEdit
 protected WECommand(int x, int y, int x2, int y2, MagicWand magicWand,
                     TSPlayer plr, bool minMaxPoints = true)
 {
     this.plr          = plr;
     this.select       = plr.GetPlayerInfo().Select ?? WorldEdit.Selections["normal"];
     this.x            = x;
     this.x2           = x2;
     this.y            = y;
     this.y2           = y2;
     this.magicWand    = magicWand ?? new MagicWand();
     this.minMaxPoints = minMaxPoints;
 }
コード例 #22
0
 public Shape(int x, int y, int x2, int y2, MagicWand magicWand, TSPlayer plr,
              int shapeType, int rotateType, int flipType, bool wall, bool filled,
              int materialType, Expression expression)
     : base(x, y, x2, y2, magicWand, plr, false)
 {
     this.expression   = expression ?? new TestExpression(new Test(t => true));
     this.shapeType    = shapeType;
     this.rotateType   = rotateType;
     this.flipType     = flipType;
     this.wall         = wall;
     this.filled       = filled;
     this.materialType = materialType;
 }
コード例 #23
0
ファイル: Peacemaker.cs プロジェクト: Pumpk1ns/last-wish
        public MagePeacemaker() : base(AIType.AI_Mage, 5)
        {
            SetStr(40, 60);
            SetDex(40, 60);
            SetInt(220, 300);

            BaseWeapon weapon;

            switch (Utility.Random(2))
            {
            case 0:
                weapon = new Scepter();
                break;

            default:
                weapon = new MagicWand();
                break;
            }
            weapon.Attributes.SpellChanneling = 1;
            AddItem(weapon);

            SetDamageType(ResistanceType.Physical, 0);

            if (Utility.RandomBool())
            {
                SetDamageType(ResistanceType.Cold, 60);
            }
            else
            {
                SetDamageType(ResistanceType.Fire, 60);
            }

            if (Utility.RandomBool())
            {
                SetDamageType(ResistanceType.Energy, 40);
            }
            else
            {
                SetDamageType(ResistanceType.Poison, 40);
            }

            SetSkill(SkillName.EvalInt, 90, 100);
            SetSkill(SkillName.Magery, 90, 100);
            SetSkill(SkillName.Necromancy, 0, 110);
            SetSkill(SkillName.SpiritSpeak, 90, 110);
            SetSkill(SkillName.MagicResist, 90, 120);
            SetSkill(SkillName.Tactics, 50, 70);
            SetSkill(SkillName.Macing, 60, 80);
        }
コード例 #24
0
        static void Main(string[] args)
        {
            var pluginloader = PluginLoader.GetInstance();
            ContainerService containerService = ContainerService.GetInstance();

            pluginloader.LoadPluginContainer();
            IContainer container = containerService.GetContainer(pluginloader.GetListPlugin());

            if (container == null)
            {
                Console.WriteLine("Ошибка получения контейнера");
                Console.ReadLine();
                return;
            }

            var str = "Lord Voldemort";

            container.RegisterInstance <string>(str);

            container.RegisterSingleton <IInformer, ConsoleInformer>();
            var informer  = container.Resolve <IInformer>();
            var informer2 = container.Resolve <IInformer>();

            if (informer == informer2)
            {
                if (informer.Equals(informer2))
                {
                    Console.WriteLine("Это синглтон");
                }
            }
            informer.Notify();
            Console.WriteLine(new string('-', 42));

            container.Register <IIlluminator, MagicWand>();


            var light = container.Resolve <IIlluminator>();

            light.LightUp();
            Console.WriteLine(new string('-', 42));

            var lighter = new MagicWand("Harry");

            container.RegisterInstance <IIlluminator, MagicWand>(lighter);
            light = container.Resolve <IIlluminator>();
            light.LightUp();

            Console.ReadLine();
        }
コード例 #25
0
        public void TestAbilityMagicWand()
        {
            // исходные данные
            IWeapon weapon   = new MagicWand("Супер Магический жезл", 5);
            Hero    actual   = new Hero("Алена", 70, 10, weapon);
            double  expected = 0;


            // получение значения
            actual.Weapon.UseAbility(actual);


            // сравнение ожидаемого результата с полученным
            Assert.AreEqual(expected, actual.Armor);
        }
コード例 #26
0
ファイル: WandInfo.cs プロジェクト: Juutis/AKJ8
    public void UpdateUI(MagicWand wand)
    {
        if (this.wand != wand)
        {
            this.wand  = wand;
            specs.text =
                "Damage: " + wand.options.ProjectileDamage.ToString("0.0") + "\n" +
                "Fire Rate: " + wand.options.fireRate.ToString("0.0") + " per second\n" +
                "Range: " + (wand.options.ProjectileSpeed * wand.options.ProjectileLifeTime).ToString("0.0") + "\n" +
                "Blast Radius: " + wand.options.ProjectileBlastAoE.ToString("0.0") +
                (wand.options.projectilesPerCast > 1 ? "\nShoots " + wand.options.projectilesPerCast + " projectiles" : "");

            icon.color = wand.options.color;
        }
    }
コード例 #27
0
            public override bool Test(Sim a, Sim target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
            {
                MagicControl control = MagicControl.GetBestControl(a, this);

                if (control == null)
                {
                    greyedOutTooltipCallback = Common.DebugTooltip("No Control");
                    return(false);
                }

                if (a == target)
                {
                    return(false);
                }

                if (!CastSpellEx.CommonSpellTests(a, target, isAutonomous, ref greyedOutTooltipCallback))
                {
                    return(false);
                }

                if (target.BuffManager.HasElement(BuffNames.ToadSim))
                {
                    return(false);
                }

                if (((target.OccultManager != null) && target.OccultManager.HasAnyOccultType()) || target.SimDescription.IsGhost)
                {
                    greyedOutTooltipCallback = delegate
                    {
                        return(MagicWand.LocalizeString(a.IsFemale, "ImmuneToSpell", new object[0x0]));
                    };
                    return(false);
                }

                if (target.SimDescription.IsVisuallyPregnant)
                {
                    greyedOutTooltipCallback = delegate { return(MagicWand.LocalizeString(a.IsFemale, "ImmuneToSpell", new object[0x0])); };
                    return(false);
                }

                if (target.Service is GrimReaper)
                {
                    greyedOutTooltipCallback = delegate { return(MagicWand.LocalizeString(a.IsFemale, "ImmuneToSpell", new object[0x0])); };
                    return(false);
                }

                return(true);
            }
コード例 #28
0
ファイル: FloodFillDemo.cs プロジェクト: brezza92/PixelFarm
        public FloodFillDemo()
        {
            //
            _magicWandConfigs = new MagicWandConfigGroup();

            BackgroundColor = Color.White;

            _defaultImg = new MemBitmap(400, 300);

            AggPainter p = AggPainter.Create(_defaultImg);

            p.Clear(Color.White);
            p.FillColor = Color.Black;
            p.FillEllipse(20, 20, 30, 30);


            for (int i = 0; i < 20; i++)
            {
                p.StrokeColor = Color.Black;
                p.DrawEllipse(i * 10, i * 10, 20, 20);
            }

            //
            this.PixelSize = 32;
            this.Gamma     = 1;
            _tolerance     = 30;

            _floodFill = new ColorBucket(Color.Red, _tolerance);
            _magicWand = new MagicWand(_tolerance);

            //
            //_lionPng = MemBitmapExtensions.LoadBitmap("../Data/lion1_v2_2.png");
            //_lionPng =  MemBitmapExtensions.LoadBitmap("../Data/lion1_v2_4_1.png");
            _lionPng = MemBitmapExt.LoadBitmap("../Data/lion1.png");
            //_lionPng =  MemBitmapExtensions.LoadBitmap("../Data/lion_1_v3_2.png");
            //_lionPng = MemBitmapExtensions.LoadBitmap("../Data/glyph_a.png");
            _starsPng    = MemBitmapExt.LoadBitmap("../Data/stars.png");
            _test_glyphs = MemBitmapExt.LoadBitmap("../Data/test_glyphs.png");
            _rect01      = MemBitmapExt.LoadBitmap("../Data/rect01.png");
            //_v_shape =  MemBitmapExtensions.LoadBitmap("../Data/shape_v.png");
            //_v_shape = MemBitmapExtensions.LoadBitmap("../Data/shape_v3.png");
            _bmpToFillOn = _defaultImg;

            OutlineReconstruction = true;
            WithOutlineSimplifier = true;
        }
コード例 #29
0
ファイル: MagicControl.cs プロジェクト: marlenemolnar/NRaas
        public virtual MagicWand InitialPrep(Sim actor, IMagicalDefinition definition, out bool wandCreated)
        {
            IGameObject toAdd = GlobalFunctions.CreateObject("magicHandsLHR", ProductVersion.EP7, Vector3.OutOfWorld, 0x0, Vector3.UnitZ, null, null);

            MagicWand wand = toAdd as MagicWand;

            if (wand == null)
            {
                toAdd.Destroy();
                wandCreated = false;
            }
            else
            {
                wandCreated = true;
            }

            return(wand);
        }
コード例 #30
0
        public string CreateWeapon(List <string> args)
        {
            var    heroName     = args[0];
            var    weaponType   = args[1];
            var    weaponName   = args[2];
            var    strength     = int.Parse(args[3]);
            var    agility      = int.Parse(args[4]);
            var    intelligence = int.Parse(args[5]);
            string result       = "";

            if (heroes.ContainsKey(heroName))
            {
                Weapon weapon = null;
                switch (weaponType)
                {
                case "Bow":
                {
                    weapon = new Bow(weaponName, strength, agility, intelligence);
                    break;
                }

                case "MagicWand":
                {
                    weapon = new MagicWand(weaponName, strength, agility, intelligence);
                    break;
                }

                case "Sword":
                {
                    weapon = new Sword(weaponName, strength, agility, intelligence);
                    break;
                }

                default: return($"Invalid type weapon: {weaponType}.");
                }
                this.heroes[heroName].Weapon = weapon;
                result = $"Successfully armed hero {heroName} with weapon {weaponType}!";
            }
            else
            {
                result = $"Hero with name: {heroName} does not exist!";
            }
            return(result);
        }
コード例 #31
0
ファイル: MagicPointControl.cs プロジェクト: Robobeurre/NRaas
        private static bool PrivateUsePoints(Sim sim, MagicWand wand, int points, OccultTypes type)
        {
            if (!OccultTypeHelper.HasType(sim, type)) return false;

            switch (type)
            {
                case OccultTypes.Genie:
                    OccultGenie genie = sim.OccultManager.GetOccultType(OccultTypes.Genie) as OccultGenie;
                    if (genie != null)
                    {
                        genie.MagicPoints.UsePoints(points);
                        (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                        return true;
                    }
                    break;
                case OccultTypes.Fairy:
                    sim.Motives.ChangeValue(CommodityKind.AuraPower, -points);
                    (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                    return true;
                case OccultTypes.Witch:
                    if (wand != null)
                    {
                        wand.DrainMotive(sim, CommodityKind.MagicFatigue, -points);
                        return true;
                    }
                    else
                    {
                        float num = (points * DefaultWand.kMotiveDrainMultiplier) * MagicWand.kMoonPhaseMotiveDrainMultiplier[World.GetLunarPhase()];
                        if (sim.BuffManager.HasElement(BuffNames.AnimalFamiliar))
                        {
                            num *= MagicWand.kFamiliarMotiveMultiplier;
                        }
                        sim.Motives.ChangeValue(CommodityKind.MagicFatigue, -num);
                        (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                    }
                    break;
                case OccultTypes.Unicorn:
                    OccultUnicorn unicorn = sim.OccultManager.GetOccultType(OccultTypes.Unicorn) as OccultUnicorn;
                    if (unicorn != null)
                    {
                        unicorn.MagicPoints.UsePoints(points);
                        (Sims3.UI.Responder.Instance.HudModel as HudModel).FlashMagicMotiveBar();
                        return true;
                    }
                    break;
            }

            return false;
        }