public void checkForUpgrade(EntityPlayer ep) {
   ResearchLevel rl = this.getPlayerResearchLevel(ep);
   Collection<ChromaResearch> li = this.getResearchForLevel(rl);
   if (this.playerHasAllFragmentsThatMatter(ep, li)
       && rl.ordinal() < ResearchLevel.levelList.length - 1) {
     ResearchLevel next = ResearchLevel.levelList[rl.ordinal() + 1];
     if (next.canProgressTo(ep)) {
       this.stepPlayerResearchLevel(ep, next);
     }
   }
 }
 public boolean isAtLeast(ResearchLevel rl) {
   return rl.ordinal() <= this.ordinal();
 }
 public boolean stepPlayerResearchLevel(EntityPlayer ep, ResearchLevel r) {
   return (this.getPlayerResearchLevel(ep).ordinal() == r.ordinal() - 1)
       && this.setPlayerResearchLevel(ep, r, true);
 }