module soldstate;

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

class SoldState : 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.getNoQuarterState());
        }
        else
        {
            writeln("Упс, кончились жевательные шарики!");
            gumballMachine.setState(gumballMachine.getSoldOutState());
        }
    }
    
    void refill() {}
 
    override string toString() const
    {
        return "раздача жевательной резинки";
    }
}