/// <summary>
 /// Initialise la vie de l'acteur à sa valeur maximale donnée.
 /// Si showingLife est vrai, l'acteur affichera sa barre de vie au-dessus de lui un court instant lorsqu'elle
 /// est modifiée.
 /// </summary>
 /// <param name="position"> La position de l'acteur dans le monde </param>
 /// <param name="lifeMax"> La vie maximale de l'acteur </param>
 /// <param name="showingLife"> Indique si il faut afficher la vie de l'acteur. </param>
 public LivingActor(Point position, int lifeMax, bool showingLife = false) : base(position)
 {
     Life = new BoundedDouble(lifeMax);
     if (!showingLife)
     {
         return;
     }
     _lifeBar    = new ProgressingSprite(ColorBar, EmptyBar, PercentMerge);
     _lifeSprite = new SpriteHandler(this, _lifeBar, new FadingTransparency(FadingMs));
 }
 /// <summary>
 /// Affiche l'acteur et sa barre de vie si son affichage a été demandé à la création de l'acteur.
 /// </summary>
 /// <param name="shift"> La position relative pour afficher l'acteur </param>
 /// <param name="g"> L'objet permettant de dessiner </param>
 public override void Draw(Point shift, Graphics g)
 {
     base.Draw(shift, g);
     if (_lifeSprite == null)
     {
         return;
     }
     if (Collision != null)
     {
         shift = shift + new Point(0, -Collision.Hitbox.Height * LifebarHeight);
     }
     _lifeSprite.Draw(shift + Position, g);
 }
示例#3
0
        /// <summary>
        /// Lorsque le sort est lancé, l'incantation de son possesseur commence, ce qui lance le type d'animation
        /// correspondant et lui interdit de lancer d'autres sort sdurant son incantation. Selon les données du sort,
        /// il est également rendu immobile.
        /// </summary>
        /// <param name="target"> La cible du sort </param>
        public virtual void Cast(Point target)
        {
            _currentMs         = 0;
            _target            = target;
            _owner.Orientation = _owner.Position.GetOrientation(target);

            _owner.LockCasts();
            if (!_spellData.CanMove)
            {
                _owner.LockMoves();
            }
            _owner.CreateState(StateData);
            (_owner.SpriteHandler as AnimationHandler)?.
            PlayAnimation(_spellData.AnimationType, false, _spellData.CastTimeMs);
        }
示例#4
0
 /// <summary>
 /// Indique si le sort peut être lancé par son possesseur.
 /// </summary>
 /// <param name="target"> La cible du sort </param>
 /// <returns> Vrai si le sort peut être lancé </returns>
 public virtual bool Castable(Point target)
 {
     return(!_owner.CastsLocked() && CurrentCharges >= 1);
 }