Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main;
- import java.util.TimerTask;
- public class ActivePerk
- {
- private enum PerkState {
- READY, // Готов к использованию;
- ACTIVE, // Уже использован;
- COOLDOWN // Время работы уже завершилось, но еще не готов к использованию.
- }
- private int ID;
- private int WorkTime; // ms
- private int CooldownTime; // ms
- private PerkState State;
- ActivePerk(int id, int workTime, int cooldownTime)
- {
- ID = id;
- WorkTime = workTime;
- CooldownTime = cooldownTime;
- State = PerkState.READY;
- System.out.println("Создание экземпляра активного перка.");
- }
- public int getID()
- {
- return ID;
- }
- public int getWorkTime()
- {
- return WorkTime;
- }
- public int getCooldownTime()
- {
- return CooldownTime;
- }
- public PerkState getPerkState()
- {
- return State;
- }
- public void useActivePerk()
- {
- System.out.println("Вы пытаетесь активировать перк.");
- if (State == PerkState.READY)
- {
- System.out.println("Возможность активации перка доступна.");
- State = PerkState.ACTIVE;
- System.out.println("Перк активирован на "+WorkTime+" сек.");
- runActivePerk();
- }
- }
- private void runActivePerk()
- {
- new java.util.Timer().schedule
- (
- new TimerTask()
- {
- public void run()
- {
- System.out.println("Работа перка завершена.");
- State = PerkState.COOLDOWN;
- System.out.println("Перк переходит в кулдаун на "+CooldownTime+" сек.");
- cooldownActivePerk();
- }
- }, WorkTime*1000
- );
- }
- private void cooldownActivePerk()
- {
- new java.util.Timer().schedule
- (
- new TimerTask()
- {
- public void run()
- {
- System.out.println("Перк откатился.");
- State = PerkState.READY;
- System.out.println("Перк готов к использованию.");
- }
- }, CooldownTime*1000
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment