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); }
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; }
protected override void StartPerform() { base.StartPerform(); Performer.PlayAnimation(UnitAnimations.Wrath); Performer.Scene.Add(chargeupEffect = new Effects.DemonLordWrathChargeup { Translation = Performer.Translation }); }
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); } }); }
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 }); }
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 }); }
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 }); }
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 }); }
protected override void StartPerform() { base.StartPerform(); Performer.PlayAnimation(UnitAnimations.MeleeThrust, TotalDuration); }
protected override void StartPerform() { base.StartPerform(); Performer.PlayAnimation(UnitAnimations.Cast); }
protected override void StartPerform() { base.StartPerform(); Performer.PlayAnimation(UnitAnimations.Wrath); units.Clear(); }
protected override void StartPerform() { base.StartPerform(); Performer.Orientation = (float)Common.Math.AngleFromVector3XY(TargetEntity.Position - Performer.Position); Performer.PlayAnimation(UnitAnimations.BashGround, TotalDuration); }