Example #1
0
 private void UpdateFailEffect()
 {
     if (_failEffect == null) return;
     // When the emitter is finished, stop the peng so that its particles don't fall
     // outside its visibility radius.
     if (_failEffect.Emitter.Finished) _failEffect.Move = Vector2.Zero;
     if (_failEffect.Dead) _failEffect = null;
 }
Example #2
0
 protected override void ShowFiringFailedEffect()
 {
     if (Owner == null) return;
     Gob.CreateGob<Gobs.Peng>(Owner.Game, _blinkFailTravelEffect, peng =>
     {
         var pengMove = GetBlinkTargetAndMove().Item2 / _blinkMoveSpeed * _blinkFailTravelEffectSpeed;
         peng.ResetPos(Owner.Pos, pengMove, Owner.Rotation);
         var flyTime = (_blinkDistance - 50) / _blinkFailTravelEffectSpeed; // It looks better if it doesn't travel the full blink distance.
         peng.Emitter.NumberToCreate = (int)Math.Round(flyTime * peng.Emitter.EmissionFrequency);
         peng.MoveType = MoveType.Kinematic;
         peng.VisibilityLimitedTo = PlayerOwner;
         _failEffect = peng;
         Owner.Arena.Gobs.Add(peng);
     });
     Gob.CreateGob<Gobs.Peng>(Owner.Game, _blinkFailTargetEffect, peng =>
     {
         peng.ResetPos(GetBlinkTargetAndMove().Item1, Vector2.Zero, Owner.Rotation);
         peng.VisibilityLimitedTo = PlayerOwner;
         Owner.Arena.Gobs.Add(peng);
     });
 }