Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (spell == CurrentSpell.Fireball)
        {
            var obj = Instantiate(fireball, headCamera.transform.position + new Vector3(headCamera.transform.forward.x, 0, headCamera.transform.forward.z) * fireballOffset, Quaternion.Euler(headCamera.transform.eulerAngles));
            spell = CurrentSpell.None;
        }

        if (spell == CurrentSpell.LightningBolt)
        {
            var obj = Instantiate(lightningBolt, headCamera.transform.position + new Vector3(headCamera.transform.forward.x, 0, headCamera.transform.forward.z) * lightningBoltOffset, Quaternion.Euler(headCamera.transform.eulerAngles));
            spell = CurrentSpell.None;
        }

        if (spell == CurrentSpell.MiniWard)
        {
            var obj = Instantiate(miniWard, headCamera.transform.position + new Vector3(headCamera.transform.forward.x, 0, headCamera.transform.forward.z) * lightningBoltOffset, Quaternion.Euler(headCamera.transform.eulerAngles));
            spell = CurrentSpell.None;
        }

        if (spell == CurrentSpell.AirBlast)
        {
            var obj = Instantiate(airBlast, headCamera.transform.position + new Vector3(headCamera.transform.forward.x, 0, headCamera.transform.forward.z) * lightningBoltOffset, Quaternion.Euler(Quaternion.identity.x, headCamera.transform.eulerAngles.y, Quaternion.identity.z));
            spell = CurrentSpell.None;
        }

        if (canLevitate)
        {
            this.GetComponent <NewLevitate>().enabled = true;
        }
        else
        {
            this.GetComponent <NewLevitate>().enabled = false;
        }
    }
Esempio n. 2
0
 public override void OnBodiesSelected(List <Body> bodies, InputManager.MouseButton button)
 {
     if (CurrentSpell != null && CurrentSpell.Mode == Spell.SpellMode.SelectEntities)
     {
         CurrentSpell.OnEntitiesSelected(MagicMenu.SpellTree.Tree, bodies);
     }
 }
Esempio n. 3
0
    private void CastSpell(ISpellGesture gesture)
    {
        //If attempting to cast and CurrentSpell isn't activated, activate
        //Otherwise, adjust
        if (gesture.IsCast && !CurrentSpell.IsActive)
        {
            bool success = CurrentSpell.Activate();

            //Failed to activate spell, so return to Adjust state.
            if (!success)
            {
                State = SpellCastingState.Adjust;
                return;
            }

            //If the spell isn't channeled, prepare to cast a new spell
            if (success && !CurrentSpell.IsChanneled)
            {
                CurrentSpell = null;
                SpellElement = SpellElement.None;
                SpellTier    = SpellTier.None;
                State        = SpellCastingState.Select;
            }
            else
            {
                StartCoroutine(MonitorChanneledSpell());
            }
        }
        else
        {
            AdjustSpell(gesture);
        }
    }
Esempio n. 4
0
        public void UltimaImpact_Callback(Point3D impactloc)
        {
            CurrentSpell.Clear();
            var queue = new EffectQueue();

            queue.Deferred = true;

            BaseExplodeEffect e = ExplodeFX.Smoke.CreateInstance(
                impactloc, Map, 8, 0, TimeSpan.FromMilliseconds(1000 - ((10) * 100)), null, () =>
            {
                foreach (Mobile mobile in AcquireAllTargets(impactloc, 8))
                {
                    if (mobile is PlayerMobile)
                    {
                        mobile.Damage(UltimaDamage, this);
                    }
                    else
                    {
                        mobile.Damage(UltimaPetDamage, this);
                    }
                }
            });

            e.Send();

            queue.Process();
            CantWalk = false;
        }
Esempio n. 5
0
 public override void OnVoxelsSelected(List <Voxel> voxels, InputManager.MouseButton button)
 {
     if (CurrentSpell != null && (CurrentSpell.Mode == Spell.SpellMode.SelectFilledVoxels || CurrentSpell.Mode == Spell.SpellMode.SelectEmptyVoxels))
     {
         CurrentSpell.OnVoxelsSelected(MagicMenu.SpellTree.Tree, voxels);
     }
 }
