Beispiel #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <remarks>
 /// Constructor. Most often <see cref="RB.PackedSpriteGet"/> should be used instead of created PackedSprite manually.
 /// <seedoc>Features:Sprite Packs</seedoc>
 /// </remarks>
 /// <param name="id">SpriteID of the sprite</param>
 /// <param name="size">Size of the sprite, untrimmed</param>
 /// <param name="sourceRect">Source rectangle from within packed texture, may be trimmed</param>
 /// <param name="trimOffset">Trim offset</param>
 /// <seealso cref="SpriteSheetAsset"/>
 /// <seealso cref="RB.PackedSpriteGet"/>
 public PackedSprite(PackedSpriteID id, Vector2i size, Rect2i sourceRect, Vector2i trimOffset)
 {
     mID         = id;
     mSize       = size;
     mSourceRect = sourceRect;
     mTrimOffset = trimOffset;
 }
    /// <summary>
    /// Simple nine-slice constructor, all corners and sides are mirrored and rotated
    /// </summary>
    /// <param name="topLeftCornerRect">Top left corner rect</param>
    /// <param name="topSideRect">Top side rect</param>
    /// <param name="middleRect">Middle rect</param>
    public NineSlice(Rect2i topLeftCornerRect, Rect2i topSideRect, Rect2i middleRect)
    {
        TopLeftCornerRect     = topLeftCornerRect;
        TopSideRect           = topSideRect;
        TopRightCornerRect    = topLeftCornerRect;
        LeftSideRect          = topSideRect;
        MiddleRect            = middleRect;
        RightSideRect         = topSideRect;
        BottomLeftCornerRect  = topLeftCornerRect;
        BottomSideRect        = topSideRect;
        BottomRightCornerRect = topLeftCornerRect;

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = RB.FLIP_H;
        FlagsLeftSide          = RB.ROT_90_CCW;
        FlagsRightSide         = RB.ROT_90_CW;
        FlagsBottomLeftCorner  = RB.FLIP_V;
        FlagsBottomSide        = RB.FLIP_V;
        FlagsBottomRightCorner = RB.FLIP_H | RB.FLIP_V;

        PackedSpriteID empty = new PackedSpriteID(0);

        TopLeftCornerID     = empty;
        TopSideID           = empty;
        TopRightCornerID    = empty;
        LeftSideID          = empty;
        MiddleID            = empty;
        RightSideID         = empty;
        BottomLeftCornerID  = empty;
        BottomSideID        = empty;
        BottomRightCornerID = empty;

        IsRectBased = true;
    }
    /// <summary>
    /// Simple nine-slice constructor, all corners and sides are mirrored and rotated
    /// </summary>
    /// <param name="topLeftCorner">Top left corner PackedSprite</param>
    /// <param name="topSide">Top side PackedSprite</param>
    /// <param name="middle">Middle PackedSprite</param>
    public NineSlice(PackedSprite topLeftCorner, PackedSprite topSide, PackedSprite middle)
    {
        TopLeftCornerID     = topLeftCorner.id;
        TopSideID           = topSide.id;
        TopRightCornerID    = topLeftCorner.id;
        LeftSideID          = topSide.id;
        MiddleID            = middle.id;
        RightSideID         = topSide.id;
        BottomLeftCornerID  = topLeftCorner.id;
        BottomSideID        = topSide.id;
        BottomRightCornerID = topLeftCorner.id;

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = RB.FLIP_H;
        FlagsLeftSide          = RB.ROT_90_CCW;
        FlagsRightSide         = RB.ROT_90_CW;
        FlagsBottomLeftCorner  = RB.FLIP_V;
        FlagsBottomSide        = RB.FLIP_V;
        FlagsBottomRightCorner = RB.FLIP_H | RB.FLIP_V;

        TopLeftCornerRect     = Rect2i.zero;
        TopSideRect           = Rect2i.zero;
        TopRightCornerRect    = Rect2i.zero;
        LeftSideRect          = Rect2i.zero;
        MiddleRect            = Rect2i.zero;
        RightSideRect         = Rect2i.zero;
        BottomLeftCornerRect  = Rect2i.zero;
        BottomSideRect        = Rect2i.zero;
        BottomRightCornerRect = Rect2i.zero;

        IsRectBased = false;
    }
