tea party

fukurou

the supreme coder
ADMIN
Python:
import random
import time

class DiTeaParty(Skill):
    def __init__(self):
        super().__init__()
        self.set_skill_type(2)  # continuous skill
        self.toggle = "lets have a tea party"
        self.sip_min = 20   # seconds
        self.sip_max = 60   # seconds
        self.party_duration = 300  # 5 minutes total
        self.responder = Responder("sip", "sippy sip", "slurp", "mwahaha")
        self.is_on = False
        self.end_time = None
        self.next_sip_time = None

    @staticmethod
    def rand_between(a, b):
        return random.randint(a, b)

    def input(self, ear, skin, eye):
        if ear == self.toggle:
            self.is_on = True
            now = time.time()
            self.end_time = now + self.party_duration
            self.next_sip_time = now + self.rand_between(self.sip_min, self.sip_max)
            self.setSimpleAlg("ok lets drink tea together")
            return

        if not self.is_on:
            return

        if ear and ear.lower().strip() == "stop":
            self.is_on = False
            self.setSimpleAlg("tea party ended")
            return

        if ear == "cheers":
            self.setSimpleAlg("cheers")
            return

        now = time.time()

        if now >= self.end_time:
            self.is_on = False
            self.setSimpleAlg("that was a fun tea party")
            return

        if now >= self.next_sip_time:
            self.setSimpleAlg(self.responder.getAResponse())
            # don't schedule past the party's end
            self.next_sip_time = now + self.rand_between(self.sip_min, self.sip_max)
 

fukurou

the supreme coder
ADMIN
Python:
import random
import time

class DiTeaParty(Skill):
    def __init__(self):
        super().__init__()
        self.set_skill_type(2)  # continuous skill
        self.toggle = "lets have a tea party"
        self.party_duration = 300  # 5 minutes total
        self.responder = Responder("sip", "sippy sip", "slurp", "mwahaha")
        self.is_on = False
        self.end_time = None
        self.next_sip_time = None

    @staticmethod
    def rand_between(a, b):
        return random.randint(a, b)

    def next_gap(self, elapsed):
        """Sip spacing that mimics how people actually drink tea:
        - first sip: hesitant, it's hot, longer gap
        - middle: steady rhythm, shorter gaps
        - final stretch: slowing down, savoring/finishing
        """
        remaining = self.party_duration - elapsed
        if elapsed < 30:
            return self.rand_between(35, 55)      # blowing on it, first sip is cautious
        elif remaining < 60:
            return self.rand_between(40, 70)       # winding down, fewer sips left
        else:
            return self.rand_between(18, 38)       # steady mid-party rhythm

    def input(self, ear, skin, eye):
        if ear == self.toggle:
            self.is_on = True
            now = time.time()
            self.start_time = now
            self.end_time = now + self.party_duration
            self.next_sip_time = now + self.next_gap(0)
            self.setSimpleAlg("ok lets drink tea together")
            return

        if not self.is_on:
            return

        if ear and ear.lower().strip() == "stop":
            self.is_on = False
            self.setSimpleAlg("tea party ended")
            return

        if ear == "cheers":
            self.setSimpleAlg("cheers")
            return

        now = time.time()

        if now >= self.end_time:
            self.is_on = False
            self.setSimpleAlg("that was a fun tea party")
            return

        if now >= self.next_sip_time:
            self.setSimpleAlg(self.responder.getAResponse())
            elapsed = now - self.start_time
            self.next_sip_time = now + self.next_gap(elapsed)
 
Top