Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add American-style preparation time #6

Open
czlee opened this issue Jul 27, 2013 · 5 comments
Open

Add American-style preparation time #6

czlee opened this issue Jul 27, 2013 · 5 comments

Comments

@czlee
Copy link
Owner

czlee commented Jul 27, 2013

Suggested approach: The main counter always represents the total prep time elapsed (including all stages), and the prep time used in this stage is a new set of methods. The brainwork is all done in DebateManager, i.e. DebatePhaseManager doesn't require modification.

  • DebateManager#resetActivePhase() would discriminate prep times apart and not call DebatePhaseManager#reset() if it is a distributed prep time phase, but instead just set stop the timer and set the current time to the total prep time allowed less the sum of all other stages.
  • Prep time phases are specified by <prep team="affirmative"> in the XML file, and as far as the app is concerned are just numbered from 0.
  • Would need to override the period info description with the name of the next speaker.
  • Would need new member mPrepTImes being a map of enums (for the teams) to a list of times.
  • You can always calculate the time for this phase in DebateManager by subtracting the sum of all other phases from the time elapsed in this phase.
  • Time elapsed in this phase is shown in smaller font where the POI button normally is, and always counts up, never down as that would make no sense.
  • No need to worry about length/overtime from GUI perspective, as these don't change. What changes is the initial value of the timer, as it is set to the time remaining of all prep time stages.
  • However, will need to update controls so that "Start" is displayed when the time remaining is equal to the total time available minus the time used in other prep time stages.

Then the phase index logic will have to be written to accommodation for distributed prep time.

@irohthepyro
Copy link

irohthepyro commented Jan 6, 2017

Curious if you've added this enhancement to prep time or not.

I wrote a custom debate format file for a US High School style of debate that has separate prep for the opposing sides, as well as multiple periods of prep pulling from the same 4 min pool for each competitor (e.g. The Affirmative side uses 2:13 of their 4:00 of prep time in the first period, and then has 1:47 of prep time remaining for their second period of prep, while the Negative side has a separate 4:00 that operates the same way).

The closest I can come to creating this currently is making two speeches (not prep time) in the speeches section, pausing them when a competitor stops using prep time, and scrolling back to those speeches when I want to resume their prep time.

Something that would work just as well for me as creating an entirely new feature for prep time would just be an ability to recall previous speeches in the flow of the round. Currently speeches move in an A to B to C to D format. If the speeches could move A to B to C and then back to A before proceeding onto D that would solve the issue I'm having as I could simply use speeches instead of prep time to create the desired effect.

I know virtually nothing about programming, just enough to get by using your guide to create a custom debate file, so I don't know if this feature already exists or not, but thanks for your help and for making a quite useful debate app.

@czlee
Copy link
Owner Author

czlee commented Jan 6, 2017

Hi, thanks for your interest! I agree that your approach is the best that can be done with the current set up. My idea is to have something similar, but to do it so that it always scrolls through prep times between speeches, so the "speech order" would be (for example)

  1. Affirmative prep time
  2. 1st Affirmative Constructive
  3. Cross-examination
  4. Negative prep time
  5. 1st Negative Constructive
  6. Cross-examination
  7. Affirmative prep time
  8. 2nd Affirmative Constructive
  9. Cross-examination
  10. Negative prep time
  11. 2nd Negative Constructive
    and so on.

The idea is that all of the prep times would be linked, so when you scroll to step 7, it shows the same timer as step 1. This is the part that's missing from the current implementation, which is why Debatekeeper doesn't support the American styles. If I understand correctly, the only difference between what I have and what you have in mind is that I'd model these as a specially marked "prep time" rather than a speech, so this "returning to prep time" feature only works for prep times (though the distinction is mainly one of labelling).

Implementing it would be quite nontrivial, which is what's prevented me from doing it so far (along with other higher priorities that I've had in debating software more generally), but if you have thoughts on the above I'd really appreciate them! I'm not familiar (at all) with the LD/CX/PF formats.

@irohthepyro
Copy link

irohthepyro commented Jan 6, 2017

I'd be happy to help! Anyone creating free software for the debate community deserves it.

We're pretty much getting at the same idea with what the prep time needs to be like. Unlike in many international/parliamentary forms of debate (I'm most familiar with World Schools) where resolutions are given just prior to debate beginning, LD/CX/PF all have their topics preset a month in advance for 2 months of competitive season giving competitors time to prepare prior to the tournament(s) they will attend in that 2 month span. Therefore prep time is given exclusively for competitors to construct rebuttals prior to their rebuttal speech(s) beginning.

This means that prep time is not at the beginning of the round as is currently the default/only way to set prep in debatekeeper. The reason I used speeches for my "prep timers" instead of the designated prep timer was to allow 2 seperate timers (Aff and Neg) to run in the same debate timer.

My custom timer setup is for LD Debate and has the "speech order" like so:

  1. Affirmative Constructive
  2. Negative Cross-Ex
  3. Negative Prep Time
  4. Negative Constructive/Rebuttal
  5. Affirmative Cross-Ex
  6. Affirmative Prep Time
  7. 1st Affirmative Rebuttal
  8. Negative Rebuttal
  9. 2nd Affirmative Rebuttal

Now ideally there would also be a Neg Prep before 8 and an Aff Prep before 9 but I understand why the interface won't allow this.

So basically I agree with you on what needs to be done, the only reason I was using speeches instead of the designated "prep time" was to create 2 timers, and to decrease the amount of scrolling back I have to do in round to get back to the correct prep timer.

@czlee
Copy link
Owner Author

czlee commented Jan 7, 2017

Ah, I see, thanks, this is extremely useful! If you think you're up to a pull request obviously I (and I'm sure many users) would very much appreciate it, otherwise I'll try to get to it soon, though with what I know I have ahead I'm not optimistic about anything happening before summer.

Question: Should the prep time ideally start as soon as the speech timer stops, or can things happen (even just a few seconds' worth) in between the end of cross-ex and the start of prep time? And similarly, should prep time continue until the next speech actually starts, or can things happen (e.g. calling or introducing the next speaker) after prep time and before the start of the next speech?

@irohthepyro
Copy link

irohthepyro commented Jan 8, 2017

I went ahead and attached the file for the LD Debate timer to this post (had to zip the file otherwise it would not let me upload it). I was hardly expecting you to see this post so I'm not too concerned about the time frame of implementation, just wanted to let you know there was still interest.

In terms of prep time starting, it would actually be better if there is a gap between the end of the speech and prep time beginning as there is almost always some kind of shuffling of papers, moving from a podium to a desk to write, etc.
LincolnDouglas_v2.xml.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants