Monox Val here. Currently ranking #1 in Farmer’s Feud 100% win ratio. I’m loving the game and I want to give some feedback.
In Javascript, ‘console.log()’ doesn’t seem to work. Instead I’m using print(). Is this intended or a bug ?
The opposite field type of ‘construction’ is missing (e.g ‘clearing’). When an enemy is clearing a field, which takes 2 second, the type of hero.whatAt('xx') will report empty.
Is poison actually a 0x multiplier? I have seen some fields with positive numbers even with active poison.
The hero.score works for my hero but not for the enemy enemyHero = hero.getEnemyHero().
It would also be nice to have a .name or .id methods just to print fun messages to the console including the enemy name. Gamers will have a fun surprise when they open the developer tools and see those messages
The game is by default logging too many messages and shuts up at 200 logs. Somewhere after game time 100s+ the print command stops logging to the console. It would be also nice if the random name in the console was different for both players. Currently, printing at the console shows the same name for both players.
When reading a field income property, it shows the actual number with all multipliers applied (including rain & mist). It would be nice to have an ‘.incomeReal’ that shows the income without rain or mist but includes the river and other fields multiplier. Currently, I have to match against active rain & mist col/rows and calculate the real
income. (Poison with x0 mutiplier is tricky and will lead to division by 0).
It would be useful if hero.findRains() and hero.findMists() additionally had a .timeLeft or .timeStarted properties.
That’s all I can remember off my head now. Sorry I didn’t take screenshots!
Absolutely. 25% speed reduction applied to the worker. I permanently read the enemy worker position and send him a rain asap throught the full game length. The only exception is when my worker is in the same column as the eneny column, then I simply don’t cast the rain, and let the next loop iteration decide again.
Something similar happened to me. I had a loss. I watched it and I ended up winning. I was like ok what’s going on here?
At the beginning I thought that was a bug, but later I realized the root of the issue. Are you using the hero color “red” or “blue” somewhere in your code? Everytime you manually fight the enemy, you are the red team. However, when the CPU is playing games on your behalf, sometimes you are red and sometimes blue. This is what caused the error discrepancy. I fixed it by using in Javascript:
Which also leads to a bug report. When I pick a battle I should randomly be assigned to red or blue. Not defaulted to red. This will improve everybodys code.
Hello, sorry for the late response, just getting back into this arena
console.log() does seem to work on my side,
will check the hero.whatAt() on clearing fields
Yes, poison is x0, however as stated in the documentation, if a farm is next to a river, if its poisoned, it will have some of its income returned, so not x0 for that farm if its next to a river
hero.getEnemyHero().score returns correctly on my side, can you provide some screenshots or example code?
I don’t think we can add a .name or .id method since it could allow players to have specific reaction/strategy to certain players
Will share the rest of your feedback with the team to discuss it further, thank you for the suggestions!
The matches are fully mirroring, so if you or your opponent don’t use explicitly red or blue constants then the match should happens with the same result. If you have another experience then its a bug – please send us a link to such match (specate mode so both ids are presented)
Nope. We won’t give this. Honestly console.log visible for both players is a problem that we should disable I think to avoid such messages to your opponent.
First, “poison” mist are eroding field.
I thought part of “wheat” mist was cleared by rain, but cleared part eroded by “poison” mist in this picture.
In the future, all of field will be cursed by poison… will not?
I agree. It is very hard to calculate real income(no factor outside the field, riverFactor do not duplicate, and you have to calculate all income in field when you consider mistFactor and rainFactor).
Finally, I got #1 ranking, but I will fix and improve my code to save this rank. (I have been displaced at the top in “Magma Mountain”…) Thanks for the challenging league.
(By the way, I’m not from English speaking country. So let me know if I say something that’s unclear.)
I’ve been having problems. when I beat someone ranked above me it dosen’t move me up. Is the ranking using somthing other than beating the person above me?
Makes sense. Also for privacy concerns, it’s better to keep it anonymus. But if you guys chose to disable console.log() / print(), how can we read the data? Those aren’t the best tools for debugging but still good enough for this game.
There are not a match link, sorry.
The code below may make same situation.
time = 99999
while True:
if time + 5.1 < hero.time and hero.isReady("mist"):
time = 99999
if len(hero.findMists()) == 0: continue
mistPos = []
for mist in hero.findMists(): mistPos.append(mist.row)
if hero.findMists()[0].type != "garden": type = "garden"
else: type = "wheat"
for i in range(10):
if i not in mistPos and ((i != 0 and i-1 in mistPos) or \
(i != 9 and i+1 in mistPos)):
hero.mist(type,i)
break
elif hero.isReady("rain"):
hero.rain("G")
time = hero.time
hero.wait(0.1)