示例#1
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <remarks>Every initial values come from <see cref="Constants.Player"/>.</remarks>
 internal Player() : base(
         0,
         Constants.Player.INITIAL_X,
         Constants.Player.INITIAL_Y,
         Constants.Player.SPRITE_WIDTH,
         Constants.Player.SPRITE_HEIGHT,
         Constants.Player.MAXIMAL_LIFE_POINTS,
         Constants.Player.HIT_LIFE_POINT_COST,
         Constants.Player.INITIAL_SPEED,
         Constants.Player.RECOVERY_TIME,
         nameof(Filename.Player),
         nameof(Filename.PlayerRecovery),
         Direction.Right)
 {
     NewScreenEntrance      = null;
     Inventory              = new Inventory();
     SwordHitSprite         = null;
     _hitElapser            = null;
     _currentWeaponHitDelay = Constants.Player.SWORD_HIT_DELAY;
     _movementTimeManager   = new Elapser(this, ElapserUse.PlayerMovement);
     _renderShield          = DefaultRender.BasicImage(this, nameof(Filename.PlayerShield));
     _renderRecoveryShield  = DefaultRender.AnimatedBasicImage(this,
                                                               nameof(Filename.PlayerRecoveryShield), ElapserUse.LifeSpriteRecovery, Constants.RECOVERY_BLINK_DELAY);
     _renderSword         = DefaultRender.BasicImage(this, nameof(Filename.PlayerSword));
     _renderRecoverySword = DefaultRender.AnimatedBasicImage(this,
                                                             nameof(Filename.PlayerRecoverySword), ElapserUse.LifeSpriteRecovery, Constants.RECOVERY_BLINK_DELAY);
 }
示例#2
0
        /// <summary>
        /// Computes and gets a <see cref="Renders.IRender"/> from given properties.
        /// </summary>
        /// <param name="renderType"><see cref="Enums.RenderType"/></param>
        /// <param name="renderProperties">Datas required to initialize the <see cref="Renders.IRender"/>.</param>
        /// <returns><see cref="Renders.IRender"/></returns>
        protected IRender GetRenderFromValues(RenderType renderType, params string[] renderProperties)
        {
            switch (renderType)
            {
            case RenderType.ImageMosaic:
                return(DefaultRender.ImageWithMosaic(this, renderProperties[0]));

            case RenderType.Image:
                return(DefaultRender.BasicImage(this, renderProperties[0]));

            case RenderType.Plain:
                return(DefaultRender.PlainColor(this, renderProperties[0]));

            case RenderType.ImageAnimated:
                return(DefaultRender.AnimatedBasicImage(this, renderProperties[0], (ElapserUse)System.Convert.ToInt32(renderProperties[1]), System.Convert.ToDouble(renderProperties[2])));

            case RenderType.ImageMosaicAnimated:
                return(DefaultRender.AnimatedImageWithMosaic(this, renderProperties[0], (ElapserUse)System.Convert.ToInt32(renderProperties[1]), System.Convert.ToDouble(renderProperties[2])));

            default:
                throw new System.NotImplementedException(Messages.NotImplementedRenderExceptionMessage);
            }
        }
示例#3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="itemType"><see cref="ItemType"/>.</param>
 /// <param name="quantity"><see cref="Quantity"/>; ignored if the item is marked as unique.</param>
 internal InventoryItem(ItemType itemType, int quantity)
 {
     BaseItem = Item.GetItem(itemType);
     Quantity = BaseItem.Unique ? 1 : quantity;
     Render   = DefaultRender.BasicImage(null, BaseItem.Type.ToString());
 }