예제 #1
0
        public override void DoAfterAction()
        {
            if (Owner.Status == ObjectStatus.Dead && _Enabled)
            {
                if (FadeTime.IsFull)
                {
                    Affix    = SpecialStatus.None;
                    _Enabled = false;
                }
                else
                {
                    if (FinelScale != 1)
                    {
                        Owner.Layout.Scale = _BaseScale * (1F - FadeTime.GetRatio() * (1F - FinelScale));
                    }

                    if (FinelOpacity != 1)
                    {
                        Owner.DrawObject.Colors.Opacity = _BaseOpacity * (1F - FadeTime.GetRatio() * (1F - FinelOpacity));
                    }
                    FadeTime.Value += Scene.SceneIntervalOfRound;
                }
            }

            base.DoAfterAction();
        }
예제 #2
0
 public override void Action()
 {
     if (DiffusionTime.IsFull)
     {
         if (FadeTime.IsFull)
         {
             Kill(null, ObjectDeadType.LifeEnd);
         }
         else
         {
             DrawObject.Colors.Opacity = FadeOpacity * (1 - FadeTime.GetRatio());
             FadeTime.Value           += Scene.SceneIntervalOfRound;
             base.Action();
         }
     }
     else
     {
         Layout.Width              = BaseWidth + (int)((DiffusionWidth - BaseWidth) * DiffusionTime.GetRatio());
         Layout.Height             = BaseHeight + (int)((DiffusionWidth - BaseWidth) * DiffusionTime.GetRatio());
         DrawObject.Colors.Opacity = BaseOpacity + ((DiffusionOpacity - BaseOpacity) * DiffusionTime.GetRatio());
         DiffusionTime.Value      += Scene.SceneIntervalOfRound;
         base.Action();
     }
 }