👨‍💻 dev mega digivolution speech lobe

development

fukurou

the supreme coder
ADMIN
Code:
class Digivolution(Skill):
    """
    this unique skill upgrades a base skill with upgrade skills
    when an upgrade skill wants to run, it overrides the base skill
    subclasses can be coded with logic to equip and unequip upgrade skills at runtime
    """
    def __init__(self, base_skill:Skill):
        super().__init__()
        self.upgrades: list[Skill] = []
        self.active_upgrade = 0
        self.upgrades.append(base_skill)

    def input(self, ear: str, skin: str, eye: str):
        for i, upgrade in enumerate(reversed(self.upgrades)):
            idx = len(self.upgrades) - 1 - i
            upgrade.input(ear, skin, eye)
            if upgrade.pendingAlgorithm():
                self.active_upgrade = idx
                return

    def setKokoro(self, kokoro: Kokoro):
        self._kokoro = kokoro  # potential usage in sub classes for runtime upgrades mode.
        for upgrade in self.upgrades:
            upgrade.setKokoro(kokoro)

    def pendingAlgorithm(self) -> bool:
        return self.upgrades[self.active_upgrade].pendingAlgorithm()

    def output(self, neuron: Neuron):
        self.upgrades[self.active_upgrade].output(neuron)
        self.active_upgrade = 0

    def skillNotes(self, param: str) -> str:
        return self.upgrades[self.active_upgrade].skillNotes(param)

    def add_skill_tree(self, skill: Skill) -> "Digivolution":
        self.upgrades.append(skill)
        return self
 

fukurou

the supreme coder
ADMIN
Python:
class DiDigivolutionTest(Skill):
    def __init__(self):
        super().__init__()
        self.toggeld = False

    # Override
    def input(self, ear: str, skin: str, eye: str):
        if ear == "toggle":
            self.toggeld = not self.toggeld
            print("toggled didigivolution test")
            return
        if self.toggeld and ear == "hello":
            self.setVerbatimAlg(4, "toasty test")  # # 1->5 1 is the highest algorithm priority

    def skillNotes(self, param: str) -> str:
        if param == "notes":
            return "plain toasty test skill"
        elif param == "triggers":
            return "say hello"
        return "note unavalible"
 

fukurou

the supreme coder
ADMIN
Python:
class EvoChain(Skill):
    """
    this unique skill upgrades a base skill with upgrade skills
    when an upgrade skill wants to run, it overrides the base skill
    subclasses can be coded with logic to equip and unequip upgrade skills at runtime
    """
    def __init__(self, *skills:Skill):
        super().__init__()
        self.upgrades: list[Skill] = []
        self.active_upgrade = 0
        for skill in skills:
            self.upgrades.append(skill)

    def input(self, ear: str, skin: str, eye: str):
        for i, upgrade in enumerate(reversed(self.upgrades)):
            idx = len(self.upgrades) - 1 - i
            upgrade.input(ear, skin, eye)
            if upgrade.pendingAlgorithm():
                self.active_upgrade = idx
                return

    def setKokoro(self, kokoro: Kokoro):
        self._kokoro = kokoro  # potential usage in sub classes for runtime upgrades mode.
        for upgrade in self.upgrades:
            upgrade.setKokoro(kokoro)

    def pendingAlgorithm(self) -> bool:
        return self.upgrades[self.active_upgrade].pendingAlgorithm()

    def output(self, neuron: Neuron):
        self.upgrades[self.active_upgrade].output(neuron)
        self.active_upgrade = 0

    def skillNotes(self, param: str) -> str:
        return self.upgrades[self.active_upgrade].skillNotes(param)

class DiDigivolutionTest(Skill):
    def __init__(self):
        super().__init__()
        self.toggeld = False

    # Override
    def input(self, ear: str, skin: str, eye: str):
        if ear == "toggle":
            self.toggeld = not self.toggeld
            print("toggled didigivolution test")
            return
        if self.toggeld and ear == "hello":
            self.setVerbatimAlg(4, "toasty test")  # # 1->5 1 is the highest algorithm priority

    def skillNotes(self, param: str) -> str:
        if param == "notes":
            return "plain toasty test skill"
        elif param == "triggers":
            return "say hello"
        return "note unavalible"
 

fukurou

the supreme coder
ADMIN
Python:
class DiFunnel(Skill):
    # default skill for EvoChain
    def __init__(self):
        super().__init__()

    # Override
    def input(self, ear: str, skin: str, eye: str):
        self.setSimpleAlg(ear)

class EvoChain(Skill):
    """
    this unique skill upgrades a base skill with upgrade skills
    when an upgrade skill wants to run, it overrides the base skill
    subclasses can be coded with logic to equip and unequip upgrade skills at runtime
    """

    def __init__(self, *skills: Skill):
        super().__init__()
        self.upgrades: list[Skill] = []
        if skills is empty == 0:
            self.upgrades.append(DiFunnel())
        else:
            for skill in skills:
                self.upgrades.append(skill)
        self.active_upgrade = 0

    def input(self, ear: str, skin: str, eye: str):
        for i, upgrade in enumerate(reversed(self.upgrades)):
            idx = len(self.upgrades) - 1 - i
            upgrade.input(ear, skin, eye)
            if upgrade.pendingAlgorithm():
                self.active_upgrade = idx
                return

    def setKokoro(self, kokoro: Kokoro):
        self._kokoro = kokoro  # potential usage in sub classes for runtime upgrades mode.
        for upgrade in self.upgrades:
            upgrade.setKokoro(kokoro)

    def pendingAlgorithm(self) -> bool:
        return self.upgrades[self.active_upgrade].pendingAlgorithm()

    def output(self, neuron: Neuron):
        self.upgrades[self.active_upgrade].output(neuron)
        self.active_upgrade = 0

    def skillNotes(self, param: str) -> str:
        return self.upgrades[self.active_upgrade].skillNotes(param)

class DiDigivolutionTest(Skill):
    def __init__(self):
        super().__init__()
        self.toggeld = False

    # Override
    def input(self, ear: str, skin: str, eye: str):
        if ear == "toggle":
            self.toggeld = not self.toggeld
            print("toggled didigivolution test")
            return
        if self.toggeld and ear == "hello":
            self.setVerbatimAlg(4, "toasty test")  # # 1->5 1 is the highest algorithm priority

    def skillNotes(self, param: str) -> str:
        if param == "notes":
            return "plain toasty test skill"
        elif param == "triggers":
            return "say hello"
        return "note unavalible"
 
Top