Hi! I am creating a tabletop game called Legacy’s Allure. I want to create a tool for my website that will help players of my game be able to easily create their card decks easily, which they need in order to play the game. This tool will be called the Kingdom Builder and I want to integrate into my website as a WordPress plugin.
Here is the specification for the Kingdom Builder Plugin for this WordPress website. Before I can spec out the plugin, I need to explain to you a little about the game. This game is a card-based wargame. Below is a game in progress on Tabletop Simulator.
In this game, each card represents a unit, item, or ability. Here’s an example of each card type:
I need a plugin that will add the following to a FULL-WIDTH page on this website:
- Search filters for all card properties.
- If a card does not contain a piece of data, the value for that property will be NULL, not an empty string or a zero. For example, in the Grunt card (shown above), the Grunt does not have a Range value, therefore Range is stated as “N” on the card (representing NULL). Likewise, the item card (show above) does not have a Range value, therefore the Range is considered “N” even though it is not stated on the card.
- When a search filter is added, it is added to a search filter list. Search filters can be deleted by clicking an X next to them.
- Search filters
- Name (string)
- When this is selected, it creates a textbox in which the user can type the name of a card.
- Text (string)
- When this is selected, it creates a textbox in which the user can type the text of a card.
- Type (text)
- Combobox with these options: Hero, Unit, Ability, Item
- Gold (integer)
- Combobox with range 1-15.
- Power (integer)
- Combobox with range 1-6.
- Range (integer)
- Combobox with range 1-4.
- Movement (integer)
- Combobox with range 1-5.
- Health (integer)
- Combobox with range 1-12.
- Mana (integer)
- Combobox with range 1-6.
- Faction (string)
- Combobox with these options: Arengard, Gath, Sylvan.
- Owner (string)
- Combobox with these options: Argog, Kaar’thul, Aurelia, Donovan, Kaladrix, Anwyn
- Slots (integer)
- Combobox with range 1-3.
- Name (string)
- A list box that lets the user view the entire card list.
- The cards are listed in alphabetical order.
- Double-clicking a card COPIES it to the current army list.
- A list box that contains the user’s current army, including a count of the current gold count.
- Double-clicking a card removes a single instance of that card from the army list.
- The army list must also track card quantity, because multiple copies of a card can be added to an army.
- The gold counter should be at the bottom of the list.
- The cards are listed in the order they are added and can be sorted by name or gold cost.
Other plugin features:
- Search filters of the same type are not exclusive. For example, a search filter for “gold = 1” and “gold = 2” would display all cards with gold values of 1 and 2.
- When a card is selected in either list box, a card preview pane will show the selected card, pulled from /images/<card-name>.jpg.
- The plugin settings will allow me to upload a CSV that contains all of the searchable data. This data will act as the database for the plugin.
- Example CSV
- The CSV columns can be in any order.
- If a column is missing, all values are considered NULL.
- If a cell is empty, its value is considered NULL.
- A button that allows the user to export the army to the clipboard
- A button that allows the user to import an army from the clipboard
Here’s a UI mockup:
Other project requirements:
- Due date: None
- Language / Technology preference: None
- Require source code: Yes
- Please avoid hard-coded constants as much as possible.