Skip to content

Gamification Of Skills

Moti Barski edited this page Apr 10, 2025 · 1 revision

Gamification in LivinGrimoire

Introduction

Some skills within the LivinGrimoire system are paired with a gamificational connection, comprising a grind skill and a costly skill.

To activate the costly skill, the gamification bank must be filled by engaging in grind skills. This gamification principle, commonly used in video games to enhance player experience, also applies to brain skills.

Concept

  • Grind Skill: These are the skills that contribute to filling the gamification bank.
  • Costly Skill: These are the skills that require the gamification bank to be filled to function.

Example Code Usage

Brain b1 = new Brain();
b1.hardwareChobit.addSkill(new DiSysOut());

DiGamificationSkillBundle dsb = new DiGamificationSkillBundle();
dsb.addGrindSkill(new DiHelloWorld());
dsb.addCostlySkill(new DiTime());

b1.logicChobit.addSkill(dsb);

Limitless grind and costly skills can be added. The DiGamificationSkillBundle only connects specific grind and costly skills within it and does not affect other DiGamificationSkillBundle skills.

Comparison to People

If the gamification bank is empty, the person is "not in the mood" to engage in reward skills. To do so, the person would need to engage in grind skills first. It's similar to postponing a reward until after completing a task, like cleaning a room after watching a movie.

Gamification Reader Skill

To monitor the LivinGrimoire's mood, you can use the DiGamificationScouter skill:

class DiGamificationScouter(Skill):
    def __init__(self, ax_gamification):
        super().__init__()
        self.lim: int = 2  # minimum for mood
        self.ax_gamification: AXGamification = ax_gamification
        self.no_mood: Responder = Responder("bored", "no emotions detected", "neutral")
        self.yes_mood: Responder = Responder("operational", "efficient", "mission ready", "awaiting orders")

    def set_lim(self, lim):
        self.lim = lim

    def input(self, ear, skin, eye):
        if ear != "how are you":
            return
        if self.ax_gamification.getCounter() > self.lim:
            self.setSimpleAlg(self.yes_mood.getAResponse())
        else:
            self.algPartsFusion(4, APSad(self.no_mood.getAResponse()))

    def skillNotes(self, param: str) -> str:
        if param == "notes":
            return "Determines mood based on gamification counter and responds accordingly."
        elif param == "triggers":
            return "Triggered by the phrase 'how are you'. Adjusts mood response based on gamification counter."
        return "Note unavailable"

Adding the Skill

To add the DiGamificationScouter skill, use the following code:

bundle_skill: DiGamificationSkillBundle = DiGamificationSkillBundle()
brain.add_logical_skill(DiGamificationScouter(bundle_skill.getAxGamification()))  # how are you skill, engage grind skills to increase mood

This skill checks the LivinGrimoire's mood and responds accordingly, encouraging the engagement of grind skills to enable costly skills.

Clone this wiki locally