Esempio n. 6
0
        public override void Update(DwarfGame game, DwarfTime time)
        {
            Player.BodySelector.Enabled = false;
            Player.VoxSelector.Enabled  = false;

            if (Player.IsCameraRotationModeActive())
            {
                Player.VoxSelector.Enabled = false;
                Player.World.SetMouse(null);
                Player.BodySelector.Enabled = false;
                return;
            }
            else
            {
                Player.World.SetMouse(Player.World.MousePointer);
            }

            if (CurrentSpell != null)
            {
                CurrentSpell.Update(time, Player.VoxSelector, Player.BodySelector);
            }

            if (Player.World.IsMouseOverGui)
            {
                Player.World.SetMouse(Player.World.MousePointer);
            }
            else
            {
                Player.World.SetMouse(new Gum.MousePointer("mouse", 1, 8));
            }
        }
Esempio n. 7
0
        public override void OnThink()
        {
            base.OnThink();

            DateTime now = DateTime.UtcNow;

            if (!this.InCombat())
            {
                return;
            }

            if (now > _NextCast)
            {
                _NextCast = now + CastInterval;

                if (CurrentSpell == null)
                {
                    CurrentSpell = new List <Timer>();
                }

                if (now > _NextShadowStep)
                {
                    _NextShadowStep = now + ShadowStepInterval;

                    CurrentSpell.Clear();

                    HideEffect();
                    CantWalk  = true;
                    Hidden    = true;
                    Blessed   = true;
                    Combatant = null;
                    CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(1), BackStab_Callback));
                }
            }
        }
Esempio n. 8
0
 public override void Render(DwarfGame game, GraphicsDevice graphics, DwarfTime time)
 {
     if (CurrentSpell != null)
     {
         CurrentSpell.Render(time);
     }
 }
Esempio n. 9
0
        public override void OnThink()
        {
            base.OnThink();

            DateTime now = DateTime.UtcNow;

            if (!this.InCombat())
            {
                return;
            }

            if (now > _NextCast)
            {
                _NextCast = now + CastInterval;

                if (CurrentSpell == null)
                {
                    CurrentSpell = new List <Timer>();
                }

                if (now > _NextShadowStep)
                {
                    _NextShadowStep = now + ShadowStepInterval;

                    CurrentSpell.Clear();

                    CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(1), Throw_Poop));
                }
            }
        }
Esempio n. 10
0
        public override void OnThink()
        {
            base.OnThink();

            DateTime now = DateTime.UtcNow;

            if (!this.InCombat())
            {
                return;
            }

            if (now > _NextCast)
            {
                _NextCast = now + CastInterval;

                if (CurrentSpell == null)
                {
                    CurrentSpell = new List <Timer>();
                }

                if (now > _NextShadowStep && CurrentSpell.Count == 0)
                {
                    _NextShadowStep = now + ShadowStepInterval;

                    CurrentSpell.Clear();

                    HideEffect();
                    CantWalk  = true;
                    Hidden    = true;
                    Blessed   = true;
                    Combatant = null;
                    CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(1), BackStab_Callback));
                }
                else if (now > _NextUltima && CurrentSpell.Count == 0)
                {
                    _NextUltima = now + UltimaInterval;

                    CurrentSpell.Clear();

                    CantWalk  = true;
                    Combatant = null;
                    Say("*Begins to cast Ultima*");
                    AnimateSpell();
                    CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(2), Ultima_Callback));
                }
                else if (now > _NextMirrorImage && CurrentSpell.Count == 0)
                {
                    _NextMirrorImage = now + MirrorImageInterval;

                    CurrentSpell.Clear();

                    CantWalk  = true;
                    Combatant = null;
                    Say("*Begins to cast Mirror Image*");
                    AnimateSpell();
                    CurrentSpell.Add(Timer.DelayCall(TimeSpan.FromSeconds(2), MirrorImage_Callback));
                }
            }
        }
Esempio n. 11
0
        internal CurrentSpell GetExecution(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Execution = true;

            return(spell);
        }
Esempio n. 12
0
        internal CurrentSpell TurnOnCrit(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name = "critical";

            return(spell);
        }
Esempio n. 13
0
        internal CurrentSpell Incineration(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Execution = true;

            return(spell);
        }
Esempio n. 14
0
        public CurrentSpell GetArmorUp(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name     = "armorup";
            spell.GetArmor = 200;

            return(spell);
        }
Esempio n. 15
0
        internal CurrentSpell GetSlash(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name   = "BLADE SLASH";
            spell.Damage = warrior.Damage * 2;

            return(spell);
        }
Esempio n. 16
0
        internal CurrentSpell GetShieldSlam(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name   = "SHIELD SLAM";
            spell.Damage = warrior.Armor;

            return(spell);
        }
Esempio n. 17
0
        public CurrentSpell GetArcaneBlast(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Name     = "ARCANE BLAST";
            spell.Damage   = mage.Spellpower * 3;
            spell.ManaCost = 90;
            return(spell);
        }
