#1 by ahallman
Hi!
I want to make playing against bots as life-like as possible. Hence, the subjects should see a waitpage for a minimum time (say, 20 seconds) whenever they play against bots. I hence created the usual HTML5-page and made it look like a waitpage, and used timeout to make them progress to the next page after a certain amount of time. However, they never get to the next page.
Time-outs work on the other pages with the same code. I tried including a 'next'-button on the page, but nothing happens if i click on it. Playing against bots (ghosts) works fine otherwise, I'm just trying to avoid the 'p1 makes a decision and is immediately forwarded to the results-page' as it's the obvious that it was against a bot.
Code below:
session config:
SESSION_CONFIGS = [dict(name='my_session',
... the usual ..
slowbot_timeout_seconds = 30,
)]
init:
class slowbots_page(Page):
@staticmethod
def get_timeout_seconds(player):
return player.session.config["slowbot_timeout_seconds"]
form_model = "player"
@staticmethod
def is_displayed(player: Player):
if player.participant.dropout:
return False
return player.against_ghost == True
page_sequence = [
Set_state_page,
P1_pages,
slowbots_page,
P2_pages,
ResultsWaitPage,
Results,
]
HTML: slowbots_page.html
{{ extends 'otree/WaitPage.html' }}
{{ block title }}
Please wait
{{ endblock }}
{{ block content }}
<script>
setInterval(function () {
window.location.reload();
}, 10000);
</script>
<p>
You are waiting for a player in your group to make their decisions.
</p>
{{ endblock }}
#2 by Chris_oTree
Take a look at bots_vs_humans here: https://www.otreehub.com/projects/otree-more-demos/ A regular page cannot use the WaitPage template. That's probably why the next-button or timeout isn't working.
#3
by
ahallman
Thank you!!!