-
Notifications
You must be signed in to change notification settings - Fork 168
Achievement System Staff Guide
Achievements are made up of two parts: The achievement itself, and the goals that need to be completed to complete the achievement.
There are two pages that achievements use:
- Achievement Dashboard (
/achievements
) which can be accessed through the navigation bar - Achievement Control (
/achievements/control
) which can only be accessed through URL.
The following is how the achievement dashboard looks like to a staff:
This is where you see what achievements you have earned. For staff, it is also where you give other users achievements.
An achievement is made up of a few goals, and once each of its goals are complete, the achievement will be earned. Each goal has a target count, which the goal's count has to be greater or equal to in order to complete the goal.
Importantly, there is a bar for updating the goals of other users.
- User is a dropdown of all the users in your studio group (all users if you are not assigned to a group)
- Goal is a dropdown of all the goals that can be updated manually (aka Manual Goals)
- Count is how much the goal's count should be set to Click on Update Goal after you selected the settings to update that user's goal.
Initially, the goals and achievements displayed on the page belong to you. When a user is selected, the progress of goals and achievements displayed on this page belong to the selected user.
Students will be able to see achievements that are not hidden (more on this in achievement control), and have already been released. Additionally, students can also see achievements that are hidden that they managed to achieve. In order to see all the achievements regardless of release date and completion status, you can check the 'View Hidden Achievements' checkbox.
You can filter the achievements based on their completion status. Clicking on an achievement will display the corresponding achievement view on the right side. The achievement view shows a list of goals that need to be completed to obtain the achievement.
The achievement control is the place where you can add new goals and achievements at any time. The following is how it looks:
You can select an achievement and click the view button to see how its achievement view would look like. The components are as seen in the following example:
Achievements have the following properties:
- Title: the name of the achievement
- XP: the amount of XP that the student receives when he completes the achievement
- Ability: the classification of the type of achievement (Core, Effort, Exploration, Community, Flex)
- Release: When the achievement will start to be visible and obtainable
- Deadline: When the achievement will no longer be able to be obtained
If an achievement has no release, it will be released by default. Similarly, if an achievement has no deadline, it will not expire. Note that goals can still be obtained while the achievement is not released/expired, and that you should set the same release and deadline for the goal too if the goal should only be achievable while the achievement is released.
You can click the box icon to open up view settings, and input things like the description, background image, and completion text.
You can also click the wrench icon to edit more settings. These include:
- Card Background: the background image used for the achievement card
- Position: the order of the achievement as listed in the dashboard. 0 means that the achievement is hidden
- Prerequisites: other achievements that have to be completed before this achievement
- Goals: the goals that have to be completed for this achievement to be completed
- VariableXp: when this is checked, the achievement will have a variable XP awarded (elaborated below)
Hidden achievements are only visible when they are completed. If an achievement has no goals, it will never be completed. Variable XP means that once the achievement is completed (by completing all of its goals), the XP awarded will be equal to the sum of all the 'count' values of the goals. For example:
There are currently two types of goals that are supported: Manual and Event
Goals have a target count, which is the number that needs to be reached for the goal to be completed. A goal's count is just a number that signifies the progress.
Manual goals are completed when a staff awards it to the student via the achievement dashboard.
Event goals have their count increased by 1 when the user does an event between the release and deadline, within the 'observe from' and 'observe to' times.
Currently, the following events exist:
- Run Code which is when code is run from the editor
- Error which is when code that is run results in error(s)
- Infinite Loop which is when code that is run results in an infinite loop error
- Run testcase which is when a testcase is run
To elaborate, an event goal with event types "Error" and "Infinite Loop" will have its count increase by one every time an error that is not an infinite loop occurs, and twice when an error that is an infinite loop occurs.
An event goal with type "Run Code", observe from of 0100 and observe to of 0200 will only increase when code is run between 1am and 2am of every day between the specified release and deadline.
Currently, students will also have an achievement automatically generated for each assessment in the achievement dashboard. No further action is required when uploading new assessments for this to happen.
It does not get generated for staff, or when staff select a student to view their achievement due to technical difficulties.
These achievements are will give students the right amount of XP which will be added to the XP bar on the top left hand corner