예제 #1
0
 protected override void StartPerform()
 {
     base.StartPerform();
     // To prevent units who are striking from being "pushed" by the units behind. Kind of a hax
     Performer.PhysicalWeight += 100000;
     Performer.PlayAnimation(UnitAnimations.Cast, TotalDuration);
 }
예제 #2
0
        protected override void StartEffectivePerform()
        {
            base.StartEffectivePerform();
            // Time we want him to fly
            // 0 = v t + a t^2 / 2
            // a = -9.82
            // v = - a t / 2 = 5t

            // Distance
            // s = (performer - target) = v t
            // v = s / t

            var d = (Performer.Position - TargetUnit.Position).Length();

            float t = d / 9;

            float vxy = d / t;
            float vz  = 5 * t;

            var v = Common.Math.Vector3FromAngleXY(Performer.Orientation);

            Performer.MotionUnit.VelocityImpulse((v * vxy + Vector3.UnitZ * vz));
            Performer.PlayAnimation(UnitAnimations.Run, t * 2);
            EffectiveDuration = t * 2;
        }
예제 #3
0
 protected override void StartPerform()
 {
     base.StartPerform();
     Performer.PlayAnimation(UnitAnimations.Wrath);
     Performer.Scene.Add(chargeupEffect = new Effects.DemonLordWrathChargeup
     {
         Translation = Performer.Translation
     });
 }
예제 #4
0
 protected override void StartPerform()
 {
     base.StartPerform();
     Performer.PlayAnimation(UnitAnimations.MeleeThrust, TotalDuration);
     Program.Instance.SoundManager.GetSFX(Client.Sound.SFX.Horn1).Play(new Sound.PlayArgs
     {
         GetPosition = () => { return(Performer.Position); },
         GetVelocity = () => { return(Vector3.Zero); }
     });
 }
예제 #5
0
 protected override void StartPerform()
 {
     base.StartPerform();
     // To prevent units who are striking from being "pushed" by the units behind. Kind of a hax
     Performer.PhysicalWeight += 100000;
     Performer.PlayAnimation(UnitAnimations.MeleeThrust, TotalDuration);
     Program.Instance.SoundManager.GetSoundResourceGroup(Program.Instance.SoundManager.GetSFX(SFX.DemonLordAttack1), Program.Instance.SoundManager.GetSFX(SFX.DemonLordAttack2)).Play(new PlayArgs {
         Position = Performer.Translation, Velocity = Vector3.Zero
     });
 }
예제 #6
0
        protected override void StartPerform()
        {
            base.StartPerform();
            Performer.PlayAnimation(UnitAnimations.MeleeThrust, TotalDuration);
            var sm = Program.Instance.SoundManager;

            sm.GetSFX(Client.Sound.SFX.DogBite1).Play(new Sound.PlayArgs
            {
                Position = Performer.Position,
                Velocity = Vector3.Zero
            });
        }
예제 #7
0
        protected override void StartPerform()
        {
            base.StartPerform();
            Performer.PlayAnimation(UnitAnimations.BullReady);

            var sm = Program.Instance.SoundManager;

            sm.GetSFX(Client.Sound.SFX.Charge1).Play(new Sound.PlayArgs
            {
                Position = Performer.Position,
                Velocity = Vector3.Zero
            });
        }
예제 #8
0
        protected override void StartPerform()
        {
            base.StartPerform();
            weightAdded = 0;
            // To prevent units who are striking from being "pushed" by the units behind. Kind of a hax
            weightAdded = 100000;
            Performer.PhysicalWeight += weightAdded;
            Performer.PlayAnimation(UnitAnimations.Cast, TotalDuration);
            //Game.Instance.Interface.AddChild(new ScrollingCombatText
            //{
            //    Text = "Start",
            //    WorldPosition = Performer.Translation + Performer.HeadOverBarHeight * Vector3.UnitZ
            //});

            Program.Instance.SoundManager.GetSFX(Client.Sound.SFX.CommanderBuffShout1).Play(new Sound.PlayArgs
            {
                Position = Performer.Position,
                Velocity = Vector3.Zero
            });
        }
예제 #9
0
 protected override void StartPerform()
 {
     base.StartPerform();
     Performer.PlayAnimation(UnitAnimations.MeleeThrust, TotalDuration);
 }
예제 #10
0
 protected override void StartPerform()
 {
     base.StartPerform();
     Performer.PlayAnimation(UnitAnimations.Cast);
 }
예제 #11
0
 protected override void StartPerform()
 {
     base.StartPerform();
     Performer.PlayAnimation(UnitAnimations.Wrath);
     units.Clear();
 }
예제 #12
0
 protected override void StartPerform()
 {
     base.StartPerform();
     Performer.Orientation = (float)Common.Math.AngleFromVector3XY(TargetEntity.Position - Performer.Position);
     Performer.PlayAnimation(UnitAnimations.BashGround, TotalDuration);
 }