yehric2018 / mmobot

1 stars 0 forks source link

Introduce skill system #15

Closed yehric2018 closed 1 year ago

yehric2018 commented 1 year ago

Skills will allow players to differentiate from each other by giving them skills at certain things. Throughout a day, a player can gain up to 2 skill points that they can expend on a certain skill, which will improve their proficiency in that skill. The skills we aim to support for now are:

Within each of these skills, there are subskills that can be learned that have special properties that affect vocations. For example, sword skills can be leveled up within the fighting category.

Design

We already have a table called PlayerStats that lists out stats, which contains fighting skills, crafting skills, etc. which are not currently being used. We will remove these columns from the PlayerStats table, and move them to a new table called PlayerSkills. This table will have a one-to-one mapping with the Players table, and will highlight the level of each skill the player has. We will also have a column in this table including the number of skill points to be allocated.

For gaining skill points, we will increment the skill_points by 2 every day for now (this is prone to change). We will make such changes to the event bot via a 12-hour timer.

Milestones

yehric2018 commented 1 year ago

We will likely continue to add on new skills: not just for each occupation, but also subskills within each category. Therefore, it is not very scalable to have each skill correspond to a single field in the PlayerSkills table. It would be better to create a row for each player-skill pair, which would also give information on the level of the skills.

Here is the revised roadmap for implementing PlayerSkills: