@Override public ArrayList<String> actions(Hero hero) { ArrayList<String> actions = super.actions( hero ); if (isEquipped(hero) && charge > 0 && !cursed) actions.add(AC_CAST); return actions; }
@Override public void charge(Hero target) { int chargeTarget = 5+(level()*2); if (charge < chargeTarget*2){ partialCharge += 0.5f; if (partialCharge >= 1){ partialCharge--; charge++; updateQuickslot(); } } }
public void gainExp( float levelPortion ) { if (cursed || levelPortion == 0) return; exp += Math.round(levelPortion*100); //past the soft charge cap, gaining charge from leveling is slowed. if (charge > 5+(level()*2)){ levelPortion *= (5+((float)level()*2))/charge; } partialCharge += levelPortion*10f; if (exp > 100+level()*50 && level() < levelCap){ exp -= 100+level()*50; GLog.p( Messages.get(this, "levelup") ); upgrade(); } } }
} else { charge -= chargeUse; updateQuickslot();
@Override public boolean act() { int chargeTarget = 5+(level()*2); LockedFloor lock = target.buff(LockedFloor.class); if (charge < chargeTarget && !cursed && (lock == null || lock.regenOn())) { partialCharge += 1 / (40f - (chargeTarget - charge)*2f); } else if (cursed && Random.Int(100) == 0){ Buff.prolong( target, Cripple.class, 10f); } if (partialCharge >= 1) { partialCharge --; charge ++; } updateQuickslot(); spend( TICK ); return true; }
"_-_ Health granted reduced from +5 per upgrade to +3.5% of max hp per upgrade.\n\n" + "This is a massive reduction to its earlygame health boosting power, however as the player levels up this will improve. By hero level 26 it will be as strong as before this change.")); changes.addButton( new ChangeButton( new EtherealChains(), "The ability for Ethereal Chains to pull you literally anywhere limits design possibilities for future updates, so I've added a limitation.\n\n" + "_-_ Ethereal chains now cannot reach locations the player cannot reach by walking or flying. e.g. the chains can no longer reach into a locked room.\n\n" +
} else { charge -= chargeUse; updateQuickslot();
@Override public boolean act() { int chargeTarget = 5+(level()*2); LockedFloor lock = target.buff(LockedFloor.class); if (charge < chargeTarget && !cursed && (lock == null || lock.regenOn())) { partialCharge += 1 / (40f - (chargeTarget - charge)*2f); } else if (cursed && Random.Int(100) == 0){ Buff.prolong( target, Cripple.class, 10f); } if (partialCharge >= 1) { partialCharge --; charge ++; } updateQuickslot(); spend( TICK ); return true; }
"_-_ Health granted reduced from +5 per upgrade to +3.5% of max hp per upgrade.\n\n" + "This is a massive reduction to its earlygame health boosting power, however as the player levels up this will improve. By hero level 26 it will be as strong as before this change.")); changes.addButton( new ChangeButton( new EtherealChains(), "The ability for Ethereal Chains to pull you literally anywhere limits design possibilities for future updates, so I've added a limitation.\n\n" + "_-_ Ethereal chains now cannot reach locations the player cannot reach by walking or flying. e.g. the chains can no longer reach into a locked room.\n\n" +
@Override public void charge(Hero target) { int chargeTarget = 5+(level()*2); if (charge < chargeTarget*2){ partialCharge += 0.5f; if (partialCharge >= 1){ partialCharge--; charge++; updateQuickslot(); } } }
public void gainExp( float levelPortion ) { if (cursed || levelPortion == 0) return; exp += Math.round(levelPortion*100); //past the soft charge cap, gaining charge from leveling is slowed. if (charge > 5+(level()*2)){ levelPortion *= (5+((float)level()*2))/charge; } partialCharge += levelPortion*10f; if (exp > 100+level()*50 && level() < levelCap){ exp -= 100+level()*50; GLog.p( Messages.get(this, "levelup") ); upgrade(); } } }
@Override public ArrayList<String> actions(Hero hero) { ArrayList<String> actions = super.actions( hero ); if (isEquipped(hero) && charge > 0 && !cursed) actions.add(AC_CAST); return actions; }
} else { charge -= chargeUse; updateQuickslot();
@Override public String desc() { String desc = super.desc(); if (isEquipped( Dungeon.hero )){ desc += "\n\n"; if (cursed) desc += Messages.get(this, "desc_cursed"); else desc += Messages.get(this, "desc_equipped"); } return desc; }
} else { charge -= chargeUse; updateQuickslot();
@Override public String desc() { String desc = super.desc(); if (isEquipped( Dungeon.hero )){ desc += "\n\n"; if (cursed) desc += Messages.get(this, "desc_cursed"); else desc += Messages.get(this, "desc_equipped"); } return desc; }
@Override public void execute(Hero hero, String action) { super.execute(hero, action); if (action.equals(AC_CAST)){ curUser = hero; if (!isEquipped( hero )) { GLog.i( Messages.get(Artifact.class, "need_to_equip") ); QuickSlotButton.cancel(); } else if (charge < 1) { GLog.i( Messages.get(this, "no_charge") ); QuickSlotButton.cancel(); } else if (cursed) { GLog.w( Messages.get(this, "cursed") ); QuickSlotButton.cancel(); } else { GameScene.selectCell(caster); } } }
@Override public void execute(Hero hero, String action) { super.execute(hero, action); if (action.equals(AC_CAST)){ curUser = hero; if (!isEquipped( hero )) { GLog.i( Messages.get(Artifact.class, "need_to_equip") ); QuickSlotButton.cancel(); } else if (charge < 1) { GLog.i( Messages.get(this, "no_charge") ); QuickSlotButton.cancel(); } else if (cursed) { GLog.w( Messages.get(this, "cursed") ); QuickSlotButton.cancel(); } else { GameScene.selectCell(caster); } } }