/// <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); }
/// <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); } }
/// <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()); }