What do you want to see in the API?
This is to be re-defined
Support teacher-led scoring rules for box session gameplay only.
A box session should allow the teacher/group admin to configure task packages for teams. These tasks should define what atomic gameplay events are tracked, how many of those events are required, and how many rewards are granted when the whole task is completed.
The task setup should allow different team strategies:
- A team may focus only on playing battles.
- A team may focus only on completing non-battle tasks.
The first team to reach the configured target score, default 100 points, should be considered the winner of the box session.
How do you think this should work?
Box sessions should use a predefined task configuration model similar to:
{
monday: [
{
id: 1,
title: { fi: "Voita 5 peliä" },
content: { fi: "Sun pitää voittaa tänään 5 peliä" },
amount: 5,
type: "win_battle",
coins: 10,
points: 20
}
]
}
The outer key defines the task period or grouping, for example monday, tuesday, week, or month.
Each task should work as follows:
id is a unique task identifier, similar to SQL auto increment.
title is the localized task title.
content is the localized task body/description.
type is an enum value for the atomic task event to track, for example win_battle.
amount defines how many atomic task events are required to complete the whole task.
coins defines how many coins are awarded after completing the whole task.
points defines how many points are awarded after completing the whole task.
For example, type = "win_battle", amount = 5, and points = 20 means:
- each battle win advances the task by 1
- after 5 battle wins, the task is completed
- completing the task gives 20 points total
- it does not give 20 points per battle win
If the intended session rule is “each battle win gives 10 points”, the box session should configure a task with type = "win_battle", amount = 1, and points = 10.
The teacher/group admin should be able to configure task sets so that one team can earn points through battle-related tasks while another team can earn points through non-battle tasks. Box session scoring should still come from completed tasks, not directly from playing or winning battles outside the configured task model.
When a clan in a box session reaches the target score, the session should be marked as ended and the winning clan should be identifiable from the API.
Any additional info?
This should be scoped to box sessions only.
There was already a separate issue for changing normal gameplay scoring so that a battle win gives +10 points. This issue should not redefine normal gameplay scoring. Given scores/points now lives at scoring.values.ts. The amount of coins given from a task could be defined in this file, too.
Implementation-wise, this likely fits best on top of the existing box predefined daily task configuration and daily task completion reward flow.
The missing box-session-specific pieces seem to be:
- support for task period/grouping such as
monday, week, or month, if needed for box sessions
- localized task
content, in addition to the current localized title
- support for assigning/configuring different task sets per team, if the teams should have different strategies
- session target score, default 100
- winner clan tracking
- ending the box session when the target score is reached
- ensuring box-session scoring is awarded on whole task completion, not per atomic event, unless
amount = 1
- The frontend should provide the teacher/group admin with controls to add and configure daily tasks for box session players, using the existing API support for adding box daily tasks.
What do you want to see in the API?
This is to be re-defined
Support teacher-led scoring rules for box session gameplay only.
A box session should allow the teacher/group admin to configure task packages for teams. These tasks should define what atomic gameplay events are tracked, how many of those events are required, and how many rewards are granted when the whole task is completed.
The task setup should allow different team strategies:
The first team to reach the configured target score, default 100 points, should be considered the winner of the box session.
How do you think this should work?
Box sessions should use a predefined task configuration model similar to:
The outer key defines the task period or grouping, for example
monday,tuesday,week, ormonth.Each task should work as follows:
idis a unique task identifier, similar to SQL auto increment.titleis the localized task title.contentis the localized task body/description.typeis an enum value for the atomic task event to track, for examplewin_battle.amountdefines how many atomic task events are required to complete the whole task.coinsdefines how many coins are awarded after completing the whole task.pointsdefines how many points are awarded after completing the whole task.For example,
type = "win_battle",amount = 5, andpoints = 20means:If the intended session rule is “each battle win gives 10 points”, the box session should configure a task with
type = "win_battle",amount = 1, andpoints = 10.The teacher/group admin should be able to configure task sets so that one team can earn points through battle-related tasks while another team can earn points through non-battle tasks. Box session scoring should still come from completed tasks, not directly from playing or winning battles outside the configured task model.
When a clan in a box session reaches the target score, the session should be marked as ended and the winning clan should be identifiable from the API.
Any additional info?
This should be scoped to box sessions only.
There was already a separate issue for changing normal gameplay scoring so that a battle win gives +10 points. This issue should not redefine normal gameplay scoring. Given scores/points now lives at scoring.values.ts. The amount of coins given from a task could be defined in this file, too.
Implementation-wise, this likely fits best on top of the existing box predefined daily task configuration and daily task completion reward flow.
The missing box-session-specific pieces seem to be:
monday,week, ormonth, if needed for box sessionscontent, in addition to the current localizedtitleamount = 1