FANDOM


Map Edit

factions Edit

heroes Edit

talents Edit

buildingsEdit

marketplaceEdit

name brainstorming Edit

Normal screen map is scrollable

Full screen map allows you to show

-enemy heroes

-resources

-special buildings


Game Mechanics

-Marketplace

-Military power generation

-Hero abilities

-


Minimum Playable Product


  • maps (how will a map be created?)

    • maybe phaser handles this, if not need to manually calculate (scary)

  • hero movement

    • 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

    • E.G:  ...cities/necropolis.js

    • 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

  • -resources

  • -hero abilities

  • -races

  • -combat calculations

  • -ui (heroes, menu, city)

  • -assets (images, sounds)


  • Game

    • players

      • name

      • id

      • player number

      • team

      • resources

    • cities

      • faction

      • owner

      • location

      • buildings

      • goldPerDay

      • militaryPerday

      • resourcesPerDay

      • existingCreatures (I mean ones you purchased but haven’t put on hero yet)

    • heroes

      • name

      • owner

      • abilities

      • units

      • items

     is the object something like

var player={

   cities{

       city_a:{

           building:{

               cityhall:true;

               market:true;

           };

           creature:{

               farmer:12;

           };

       };

       city_b:{

           building:{

               cityhall:true;

               market:false;

           };

           creature:{

               farmer:0;

           };

       };

   };

  heroes:{

Ian:{

   att:xxx

   def:xxx

}

       }

};


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 ??


    • turns

      • event logs


City:

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.





Marketplace:

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

{

send: {

wood: 1,

ore: 2

}

receive: {

gold: 5000

}

}

source: name of player who is requesting trade

target: name of player whom the trade is requesting

-processPlayerTrade(trade, source, target)

  1. if the trade is accepted, this function should process the trade

  1. this function should also log the event of this trade

-processMarketTrade(trade, source)

  1. this function will be used when a player establishes a trade against the market.

  1. market ratios will be enforced by the UI so this function will simply process the trade by subtracting and adding resources to the source.

-


    • NOTE:

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.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.