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 setPlayerResearchLevel(EntityPlayer ep, ResearchLevel r, boolean notify) { if (r.movePlayerTo(ep)) { if (ep instanceof EntityPlayerMP) ReikaPlayerAPI.syncCustomData((EntityPlayerMP) ep); if (notify) this.notifyPlayerOfProgression(ep, r); ProgressionCacher.instance.updateProgressCache(ep); return true; } return false; }
public Collection<ChromaResearch> getResearchForLevelAndBelow(ResearchLevel rl) { Collection<ChromaResearch> c = new ArrayList(); while (true) { c.addAll(ChromaResearch.levelMap.get(rl)); if (rl == rl.pre()) break; else rl = rl.pre(); } return c; }
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); }