Normal screen map is scrollable
Full screen map allows you to show
-Military power generation
Minimum Playable Product
maps (how will a map be created?)
use tiled http://www.mapeditor.org/
use phaser to run the tmx files from tiled
maybe phaser handles this, if not need to manually calculate (scary)
phase io https://phaser.io/
each city has a list of possible buildings
each building has resource costs, and pre-requisites
this information needs to be in a separated file for each city in json format
There should be a base city class, which can be instantiated: E.G var city = new City(‘Necropolis’);
this instantiation process should parse the json file and setup the object structure to represent the json file.
City object should contain:
build(“name of a building”) #function to build a new building
goldPerDay #amount of gold this city generates every day
buildings #list of buildings, whether they are built or not and their cost
units # list of units by name, availability per week, currently available, costs
location #location in world map
id #unique id
-ui (heroes, menu, city)
-assets (images, sounds)
existingCreatures (I mean ones you purchased but haven’t put on hero yet)
is the object something like
or are you thinking about somehting like a list containing all cities/heores, [city1, city2, city3] [Ian, Stefan, Yvette] and later you refer to their owners ??
A city will be composed via a call to the City class:
var city1 = new City(“faction”) //where faction is the name of the faction of the city. e.g. necropolis
The city object itself is just data, it should contain no logic or processing functions.
The city will be made up of a “shared” list of properties that all cities share, with a “specific” list of properties that are faction based, and finally a “map” specific list of properties. Map specification is not needed, but is available in case we want to specifically alter some cities in a specific map. The specific properties are merged on top of the shared properties, this way we can alter factions to be different if necessary.
What is a marketplace?
Marketplace is a buildable building for all cities. Once a player has built a marketplace in any city they can access the marketplace tab. The tab is accessible at any time while the player owns a city with the marketplace building. The marketplace tab can be used to request trades with other players, or to trade resources with the “market” at specific ratios. When a player requests a trade with another player, the second player will be prompted to accept or decline this trade at the beginning of their turn. Players may not request trade with players who do not yet own a marketplace. The marketplace price ratio when trading with the market is improved by a percentage for every additional marketplace you own.
Marketplace price ratios should be exposed in a data file located somewhere in the data folder.
When a new game is created, part of the init process is to generate market ratio data for every player based on the data file. The data file should include the base ratios (i.e ratios for players with only 1 marketplace, and should include a percentage value to indicate the improvement in ratios per additional marketplace).
Martekplace object should be created as part of the Player object.
this Object is affected by:
-building a market place
-gaining control of a city
-losing control of a city
The marketplace object in the player object is a data component which should have no functionality.
Additionally there will need to be a logic component with the following functions:
-requestPlayerTrade(trade, source, target)
trade: is an object with the following format
source: name of player who is requesting trade
target: name of player whom the trade is requesting
-processPlayerTrade(trade, source, target)
- if the trade is accepted, this function should process the trade
- this function should also log the event of this trade
- this function will be used when a player establishes a trade against the market.
- market ratios will be enforced by the UI so this function will simply process the trade by subtracting and adding resources to the source.
I’m not sure how the logic functions will be organized yet, for the time being we’re going to build each logic section as a class. IE: Marketplace.js will contain all of the logic/processing.
data/marketplace/shared.js will contain all of the init data.