"""
Puberty and Physical Development Events
Events related to puberty and physical changes (ages 10-16)

Events from dayEvents.py:
- puberty: General puberty start event
- startedPeriod: First period for female characters
- braces: Getting braces
- glasses: Getting glasses
"""

import random
from events.base import messageFunction


def puberty(player, type='message'):
    """General puberty start event"""
    fname = 'puberty'
    check = player.c.ageYears == 12 and fname not in player.events
    if (check):
        message = 'You wake up to feel a dot on your face just under the skin. Welcome to puberty!'
        player.events.add(fname)
        return messageFunction(fname,message,player,check)


def startedPeriod(player, type='message'):
    """First period for female characters"""
    fname = 'startedPeriod'
    check = fname not in player.events and player.c.sex == 'Female' and player.c.ageYears >= 10 and player.c.ageYears < 14 and 1 >= random.random()*1000
    message = "You have started your first period"
    return messageFunction(fname,message,player,check)


def braces(player, type='message', message=False, response=False):
    """Getting braces"""
    fname = 'braces'
    check = fname not in player.askedQuestions and player.c.ageYears >= 7 and player.c.ageYears < 20 and 1 >= random.random()*10000
    message = "At a recent trip to the dentist they said you need to get braces!"
    if (check):
        player.askedQuestions.add(fname)
        if (random.random() > 0.5): # this pattern should make it yes or no for your whole life
            return False
        else:
            player.c.braces = True
            return messageFunction(fname,message,player,check)


def glasses(player, type='message', message=False, response=False):
    """Getting glasses"""
    fname = 'glasses'
    check = fname not in player.askedQuestions and player.c.ageYears >= 7 and player.c.ageYears < 20 and 1 >= random.random()*10000
    message = "At a recent trip to the eye doctor they said you need to get glasses!"
    if (check):
        player.askedQuestions.add(fname)
        if (random.random() > 0.6): # this pattern should make it yes or no for your whole life
            return False
        else:
            player.c.glasses = True
            return messageFunction(fname,message,player,check)


__all__ = [
    'puberty',
    'startedPeriod',
    'braces',
    'glasses',
]
