Krizalis

Untitled

Apr 4th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.09 KB | None | 0 0
  1. package main;
  2.  
  3. import java.util.TimerTask;
  4.  
  5. public class ActivePerk
  6. {
  7.     private enum PerkState {
  8.         READY, // Готов к использованию;
  9.         ACTIVE, // Уже использован;
  10.         COOLDOWN // Время работы уже завершилось, но еще не готов к использованию.
  11.     }
  12.     private int ID;
  13.     private int WorkTime; // ms
  14.     private int CooldownTime;   // ms
  15.     private PerkState State;
  16.    
  17.     ActivePerk(int id, int workTime, int cooldownTime)
  18.     {
  19.         ID = id;
  20.         WorkTime = workTime;
  21.         CooldownTime = cooldownTime;
  22.         State = PerkState.READY;
  23.         System.out.println("Создание экземпляра активного перка.");
  24.     }
  25.    
  26.     public int getID()
  27.     {
  28.         return ID;
  29.     }
  30.    
  31.     public int getWorkTime()
  32.     {
  33.         return WorkTime;
  34.     }
  35.    
  36.     public int getCooldownTime()
  37.     {
  38.         return CooldownTime;
  39.     }
  40.    
  41.     public PerkState getPerkState()
  42.     {
  43.         return State;
  44.     }
  45.    
  46.     public void useActivePerk()
  47.     {
  48.         System.out.println("Вы пытаетесь активировать перк.");
  49.         if (State == PerkState.READY)
  50.         {
  51.             System.out.println("Возможность активации перка доступна.");
  52.             State = PerkState.ACTIVE;
  53.             System.out.println("Перк активирован на "+WorkTime+" сек.");
  54.            
  55.             runActivePerk();
  56.         }
  57.     }
  58.    
  59.     private void runActivePerk()
  60.     {
  61.         new java.util.Timer().schedule
  62.         (
  63.             new TimerTask()
  64.             {
  65.                 public void run()
  66.                 {
  67.                     System.out.println("Работа перка завершена.");
  68.                     State = PerkState.COOLDOWN;
  69.                     System.out.println("Перк переходит в кулдаун на "+CooldownTime+" сек.");
  70.                     cooldownActivePerk();
  71.                 }
  72.             }, WorkTime*1000
  73.         );
  74.     }
  75.    
  76.     private void cooldownActivePerk()
  77.     {
  78.         new java.util.Timer().schedule
  79.         (
  80.             new TimerTask()
  81.             {
  82.                 public void run()
  83.                 {
  84.                     System.out.println("Перк откатился.");
  85.                     State = PerkState.READY;
  86.                     System.out.println("Перк готов к использованию.");
  87.                 }
  88.             }, CooldownTime*1000
  89.         );
  90.        
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment