Game Setup: Player Creates Species
note on conventions: I'm using firstSecondThird for methods and _firstSecondThird for objects. Also, Print "Your secondary mutation is [_name] +10 [_style] vs [_primaryMutation]"
Turn 1 Setup A --- program asks for user inputs, designing the species.
- Upload a picture, which will get resized into a square (so that it can potentially fit onto a grid based map). The resize to square can just add white space to make a square. Input speciesPicture. Various checks to make sure it satisfied filetype and size requirements.
- They can only start the game with 1 _primaryMutation. The mutations start out unnamed.
If (all _primaryMutation are named already?) NO: GOTO namePrimaryMutation YES: GOTO randomizePrimaryMutation
INPUT "name for primary_mutation": IF (all _primaryMutation are named already) YES: PRINT "sorry, too slow." GOTO randomizePrimaryMutation NO: player is assigned the primary mutation they just named. PRINT "Your primary mutation is _____________." SET "_alreadyNamedMutation" to "Yes"
program randomly assigns one of the existing three to that player PRINT "Primary mutations have already been named. Your primary mutation has been randomly assigned. Your primary mutation is "_name" SET "_alreadyNamedMutation" to "No."
(Thus, the very first player to enter data gets to name primary_mutation1, the second player gets to name primary_mutation2, the third primary_mutation3, then the available primary_mutation names become locked. There can only be three.)
Player is given a new "secondary" mutation. Only the fourth through tenth players get to enter data to name these 6 mutations.
IF ("_playerAlreadyNamedAMutation") NO: GOTO nameSecondaryMutation YES: GOTO chooseSecondaryMutation There are 6 secondary mutations. (secondary_mutation1, secondary_mutation2, etc.)
Each secondary mutation has 1 of the 6 following bonuses :
the program displays the names of 6 Primary Mutations. INPUT "_name for _secondaryMutation" check for uniqueness of that chosen name (if NO print "sorry, name taken" and start over) IF (all _secondaryMutation are named already) YES: PRINT "sorry, too slow." GOTO randomizeSecondaryMutation NO: player is assigned the secondaryMutation they just named. SET "_alreadyNamedMutation" to "Yes" INPUT "versusWhichPrimary" INPUT "bonusStyle" (attack or defense) SET "_bonus" to "+10" SET "_alreadyNamedMutation" to "Yes" PRINT "Your secondary mutation is _____________. +10 "_bonusStyle" vs "_target""
note: If not all primary mutations have been named yet, they will just be called by their starting value name (i.e., primary_mutation3)
Player adds email, real name.
player is asked "Please submit a name for an abundant food that might exist in this world. The name should be a plural noun, that would make sense in the sentence 'Bob ate 300 _____.' Every player submits a name for food, but the game allows for fewer foods than the number of players, so your name may not be used. The game chooses among your selections at random." Record the name in the list of _possibleFixedResourceNames
adds new player to the Queue. A game needs at least eight players to be interesting I think, so we'll create a queue that will wait for 8 players, then wait 20 more hours for others to sign up. At the end of the 20 hours, an email is sent telling everyone that turn 2 has begun and they should login and make choices. This can be changed later to just accept a fixed number of players and start right away.
A grid is created that has at least nine times as many squares as there are players.
8 players: 9x9 grid
9 players: 10x10 grid
10 players: 10x10 grid
11 players: 10X10 grid
12 players: 11x11 grid
13 players: 11x11 grid
14 players: 12x12 grid
15 players: 12x12 grid
16 players: 13x13 grid
17 players: 13x13 grid
18 players: 13x13 grid
19 players: 14X14 grid
20 players: 14x14 grid
randomize the location of species on the map. For the rest of the game, a species will have a territory, not a location, but just for this step, we can put each species in a specific grid square and grow its territory out from there.
No two species can occupy the same grid square.
each species begins the game with a territory that is a 5x5 square that reaches 2 squares in each direction, with them in the center. They will be able to modify their territory during the game. The player's profile page will show the shape of their territory with them in the center, and on the general map, their territory will be outlined in the grid by a different color, let's say red.
note about grids: if an object is on the edge of a grid, it's territory rolls over to the other side of the grid. There are no 'edges.'
Total number of fixedResources, where x=number of players is 2+(x/3 rounded down)
Any number of fixed resources and species can exist on the same grid square.
The game randomly chooses among the names that players created for fixed resources and assigns them to the following:
_fixedResource1 name:_______ location:everywhere (exists in every grid square) biomass per square = 50
_fixedResource2 name:________ location: exists in 10% of available squares (randomize and save the locations) biomass per square = 500
_fixedResource3 name:________ location: exists in 5% of available squares (randomize and save the locations) biomass per square = 1000
_fixedResource3 name:________ location: exists in 2% of available squares (randomize and save the locations) biomass per square = 2500
...etc, depending on how many fixedResources there are. All subsequent fixed resources exist in 2% of available squares.
I think what make sense here is to have a database for the grid, like A1, A2, A3, B1, B2, B3 etc... and list all the things that exist in that square. SO when a species has territory that overlaps there, they are listed in that square (because they can be found there on occasion) same with fixed resources.
eating doesn't begin until the end of turn 2.
all players receive a "choose Secondary Mutation" coupon.
all players receive an "Add prey" coupon. They don't have to use it right away.
all players receive points. See distributePoints.
player will need to viewMap to examine their territory relative to other territories.
About the map:I imagine a sidebar where you can click on a species or fixed resource and the map will highlight territory of what you clicked. Easy version: can only show two territories at a time, yours - and whatever else you clicked. When a player makes changes to their territory shape, the map needs to reflect that right away, not wait a turn.
Also, every grid square needs to be large enough to have little squares in the upper left corner representing what exists in that square - fixed resources, or species territories.
Would be nice to have a zoom - so there are two resolutions. One, where you can see the whole world and click on different territories to see how things are spread out, and a second closeup map where you can see maybe just a 5x5 grid and scroll around.
player will need to shop at the Store
PRINT "For your secondary mutation, you may choose one of the following." List the names of all 6 secondary mutations. INPUT "which secondary mutation you choose" PRINT 'Your secondary mutation is "_name" "_bonus" "bonusStyle" vs "_target"'
note: inherent in the game math, Every species gets a +40 general defense bonus against all attackers.' With no attack or defense bonuses, an attacker would start with 100% success rate, then the general defense rate (40) would turn that into 60. 100-40=60.
player makes dietary decisions. adjustDiet will display a data table: 1.available food sources (with a strikethru if species cannot eat them), 2.foods the species can eat (even if unavailable) and the reminder "to make changes to your territory, or to what your species can eat (your metabloism), please visit the store. "
choices: sliders will allow you to manage your desired diet ratios if there is a surplus of available food. If there is not enough food, you will eat as much as you can of each available food. There will also be a checkbox where you can choose to have the computer always calculate your optimal diet, or only calculate if you miss a turn. If the checkbox is checked, a dropdown menu allows you to select the computer's strategy, such as 1. maximize fixed resources 2. maximize prey 3. most balanced and varied diet 4. eat the most you can at what you are best at eating.
OUTPUT: your optimal diet is
45% fixed resource 1 [name]
45% fixed resource 2 [name]
10% prey species 1 [name]
If a player does not login during turn two before the turn ends, 'maximize fixed resources' will determine diet.
so now, each species has a list of attributes:
2. territory (which grid squares it travels to)
3. current biomass
4. previous biomass (for all previous turns)
5. list of what it can eat
6. list of what eats it
7. list of mutations it possesses
8. for each mutation, how large the bonus is (in increments of +/- 5)
9. reproductive rate (starting value = .5)
10. an image of species
11. a randomly assigned color for graphs and such