Beispiel #4
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="source">Source entity</param>
        /// <param name="target">Target entity</param>
        /// <param name="targetPos">Target position</param>
        /// <param name="projectileSprite">Projectile sprite facing top</param>
        /// <param name="projecticleSprite45">Projectile sprite facing top-right</param>
        /// <param name="projecticleColor">Projectile color</param>
        /// <param name="launchSound">Launching sound</param>
        /// <param name="landSound">Landing sound</param>
        public EffectThrow(EntityID source, EntityID target, Vector2i targetPos, PackedSpriteID projectileSprite, PackedSpriteID projecticleSprite45, Color32 projecticleColor, int launchSound, int landSound) : base(EffectType.Throw)
        {
            mSourcePos = new Vector2i(source.e.pos.x * RB.SpriteSize(0).width, source.e.pos.y * RB.SpriteSize(0).height);

            mTargetEntity     = target;
            mProjecticleColor = projecticleColor;

            mFramesTotal     = 10;
            mFramesRemaining = mFramesTotal;

            mRotate = true;

            mProjecticleSprite   = projectileSprite;
            mProjecticleSprite45 = projecticleSprite45;

            mLaunchSound = launchSound;
            mLandSound   = landSound;

            mTargetPos = targetPos;

            if (mLaunchSound >= 0)
            {
                RB.SoundPlay(mLaunchSound);
            }
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="source">Source entity</param>
        /// <param name="target">Target entity</param>
        /// <param name="targetPos">Target position</param>
        /// <param name="projectileSprite">Projectile sprite facing top</param>
        /// <param name="projecticleSprite45">Projectile sprite facing top-right</param>
        /// <param name="projecticleColor">Projectile color</param>
        /// <param name="launchSound">Launching sound</param>
        /// <param name="landSound">Landing sound</param>
        public EffectThrow(EntityID source, EntityID target, Vector2i targetPos, PackedSpriteID projectileSprite, PackedSpriteID projecticleSprite45, Color32 projecticleColor, AudioAsset launchSound, AudioAsset landSound) : base(EffectType.Throw)
        {
            var game = (RetroDungeoneerGame)RB.Game;

            mSourcePos = new Vector2i(source.e.pos.x * game.assets.spriteSheet.grid.cellSize.width, source.e.pos.y * game.assets.spriteSheet.grid.cellSize.height);

            mTargetEntity     = target;
            mProjecticleColor = projecticleColor;

            mFramesTotal     = 10;
            mFramesRemaining = mFramesTotal;

            mRotate = true;

            mProjecticleSprite   = projectileSprite;
            mProjecticleSprite45 = projecticleSprite45;

            mLaunchSound = launchSound;
            mLandSound   = landSound;

            mTargetPos = targetPos;

            if (mLaunchSound != null)
            {
                RB.SoundPlay(mLaunchSound);
            }
        }
    /// <summary>
    /// Simple nine-slice constructor, all corners and sides are mirrored and rotated
    /// </summary>
    /// <param name="topLeftCornerName">Top left corner sprite name</param>
    /// <param name="topSideName">Top side rect sprite name</param>
    /// <param name="middleName">Middle rect sprite name</param>
    public NineSlice(FastString topLeftCornerName, FastString topSideName, FastString middleName)
    {
        TopLeftCornerID     = RB.PackedSpriteID(topLeftCornerName);
        TopSideID           = RB.PackedSpriteID(topSideName);
        TopRightCornerID    = RB.PackedSpriteID(topLeftCornerName);
        LeftSideID          = RB.PackedSpriteID(topSideName);
        MiddleID            = RB.PackedSpriteID(middleName);
        RightSideID         = RB.PackedSpriteID(topSideName);
        BottomLeftCornerID  = RB.PackedSpriteID(topLeftCornerName);
        BottomSideID        = RB.PackedSpriteID(topSideName);
        BottomRightCornerID = RB.PackedSpriteID(topLeftCornerName);

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = RB.FLIP_H;
        FlagsLeftSide          = RB.ROT_90_CCW;
        FlagsRightSide         = RB.ROT_90_CW;
        FlagsBottomLeftCorner  = RB.FLIP_V;
        FlagsBottomSide        = RB.FLIP_V;
        FlagsBottomRightCorner = RB.FLIP_H | RB.FLIP_V;

        TopLeftCornerRect     = Rect2i.zero;
        TopSideRect           = Rect2i.zero;
        TopRightCornerRect    = Rect2i.zero;
        LeftSideRect          = Rect2i.zero;
        MiddleRect            = Rect2i.zero;
        RightSideRect         = Rect2i.zero;
        BottomLeftCornerRect  = Rect2i.zero;
        BottomSideRect        = Rect2i.zero;
        BottomRightCornerRect = Rect2i.zero;

        IsRectBased = false;
    }
Beispiel #7
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="type">Tile type</param>
        /// <param name="sprite">Sprite to use when rendering this tile</param>
        /// <param name="color">Color of the tile</param>
        /// <param name="blocked">Whether the tile is blocking</param>
        /// <param name="blockSight">Whether the tile blocks sight (field of view)</param>
        public Tile(Type type, PackedSpriteID sprite, Color32 color, bool blocked, bool blockSight)
        {
            this.blocked    = blocked;
            this.blockSight = blockSight;

            this.sprite = sprite;
            this.color  = color;
        }
Beispiel #8
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="template">Template tile to copy</param>
        public Tile(Tile template)
        {
            type       = template.type;
            blocked    = template.blocked;
            blockSight = template.blockSight;

            sprite = template.sprite;
            color  = template.color;
        }
Beispiel #9
0
 /// <summary>
 /// De-serialize the component
 /// </summary>
 /// <param name="reader">Reader instance</param>
 public override void Read(BinaryReader reader)
 {
     int1             = reader.ReadInt32();
     int2             = reader.ReadInt32();
     targeting        = reader.ReadBoolean();
     targetingMessage = reader.ReadFastString();
     useFunction      = (ItemFunction)reader.ReadInt32();
     paperDoll        = reader.ReadPackedSpriteID();
     type             = (ItemType)reader.ReadInt32();
 }
 /// <summary>
 /// De-serialize the effect
 /// </summary>
 /// <param name="reader">Reader instance</param>
 public override void Read(BinaryReader reader)
 {
     base.Read(reader);
     mSourcePos           = reader.ReadVector2i();
     mTargetPos           = reader.ReadVector2i();
     mTargetEntity        = reader.ReadEntityID();
     mAlphaFade           = reader.ReadInt32();
     mProjecticleColor    = reader.ReadColor32();
     mProjecticleSprite   = reader.ReadPackedSpriteID();
     mProjecticleSprite45 = reader.ReadPackedSpriteID();
     mRotate      = reader.ReadBoolean();
     mLaunchSound = SoundSerializer.Deserialize(reader.ReadInt32());
     mLandSound   = SoundSerializer.Deserialize(reader.ReadInt32());
 }
Beispiel #11
0
 /// <summary>
 /// Initialize the entity
 /// </summary>
 /// <param name="pos">Position</param>
 /// <param name="sprite">Sprite to draw with</param>
 /// <param name="color">Color</param>
 /// <param name="name">String name</param>
 /// <param name="renderOrder">Rendering order</param>
 /// <param name="blocks">Whether the entity is blocking</param>
 public void Initialize(
     Vector2i pos,
     PackedSpriteID sprite,
     Color32 color,
     FastString name,
     RenderFunctions.RenderOrder renderOrder,
     bool blocks = false)
 {
     this.pos    = pos;
     this.sprite = sprite;
     this.color  = color;
     this.name.Append(name);
     this.blocks      = blocks;
     this.renderOrder = renderOrder;
 }
    /// <summary>
    /// Constructor
    /// </summary>
    /// <remarks>
    /// Creates a new NineSlice image definition. A nine-slice sprite is a special kind of sprite usually used to draw rectangular shapes for UI elements.
    /// A nine-slice sprite is defined by up to 9 separate sprites that are arranged and repeated as needed in such a way that they can
    /// fill any rectangular area.
    ///
    /// <image src="nineslice_parts.png">Nine parts that make up a nine slice image</image>
    ///
    /// The pieces *A*, *C*, *G*, and *I* are always drawn in the corners of the nine-slice sprite. *B* and *H* are repeated horizontally.
    /// *E* and *F* are repeated vertically. Finally, *X* is repeated in both directions to fill the middle of the nine-slice sprite.
    ///
    /// For best results each of these groups of pieces should be the same height:
    /// <ul>
    /// <li> *A*, *B*, *C*</li>
    /// <li> *E*, *F*</li>
    /// <li> *G*, *H*, *I*</li>
    /// </ul>
    /// These groups should be the same width:
    /// <ul>
    /// <li> *A*, *E*, *G*</li>
    /// <li> *B*, *H*</li>
    /// <li> *C*, *F*, *I*</li>
    /// </ul>
    /// The center piece *X* can be of any size.
    ///
    /// The pieces that make up a nine-slice image should not be too small to limit the amount of times they have to be repeated to fill
    /// your nine-slice sprite.
    ///
    /// In some cases, such as in the image above, many of the pieces are symmetric, for convenience there are <see cref="NineSlice.NineSlice"/> overloads that
    /// take only *srcTopLeftCornerRect*, *srcTopSideRect*, and *srcMiddleRect* and simply rotate and mirror the remaining pieces automatically.
    ///
    /// You can specify the pieces of a nine-slice image through either source rectangles, or sprite ids for sprites in a sprite pack.
    /// <seedoc>Features:Nine-Slice Sprite</seedoc>
    /// <seedoc>Features:Sprite Sheets</seedoc>
    /// <seedoc>Features:Sprite Packs</seedoc>
    /// </remarks>
    /// <param name="topLeftCornerRect">Top left corner rect</param>
    /// <param name="topSideRect">Top side rect</param>
    /// <param name="topRightCornerRect">Top right corner rect</param>
    /// <param name="leftSideRect">Left side rect</param>
    /// <param name="middleRect">Middle rect</param>
    /// <param name="rightSideRect">Right side rect</param>
    /// <param name="bottomLeftCornerRect">Bottom left corner rect</param>
    /// <param name="bottomSideRect">Bottom side rect</param>
    /// <param name="bottomRightCornerRect">Bottom right corner rect</param>
    /// <code>
    /// SpriteSheetAsset uiSprites = new SpriteSheetAsset();
    /// NineSlice dialogFrame;
    ///
    /// void Initialize() {
    ///     uiSprites.Load("spritesheets/ui");
    ///     dialogFrame = new NineSlice(
    ///         new Rect2i(0, 0, 8, 8),
    ///         new Rect2i(8, 0, 8, 8),
    ///         new Rect2i(16, 0, 8, 8));
    /// }
    ///
    /// void Render() {
    ///     RB.SpriteSheetSet(uiSprites);
    ///
    ///     var dialogRect = new Rect2i(100, 100, 128, 64);
    ///
    ///     // Draw a dialog frame using the predefined NineSlice
    ///     RB.DrawNineSlice(dialogRect, dialogFrame);
    ///     RB.Print(
    ///         dialogRect, Color.white, RB.ALIGN_H_CENTER | RB.ALIGN_V_CENTER,
    ///         "It's boring to go alone, take me!");
    /// }
    /// </code>
    /// <seealso cref="RB.DrawNineSlice"/>
    /// <seealso cref="RB.SpriteSheetSet"/>
    /// <seealso cref="SpriteSheetAsset"/>
    public NineSlice(
        Rect2i topLeftCornerRect,
        Rect2i topSideRect,
        Rect2i topRightCornerRect,
        Rect2i leftSideRect,
        Rect2i middleRect,
        Rect2i rightSideRect,
        Rect2i bottomLeftCornerRect,
        Rect2i bottomSideRect,
        Rect2i bottomRightCornerRect)
    {
        TopLeftCornerRect     = topLeftCornerRect;
        TopSideRect           = topSideRect;
        TopRightCornerRect    = topRightCornerRect;
        LeftSideRect          = leftSideRect;
        MiddleRect            = middleRect;
        RightSideRect         = rightSideRect;
        BottomLeftCornerRect  = bottomLeftCornerRect;
        BottomSideRect        = bottomSideRect;
        BottomRightCornerRect = bottomRightCornerRect;

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = 0;
        FlagsLeftSide          = 0;
        FlagsRightSide         = 0;
        FlagsBottomLeftCorner  = 0;
        FlagsBottomSide        = 0;
        FlagsBottomRightCorner = 0;

        PackedSpriteID empty = new PackedSpriteID(0);

        TopLeftCornerID     = empty;
        TopSideID           = empty;
        TopRightCornerID    = empty;
        LeftSideID          = empty;
        MiddleID            = empty;
        RightSideID         = empty;
        BottomLeftCornerID  = empty;
        BottomSideID        = empty;
        BottomRightCornerID = empty;

        IsRectBased = true;
    }
    /// <summary>
    /// Constructor
    /// </summary>
    /// <param name="topLeftCornerName">Top left corner sprite name</param>
    /// <param name="topSideName">Top side sprite name</param>
    /// <param name="topRightCornerName">Top right corner sprite name</param>
    /// <param name="leftSideName">Left side sprite name</param>
    /// <param name="middleName">Middle sprite name</param>
    /// <param name="rightSideName">Right side sprite name</param>
    /// <param name="bottomLeftCornerName">Bottom left corner sprite name</param>
    /// <param name="bottomSideName">Bottom side sprite name</param>
    /// <param name="bottomRightCornerName">Bottom right corner sprite name</param>
    public NineSlice(
        FastString topLeftCornerName,
        FastString topSideName,
        FastString topRightCornerName,
        FastString leftSideName,
        FastString middleName,
        FastString rightSideName,
        FastString bottomLeftCornerName,
        FastString bottomSideName,
        FastString bottomRightCornerName)
    {
        TopLeftCornerID     = RB.PackedSpriteID(topLeftCornerName);
        TopSideID           = RB.PackedSpriteID(topSideName);
        TopRightCornerID    = RB.PackedSpriteID(topRightCornerName);
        LeftSideID          = RB.PackedSpriteID(leftSideName);
        MiddleID            = RB.PackedSpriteID(middleName);
        RightSideID         = RB.PackedSpriteID(rightSideName);
        BottomLeftCornerID  = RB.PackedSpriteID(bottomLeftCornerName);
        BottomSideID        = RB.PackedSpriteID(bottomSideName);
        BottomRightCornerID = RB.PackedSpriteID(bottomRightCornerName);

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = 0;
        FlagsLeftSide          = 0;
        FlagsRightSide         = 0;
        FlagsBottomLeftCorner  = 0;
        FlagsBottomSide        = 0;
        FlagsBottomRightCorner = 0;

        TopLeftCornerRect     = Rect2i.zero;
        TopSideRect           = Rect2i.zero;
        TopRightCornerRect    = Rect2i.zero;
        LeftSideRect          = Rect2i.zero;
        MiddleRect            = Rect2i.zero;
        RightSideRect         = Rect2i.zero;
        BottomLeftCornerRect  = Rect2i.zero;
        BottomSideRect        = Rect2i.zero;
        BottomRightCornerRect = Rect2i.zero;

        IsRectBased = false;
    }
    /// <summary>
    /// Constructor
    /// </summary>
    /// <param name="topLeftCorner">Top left corner PackedSprite</param>
    /// <param name="topSide">Top side PackedSprite</param>
    /// <param name="topRightCorner">Top right corner PackedSprite</param>
    /// <param name="leftSide">Left side PackedSprite</param>
    /// <param name="middle">Middle PackedSprite</param>
    /// <param name="rightSide">Right side PackedSprite</param>
    /// <param name="bottomLeftCorner">Bottom left corner PackedSprite</param>
    /// <param name="bottomSide">Bottom side PackedSprite</param>
    /// <param name="bottomRightCorner">Bottom right corner PackedSprite</param>
    public NineSlice(
        PackedSprite topLeftCorner,
        PackedSprite topSide,
        PackedSprite topRightCorner,
        PackedSprite leftSide,
        PackedSprite middle,
        PackedSprite rightSide,
        PackedSprite bottomLeftCorner,
        PackedSprite bottomSide,
        PackedSprite bottomRightCorner)
    {
        TopLeftCornerID     = topLeftCorner.id;
        TopSideID           = topSide.id;
        TopRightCornerID    = topRightCorner.id;
        LeftSideID          = leftSide.id;
        MiddleID            = middle.id;
        RightSideID         = rightSide.id;
        BottomLeftCornerID  = bottomLeftCorner.id;
        BottomSideID        = bottomSide.id;
        BottomRightCornerID = bottomRightCorner.id;

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = 0;
        FlagsLeftSide          = 0;
        FlagsRightSide         = 0;
        FlagsBottomLeftCorner  = 0;
        FlagsBottomSide        = 0;
        FlagsBottomRightCorner = 0;

        TopLeftCornerRect     = Rect2i.zero;
        TopSideRect           = Rect2i.zero;
        TopRightCornerRect    = Rect2i.zero;
        LeftSideRect          = Rect2i.zero;
        MiddleRect            = Rect2i.zero;
        RightSideRect         = Rect2i.zero;
        BottomLeftCornerRect  = Rect2i.zero;
        BottomSideRect        = Rect2i.zero;
        BottomRightCornerRect = Rect2i.zero;

        IsRectBased = false;
    }
    /// <summary>
    /// Constructor
    /// </summary>
    /// <param name="topLeftCornerID">Top left corner sprite ID</param>
    /// <param name="topSideID">Top side sprite ID</param>
    /// <param name="topRightCornerID">Top right corner sprite ID</param>
    /// <param name="leftSideID">Left side sprite ID</param>
    /// <param name="middleID">Middle sprite ID</param>
    /// <param name="rightSideID">Right side sprite ID</param>
    /// <param name="bottomLeftCornerID">Bottom left corner sprite ID</param>
    /// <param name="bottomSideID">Bottom side sprite ID</param>
    /// <param name="bottomRightCornerID">Bottom right corner sprite ID</param>
    public NineSlice(
        PackedSpriteID topLeftCornerID,
        PackedSpriteID topSideID,
        PackedSpriteID topRightCornerID,
        PackedSpriteID leftSideID,
        PackedSpriteID middleID,
        PackedSpriteID rightSideID,
        PackedSpriteID bottomLeftCornerID,
        PackedSpriteID bottomSideID,
        PackedSpriteID bottomRightCornerID)
    {
        TopLeftCornerID     = topLeftCornerID;
        TopSideID           = topSideID;
        TopRightCornerID    = topRightCornerID;
        LeftSideID          = leftSideID;
        MiddleID            = middleID;
        RightSideID         = rightSideID;
        BottomLeftCornerID  = bottomLeftCornerID;
        BottomSideID        = bottomSideID;
        BottomRightCornerID = bottomRightCornerID;

        FlagsTopLeftCorner     = 0;
        FlagsTopSide           = 0;
        FlagsTopRightCorner    = 0;
        FlagsLeftSide          = 0;
        FlagsRightSide         = 0;
        FlagsBottomLeftCorner  = 0;
        FlagsBottomSide        = 0;
        FlagsBottomRightCorner = 0;

        TopLeftCornerRect     = Rect2i.zero;
        TopSideRect           = Rect2i.zero;
        TopRightCornerRect    = Rect2i.zero;
        LeftSideRect          = Rect2i.zero;
        MiddleRect            = Rect2i.zero;
        RightSideRect         = Rect2i.zero;
        BottomLeftCornerRect  = Rect2i.zero;
        BottomSideRect        = Rect2i.zero;
        BottomRightCornerRect = Rect2i.zero;

        IsRectBased = false;
    }
    /// <summary>
    /// Equality
    /// </summary>
    /// <remarks>
    /// Equality check.
    /// </remarks>
    /// <param name="other">Other</param>
    /// <returns>True if equal</returns>
    public override bool Equals(object other)
    {
        if (other == null)
        {
            return(false);
        }

        if (other is PackedSpriteID)
        {
            PackedSpriteID pid = (PackedSpriteID)other;
            if (id != pid.id)
            {
                return(false);
            }

            return(true);
        }
        else
        {
            return(false);
        }
    }
Beispiel #17
0
        private static void RenderTargeting()
        {
            var tilePos = SceneGame.GetMouseTilePos();

            if (tilePos.x != -1)
            {
                var renderPos = new Vector2i(
                    tilePos.x * RB.SpriteSize(0).width,
                    tilePos.y * RB.SpriteSize(0).height);

                PackedSpriteID sprite = S.TARGET_1;

                if (RB.Ticks % 20 < 10)
                {
                    sprite = S.TARGET_2;
                }

                RB.TintColorSet(new Color32(255, 0, 0, 200));
                RB.DrawSprite(sprite, renderPos);
                RB.TintColorSet(Color.white);
            }
        }
        private static void RenderTargeting()
        {
            var game    = (RetroDungeoneerGame)RB.Game;
            var tilePos = SceneGame.GetMouseTilePos();

            if (tilePos.x != -1)
            {
                var renderPos = new Vector2i(
                    tilePos.x * game.assets.spriteSheet.grid.cellSize.width,
                    tilePos.y * game.assets.spriteSheet.grid.cellSize.height);

                PackedSpriteID sprite = S.TARGET_1;

                if (RB.Ticks % 20 < 10)
                {
                    sprite = S.TARGET_2;
                }

                RB.TintColorSet(new Color32(255, 0, 0, 200));
                RB.DrawSprite(sprite, renderPos);
                RB.TintColorSet(Color.white);
            }
        }
Beispiel #19
0
 /// <summary>
 /// Write sprite id
 /// </summary>
 /// <param name="writer">Writer instance</param>
 /// <param name="spriteID">Sprite id</param>
 public static void Write(this BinaryWriter writer, PackedSpriteID spriteID)
 {
     writer.Write(spriteID.id);
 }
Beispiel #20
0
 public Enemy(Coord pos, string name, PackedSpriteID spriteID) : base(pos, name, (int)MapLayers.ENEMIES, spriteID)
 {
     Stats[StatTypes.AWARENESS] = 3;
 }
 public MapTerrain(Coord pos, bool isStatic, bool isWalkable, bool isTransparent, PackedSpriteID spriteID)
 {
     _gameObjectImplementation = new GameObject(pos, (int)MapLayers.TERRAIN, this, isStatic, isWalkable, isTransparent);
     SpriteID = spriteID;
 }