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 "раздаем два жевательных шарика за твою четвертак, потому что ТЫ ПОБЕДИТЕЛЬ!"; } }