module winnerstate;

import std.stdio : writeln;
import state, gumballmachine;

class WinnerState : State
{
    GumballMachine gumballMachine;
 
    this(GumballMachine gumballMachine)
    {
        this.gumballMachine = gumballMachine;
    }
 
    void insertQuarter()
    {
        writeln("Пожалуйста, подождите, мы уже даем вам жвачку");
    }
 
    void ejectQuarter()
    {
        writeln("Пожалуйста, подождите, мы уже даем вам жвачку");
    }
 
    void turnCrank()
    {
        writeln("Дважды дернув за рычаг вы не получите другую жвачку!");
    }
 
    void dispense()
    {
        gumballMachine.releaseBall();
        if (gumballMachine.getCount() == 0)
        {
            gumballMachine.setState(gumballMachine.getSoldOutState());
        }
        else
        {
            gumballMachine.releaseBall();
            writeln("ТЫ ПОБЕДИТЕЛЬ! У тебя есть два жевательных шарика на твой четвертак");
            if (gumballMachine.getCount() > 0)
            {
                gumballMachine.setState(gumballMachine.getNoQuarterState());
            }
            else
            {
                writeln("Упс, кончились шарики!");
                gumballMachine.setState(gumballMachine.getSoldOutState());
            }
        }
    }
 
    void refill() {}
    
    override string toString() const
    {
        return "раздаем два жевательных шарика за твою четвертак, потому что ТЫ ПОБЕДИТЕЛЬ!";
    }
}
