Sandbox note : Big change in specs, mainly for balancing issues (thanks to @trichoplax for your sugeestions :))
Major changes : Starting, Turn deroulement (2 phases from now), tie-break, Cloning. Merging may be removed due to the new specs (rendered pretty useless).
With the current specs, 1000 turn migh be WAAAAAAY to much, as you could easily go up to the 17 range... well, you could reach it in 3 turns, and with 3 turns more you could wipe everything with an explode.... Will fix that
Summoner war
tags : king-of-the-killjava
You're a Summoner controlling Demons. Regulary, some tournament are done to dertermine who will be the king. And the king is always the strongest !
As it is a turn-based game, each Summoner will play twice against each opponent. So, for each pair of submission, they will all fight while playing first AND playing last.
A fight is limited to 1000 turns.
A turn is the cumulated actions of both Masters.
The winner of a fight is the one who totally destroyed all the demons of the opponent. The number of Demons you killed will be used as tie-breaker
The winner of the tournament is the Summoner who won the most fights. The same tie-breaker as for fights is used, except it is the cumulated amount of kill :).
The Grid
The grid is 9*17 and the cells are placed as above :
.................
.................
.6..1.......1..6.
.................
.5..2.......2..5.
.................
.4..3.......3..4.
.................
.................
The numbers indicates the position of the starting Demons. Each Summoner will see itself as the left Summoner.
Demons can move and attack on horizontal lines, vertical lines and diagonals.
Starting
You will chose up to 6 Demons to summon, determining their stats and their capacities.
You can give a maximum of 12 stat point distributed among your Demons
Each Demon you summon (at this moment) will cost you 2 points.
Summoning 6 demons will cost 6*2=12 points
Summoning 3 demons will cost you 3*2=6 points, leaving you 6 points to increase their statistics.
Statistics
Demons have 4 statistics :
Life
Hp = 2+Life
If the hp of your Demon reach 0, it dies.
Attack
Determine the damages you deal/heal
Defense
Reduct all incoming damages by defense/2 rounded to superior.
You can't take less than 1 (except if you're attacked for 0 hit points)
Range
Determine the range of your attacks
Basic Moves
There's 3 moves that every Demons can do :
Move
The Demons will move by one unit.
Attack
Deal damages to the Demon in an adjacent cell.
Damages: attack+1
Explode
Destroy the Demon and deal damages to it's surrounding.
It only can be used if your Demon have more than 40% hp.
It does raw damages (defense doesn't influence it).
Damages: attack/2 (raw)
Radius : 1+sqrt(range) (square shaped, truncated)
Capacities
Each Demon will have one capacity in the following list:
Merge
Allows a Demon to absorb an other adding their stats
During the merge process, you chose if you want to keep Merge as a capacity,
or if you want to take the other Demon's capacity.
After merging, a Demon won't be able to clone again.
Heal
Heal nearby Demons but not self.
Heal: attack/2 rounded to superior
Radius : range+1(square)
Cross
Deal damages on all lines or diagonals around your Demon
It will damages on lines if the direction you specify is
North/South/East/West/Self
Otherwise, it will damages on the diagonals.
Damages : attack
Radius : range+1(lines or diagonals)
Eat
Steal some stats if it kills the target
The target must be on an adjacent cell.
Damages : attack
Stat stolen : range (maximum)
The stat stolen will be distributed randomly between the stats
of your Demon. It cannot steal more point that the opponent
Demon have.
Misc
You may give an optional name for your Demons. This name will only be known by you, and could be useful if you want to remember the role you gave to your Demons. This name could be changed at anytime.
Turn deroulement
Each player's turn has 2 steps : the enhance phase and the battle phase.
A turn is derouling as following :
player 1's enhancing phase
player 2's enhancing phase
player 1's battle phase
player 2's battle phaes
Enhance phase
Each turn, you will be given 6+nbTurn/50 stats points.
On turn 1, you will have 6 points.
On turn 50, 7 points.
On turn 1000, 26 points.
Those points will stack upon time if you don't use them.
On turn 1, I had 6 points, I used 4 remain :2
Turn 2, I gain 6 points more, I can use 8.
etc ...
Those points can either be used to increase the stats of your Demons (1 point = 1 life||attack||defense||range) or to clone them.
To clone a Demon, you must use 2+life+attack+defense+range
points. In result, the origin demon will have his points halved, and a clone with the other half will spawn.
Let's say I want to clone the following demon :
life=2
attack=2
defense=5
range=0
capacity=Cross
He has 2+2+5+0 = 9 statistics points, so I would need 2+9=11 points.
The resulting Demons would both be :
life=1
attack=1
defense=3 (yes, stats are rounded to superior :))
range=0
capacity=Cross
Battle phase
At the start of the battle phase, you will be given :
- The current tableboard
- A list containing your Demons and all the information about them
- A list containing the stats and position of your opponent's Demons
You will return the actions of all your Demons.
you have up to x ms to return this list (not decided yet)
Once you've chosen your actions, the following will happen :
- Every Demons which had to move, will move. If two Demons try to move to the same location, they will both stay still.
- All the actions which change the hp(heal/damages) will happens at the same time.
- Finally, your turn end, and your opponent's will decide his actions.
Submissions
Each submission will be written in Java. You can't interact with other players nor the controller in any way you could imagine.
You must extend the following class :
Class not yet developped
A github link will be provided, for the controller etc.
Sandbox notes
I'm aware that there's plenty typos and errors, I will correct them before the final version. Some text and clarification might be added.
As it can be complicated (lot of options), 4 demonstration Summoner will be provided (and will be in the pool), each of them using only some functionnality (prooving that you don't have to use every single thing).
I'm not done yet with all the sources for the controller/field etc. An API will be provided for extracting/using informations easily.
Once it will be complete, I will put a time limit for the execution of one turn.
If I have time, I will provide an interface to see the fights with colors etc.
Questions :
- Is this too complex? I'd like to know if to much options are given, and if it's confusing (ie, if you don't know where to start).
- Is there some points of the ruleset that are obviously dangerous for the good health of this contest.
- Any suggestion?
Thanks for reading :)