//public override bool IsInEffectiveRange(Destructible target) //{ // var dist = target.HitDistance(MediatorOffsetedPosition); // if (dist - target.HitRadius > 0.7f) return false; // return true; //} protected override void StartEffectivePerform() { base.StartEffectivePerform(); //Effects.LightEffect1 c = new Client.Game.Map.Effects.LightEffect1 //{ // Translation = Mediator.Position, // Rotation = Quaternion.RotationMatrix(Matrix.RotationZ(-(float)Math.PI / 2f) * Matrix.RotationX(-(float)Math.PI / 2f) * Matrix.RotationQuaternion(Mediator.Rotation)) //}; Effects.GhostBulletPulse ghostBulletPulse = new Effects.GhostBulletPulse { Translation = Mediator.Position }; Game.Instance.Scene.Add(ghostBulletPulse); Effects.GhostBulletHitGroundEffect ghostBulletHitGroundEffect = new Client.Game.Map.Effects.GhostBulletHitGroundEffect(0.5f) { Translation = Mediator.Position }; Game.Instance.Scene.Add(ghostBulletHitGroundEffect); Effects.MuzzleFlashEffect2 e = new Client.Game.Map.Effects.MuzzleFlashEffect2 { Translation = Mediator.Translation }; Game.Instance.Scene.Add(e); foreach (var v in Game.Instance.Mechanics.InRange.GetInRange(MediatorOffsetedPosition, (EffectiveRange + 1) * 2)) if (v.Entity.CanBeDestroyed && IsValidTarget(v.Entity) && v.Entity is NPC) ((NPC)v.Entity).MakeAwareOfUnit(Performer); }
protected override void StartEffectivePerform() { base.StartEffectivePerform(); //Effects.LightEffect1 c = new Client.Game.Map.Effects.LightEffect1 //{ // Translation = Mediator.Position, // Rotation = Mediator.Rotation //}; //Game.Instance.Scene.Add(c); var sm = Program.Instance.SoundManager; sm.GetSFX(Client.Sound.SFX.BlasterFireHitGround1).Play(new Sound.PlayArgs { Position = Mediator.Translation, Velocity = Vector3.Zero }); Effects.MuzzleFlashEffect2 e1 = new Client.Game.Map.Effects.MuzzleFlashEffect2 { Translation = Mediator.Translation }; Game.Instance.Scene.Add(e1); Vector3 position = Mediator.Translation; if (TargetEntity != null) position = TargetEntity.Position; Effects.BlasterExplosionWave e2 = new Client.Game.Map.Effects.BlasterExplosionWave(2) { Translation = position }; Game.Instance.Scene.Add(e2); Effects.BlasterExplosion e3 = new Client.Game.Map.Effects.BlasterExplosion { Translation = position }; Game.Instance.Scene.Add(e3); }