Esempio n. 18
0
        internal CurrentSpell GetHit(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name   = "AXE CHOP";
            spell.Damage = 2 * warrior.Damage;

            return(spell);
        }
Esempio n. 19
0
        internal CurrentSpell GetMaceSwing(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name   = "MACE SWING";
            spell.Damage = warrior.Damage * 1.5;

            return(spell);
        }
Esempio n. 20
0
        internal CurrentSpell GetWindFury(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name     = "WINDFURY";
            spell.Damage   = warrior.Damage * 5;
            spell.Cooldown = 4;

            return(spell);
        }
Esempio n. 21
0
        internal CurrentSpell GetWildAxes(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name     = "WILD AXES";
            spell.Damage   = warrior.Damage * 4;
            spell.Cooldown = 3;

            return(spell);
        }
Esempio n. 22
0
        public CurrentSpell GetFireBlast(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Name     = "FIRE BLAST";
            spell.Damage   = mage.Spellpower * 2;
            spell.ManaCost = 120;

            return(spell);
        }
Esempio n. 23
0
        public CurrentSpell GetPolymorph(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Name     = "polymorph";
            spell.ManaCost = 100;
            spell.Cooldown = 4;

            return(spell);
        }
Esempio n. 24
0
        public CurrentSpell GetManaReg(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Name     = "manaregeneration";
            spell.GetMana  = 300;
            spell.Cooldown = 3;

            return(spell);
        }
Esempio n. 25
0
        internal CurrentSpell GetHibernate(Player warrior)
        {
            var spell = new  CurrentSpell();

            spell.Name     = "hibernate";
            spell.GetHP    = warrior.HealthRegen * 4;
            spell.Cooldown = 3;

            return(spell);
        }
Esempio n. 26
0
        internal CurrentSpell GetMirrorImage(Player warrior)
        {
            var spell = new CurrentSpell();

            spell.Name     = "mirrorimage";
            spell.Damage   = warrior.Damage;
            spell.Cooldown = 3;

            return(spell);
        }
Esempio n. 27
0
        internal CurrentSpell GetFrozenGround(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Name     = "frozenground";
            spell.Damage   = mage.Spellpower;
            spell.ManaCost = 150;
            spell.Cooldown = 4;

            return(spell);
        }
Esempio n. 28
0
        public CurrentSpell GetPyroBlast(Player mage)
        {
            var currentSpell = new CurrentSpell();

            currentSpell.Name     = "PYRO BLAST";
            currentSpell.Damage   = mage.Spellpower * 5;
            currentSpell.Cooldown = 4;
            currentSpell.ManaCost = 250;

            return(currentSpell);
        }
Esempio n. 29
0
        internal CurrentSpell GetFrostBolt(Player mage)
        {
            var spell = new CurrentSpell();

            spell.Name       = "FROST BOLT";
            spell.FrostArmor = true;
            spell.Damage     = mage.Spellpower * 2;
            spell.ManaCost   = 150;

            return(spell);
        }
Esempio n. 30
0
        public void MirrorImage_Callback()
        {
            HideEffect();
            Hidden   = true;
            CantWalk = true;
            Blessed  = true;
            var mob1 = new LockeColeMirrorImage();
            var mob2 = new LockeColeMirrorImage();
            var mob3 = new LockeColeMirrorImage();

            mob1.Hidden   = true;
            mob1.CantWalk = true;
            mob1.Blessed  = true;
            mob2.Hidden   = true;
            mob2.CantWalk = true;
            mob2.Blessed  = true;
            mob3.Hidden   = true;
            mob3.CantWalk = true;
            mob3.Blessed  = true;

            SetHits(Hits);

            Timer.DelayCall(TimeSpan.FromSeconds(2), () =>
            {
                mob1.MoveToWorld(Location, Map);
                mob2.MoveToWorld(Location, Map);
                mob3.MoveToWorld(Location, Map);

                mob1.SetHits(MirrorImageHealth);
                mob2.SetHits(MirrorImageHealth);
                mob3.SetHits(MirrorImageHealth);

                HideEffect();
                mob1.HideEffect();
                mob2.HideEffect();
                mob3.HideEffect();

                Hidden   = false;
                CantWalk = false;
                Blessed  = false;

                mob1.Hidden   = false;
                mob1.CantWalk = false;
                mob1.Blessed  = false;
                mob2.Hidden   = false;
                mob2.CantWalk = false;
                mob2.Blessed  = false;
                mob3.Hidden   = false;
                mob3.CantWalk = false;
                mob3.Blessed  = false;

                CurrentSpell.Clear();
            });
        }