Giter Club home page Giter Club logo

world-builder's People

Watchers

 avatar  avatar

world-builder's Issues

NpcSchema

  • name
  • interactions[]
  • location - optional xy coords
  • spawnPriority - 0-10 a weight to apply when spawning randomly, 0 will disable random spawns

Random World Generator

Create a simple algorithm that can take in dimension and generate a basic world of all plains, persisting in the UI for now

WorldSchema

A world object

  • name
  • tiles[TileSchema]
  • start - xy coord for the tile within the world for new players to start at, if the tile doesn't exist then 0,0 is substituted

World selector

Create a reusable directive that lists all of the active worlds for display, when one is clicked on it should display the world map to the right, with an option to select the world. When select the world is clicked, emit a 'WorldSelector::SelectWorld' event with the world data. Use this within a world-selector route that listens for the event and changes the location to world-editor.

This directive needs to be reusable for when we start allowing selecting a world for a player.

Set up CI/CD

Set up CI on master and CD as well, to the production instance.

map-editor route

  • Start the world generator flow, if there is no world in session, create one and prompt the user for required information, otherwise proceed.
  • Display the current world using the map directive, listening for the Map::TileClick event, when it is sent, change the display to the right of the map to render (in an editable fashion) the tile that was clicked on, broadcast the Map::ChangeCenter event to change the map center to the tile that was clicked on
    • clicking 'update' will then save the new information back to the world's tile array
  • have a save world button that will take the session version of the world and persist it to the API

Set up a prod server

Need a production server up an running to host everything on, and testing of course.

TileSchema

Needs to contain:

  • image
  • monsterChance - monsters can have a static location set as well
  • npcChance - if an NPC has a location set, it will ignore this field and display regardless
  • x
  • y
  • level

This will need to be stored as part of the world it was created in

TileTypeSchema

Used by the TileSchema to provide default data about a given tile

  • name - the type name, such as 'water'
  • accessibility[] - an array of strings, including walk, fly, and swim to start that determines what travel types can cross this tile
  • image

map directive

This should be a directive that displays a subset of the world, based around the current "location".

  • hovering over a tile should display basic information about the tile
    • there should be a delay on this hover, basic information should be things like level and tile type (name)
  • clicking on a tile should should emit an event (Map::TileClick) with the full information of the tile that was clicked on.
  • should listen for a Map::ChangeCenter event and change the center to the {x, y} provided, if either x or y is missing, then ignore the event.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.