1.0.8 • Published 3 years ago

disgame v1.0.8

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Disgame

Disgame is an extremely lightweight Discord game engine. (Beta)

ezgif-2-42edb508961e

// ...
const wait = (ms: number) => new Promise((resolve, reject) => setTimeout(resolve, ms));

client.on("message", async (msg) => {
    // ... listen for command
    
        const gameMessage = await msg.channel.send(
            new Discord.MessageEmbed()
                .setTitle("Game")
                .setDescription("...") // The description will automatically be overwritten by Disgame to contain the game view
                .setFooter("")
        )

        const game = new Disgame({
            message: gameMessage, // the message disgam will "render" to. (If embed uses description; if message uses content)
            size: { // the emoji background tile size
                width: 10,
                height: 7
            },
            backgroundEmoji: "⬜" // the game background
        });

        // create tiles
        const appleTile = game.addTile(new Tile({ emoji: "🍎", position: { x: 0, y: 0 } }));
        const bananaTile = game.addTile(new Tile({ emoji: "🍌", position: { x: 3, y: 3 } }));
        const pearTile = game.addTile(new Tile({ emoji: "🍐", position: { x: 5, y: 5 } }));

        for (var i = 0; i < 4; i++) {
            // increment position of "appleTile" to move diagonally
            appleTile.position.x++;
            appleTile.position.y++;

            game.render(); // call render fuction to edit the message with the updated scene
            await wait(1000); // wait 1 second
        }

        game.removeTile(appleTile); // remove "appleTile" once its done
        game.render(); // render 
});

// ...

Table of Contents

  1. Overview
  2. Usage
    1. Base
    2. Tiles
  3. Examples
  4. Credits

Usage

Base

The base (Disgame) is the start to any game. It is used to render the view to a chosen message

 const game = new Disgame({
    message: gameMessage, // a created message (embed, plain, etc)
    size: { 
        width: 10,
        height: 7
    },
    backgroundEmoji: "⬜"
});

Disgame_Dimension

Options/Properties

OptionalNameDescriptionDefault
messageDiscord.Message The message in which you want to render the game when render() is called.
size{width: number; height: number} The size of the canvas.{width: 10, height: 10}
backgroundEmoji`string The emoji used to fill the background. | ⬛

Methods

NameDescriptionReturns
render()"Renders" the game view as text to the Discord message. (Should be called when you want to update a change on the screen)void
addTile(tile: Tile)Adds a new tile object to the game.tile
removeTile(tile: Tile)Removes a tile from the game.void
getTile(name: string)Gets all tiles with the chosen name.Tile[]

Tiles

Tiles are emojis at certain positions on the game canvas. The can be added and remove from games using the respective game functions addTile(tile: Tile)/removeTile(tile: Tile). Tiles can also be found by calling getTile(name: string).

Disgame_Position

const game = new Disgame({
   message: gameMessage, // a created message (embed, plain, etc)
   size: { 
        width: 10,
        height: 7
    },
    backgroundEmoji: "⬜"
});

let bananaTile = game.addTile(new Tile({
    emoji: "🍌",
    position: {
        x: 3,
        y: 4
    }
}));

game.render();

Options/Properties

OptionalNameDescriptionDefault
emojistringThe emoji used to display the tile
namename Used to get tiles by name using the getTile(tile: string) function.
position(IPosition) {x: number, y: number} The tile's position{x: 0, y: 0}

Examples

Moving Tile

Coming soon

Credits

Made by Badusername420

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago