Java Examples for server.life.Element
The following java examples will help you to understand the usage of server.life.Element. These source code samples are taken from different open source projects.
Example 1
Project: Orpheus-master File: AbstractDealDamageHandler.java View source code |
@SuppressWarnings("unused") protected synchronized void applyAttack(AttackInfo attack, final MapleCharacter player, int attackCount) { ISkill theSkill = null; MapleStatEffect attackEffect = null; try { if (player.isBanned()) { return; } if (attack.skill != 0) { theSkill = SkillFactory.getSkill(attack.skill); attackEffect = attack.getAttackEffect(player, theSkill); if (attackEffect == null) { player.getClient().announce(MaplePacketCreator.enableActions()); return; } if (player.getMp() < attackEffect.getMpCon()) { AutobanFactory.MPCON.addPoint(player.getAutobanManager(), "Skill: " + attack.skill + "; Player MP: " + player.getMp() + "; MP Needed: " + attackEffect.getMpCon()); } if (attack.skill != Cleric.HEAL) { if (player.isAlive()) { attackEffect.applyTo(player); } else { player.getClient().announce(MaplePacketCreator.enableActions()); } } int mobCount = attackEffect.getMobCount(); if (attack.skill == DawnWarrior.FINAL_ATTACK || attack.skill == Page.FINAL_ATTACK_BW || attack.skill == Page.FINAL_ATTACK_SWORD || attack.skill == Fighter.FINAL_ATTACK_SWORD || attack.skill == Fighter.FINAL_ATTACK_AXE || attack.skill == Spearman.FINAL_ATTACK_SPEAR || attack.skill == Spearman.FINAL_ATTACK_POLEARM || attack.skill == WindArcher.FINAL_ATTACK || attack.skill == DawnWarrior.FINAL_ATTACK || attack.skill == Hunter.FINAL_ATTACK || attack.skill == Crossbowman.FINAL_ATTACK) { //:( mobCount = 15; } if (attack.numAttacked > mobCount) { AutobanFactory.MOB_COUNT.autoban(player, "Skill: " + attack.skill + "; Count: " + attack.numAttacked + " Max: " + attackEffect.getMobCount()); return; } } if (!player.isAlive()) { return; } //WTF IS THIS F3,1 /*if (attackCount != attack.numDamage && attack.skill != ChiefBandit.MESO_EXPLOSION && attack.skill != NightWalker.VAMPIRE && attack.skill != WindArcher.WIND_SHOT && attack.skill != Aran.COMBO_SMASH && attack.skill != Aran.COMBO_PENRIL && attack.skill != Aran.COMBO_TEMPEST && attack.skill != NightLord.NINJA_AMBUSH && attack.skill != Shadower.NINJA_AMBUSH) { return; }*/ int totDamage = 0; final MapleMap map = player.getMap(); if (attack.skill == ChiefBandit.MESO_EXPLOSION) { int delay = 0; for (Integer oned : attack.allDamage.keySet()) { MapleMapObject mapobject = map.getMapObject(oned.intValue()); if (mapobject != null && mapobject.getType() == MapleMapObjectType.ITEM) { final MapleMapItem mapitem = (MapleMapItem) mapobject; if (mapitem.getMeso() > 9) { synchronized (mapitem) { if (mapitem.isPickedUp()) { return; } TimerManager.getInstance().schedule(new Runnable() { @Override public void run() { map.removeMapObject(mapitem); map.broadcastMessage(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 4, 0), mapitem.getPosition()); mapitem.setPickedUp(true); } }, delay); delay += 100; } } else if (mapitem.getMeso() == 0) { return; } } else if (mapobject != null && mapobject.getType() != MapleMapObjectType.MONSTER) { return; } } } for (Integer oned : attack.allDamage.keySet()) { final MapleMonster monster = map.getMonsterByOid(oned.intValue()); if (monster != null) { int totDamageToOneMonster = 0; List<Integer> onedList = attack.allDamage.get(oned); for (Integer eachd : onedList) { totDamageToOneMonster += eachd.intValue(); } totDamage += totDamageToOneMonster; player.checkMonsterAggro(monster); if (player.getBuffedValue(MapleBuffStat.PICKPOCKET) != null && (attack.skill == 0 || attack.skill == Rogue.DOUBLE_STAB || attack.skill == Bandit.SAVAGE_BLOW || attack.skill == ChiefBandit.ASSAULTER || attack.skill == ChiefBandit.BAND_OF_THIEVES || attack.skill == Shadower.ASSASSINATE || attack.skill == Shadower.TAUNT || attack.skill == Shadower.BOOMERANG_STEP)) { ISkill pickpocket = SkillFactory.getSkill(ChiefBandit.PICKPOCKET); int delay = 0; final int maxmeso = player.getBuffedValue(MapleBuffStat.PICKPOCKET).intValue(); for (final Integer eachd : onedList) { if (pickpocket.getEffect(player.getSkillLevel(pickpocket)).makeChanceResult()) { TimerManager.getInstance().schedule(new Runnable() { @Override public void run() { player.getMap().spawnMesoDrop(Math.min((int) Math.max(((double) eachd / (double) 20000) * (double) maxmeso, (double) 1), maxmeso), new Point((int) (monster.getPosition().getX() + Randomizer.nextInt(100) - 50), (int) (monster.getPosition().getY())), monster, player, true, (byte) 0); } }, delay); delay += 100; } } } else if (attack.skill == Marksman.SNIPE) { totDamageToOneMonster = 195000 + Randomizer.nextInt(5000); } else if (attack.skill == Marauder.ENERGY_DRAIN || attack.skill == ThunderBreaker.ENERGY_DRAIN || attack.skill == NightWalker.VAMPIRE || attack.skill == Assassin.DRAIN) { player.addHP(Math.min(monster.getMaxHp(), Math.min((int) ((double) totDamage * (double) SkillFactory.getSkill(attack.skill).getEffect(player.getSkillLevel(SkillFactory.getSkill(attack.skill))).getX() / 100.0), player.getMaxHp() / 2))); } else if (attack.skill == Bandit.STEAL) { ISkill steal = SkillFactory.getSkill(Bandit.STEAL); if (Math.random() < 0.3 && steal.getEffect(player.getSkillLevel(steal)).makeChanceResult()) { //Else it drops too many cool stuff :( List<MonsterDropEntry> toSteals = MapleMonsterInformationProvider.getInstance().retrieveDrop(monster.getId()); Collections.shuffle(toSteals); int toSteal = toSteals.get(rand(0, (toSteals.size() - 1))).itemId; MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); IItem item = null; if (ItemConstants.getInventoryType(toSteal).equals(MapleInventoryType.EQUIP)) { item = ii.randomizeStats((Equip) ii.getEquipById(toSteal)); } else { item = new Item(toSteal, (byte) 0, (short) 1, -1); } player.getMap().spawnItemDrop(monster, player, item, monster.getPosition(), false, false); monster.addStolen(toSteal); } } else if (attack.skill == FPArchMage.FIRE_DEMON) { monster.setTempEffectiveness(Element.ICE, ElementalEffectiveness.WEAK, SkillFactory.getSkill(FPArchMage.FIRE_DEMON).getEffect(player.getSkillLevel(SkillFactory.getSkill(FPArchMage.FIRE_DEMON))).getDuration() * 1000); } else if (attack.skill == ILArchMage.ICE_DEMON) { monster.setTempEffectiveness(Element.FIRE, ElementalEffectiveness.WEAK, SkillFactory.getSkill(ILArchMage.ICE_DEMON).getEffect(player.getSkillLevel(SkillFactory.getSkill(ILArchMage.ICE_DEMON))).getDuration() * 1000); } else if (attack.skill == Outlaw.HOMING_BEACON || attack.skill == Corsair.BULLSEYE) { player.setMarkedMonster(monster.getObjectId()); player.announce(MaplePacketCreator.giveBuff(1, attack.skill, Collections.singletonList(new MapleBuffStatDelta(MapleBuffStat.HOMING_BEACON, monster.getObjectId())))); } if (player.getBuffedValue(MapleBuffStat.HAMSTRING) != null) { ISkill hamstring = SkillFactory.getSkill(Bowmaster.HAMSTRING); if (hamstring.getEffect(player.getSkillLevel(hamstring)).makeChanceResult()) { MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.SPEED, hamstring.getEffect(player.getSkillLevel(hamstring)).getX()), hamstring, null, false); monster.applyStatus(player, monsterStatusEffect, false, hamstring.getEffect(player.getSkillLevel(hamstring)).getY() * 1000); } } if (player.getBuffedValue(MapleBuffStat.BLIND) != null) { ISkill blind = SkillFactory.getSkill(Marksman.BLIND); if (blind.getEffect(player.getSkillLevel(blind)).makeChanceResult()) { MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.ACC, blind.getEffect(player.getSkillLevel(blind)).getX()), blind, null, false); monster.applyStatus(player, monsterStatusEffect, false, blind.getEffect(player.getSkillLevel(blind)).getY() * 1000); } } final int id = player.getJob().getId(); if (id == 121 || id == 122) { for (int charge = 1211005; charge < 1211007; charge++) { ISkill chargeSkill = SkillFactory.getSkill(charge); if (player.isBuffFrom(MapleBuffStat.WK_CHARGE, chargeSkill)) { final ElementalEffectiveness iceEffectiveness = monster.getEffectiveness(Element.ICE); if (totDamageToOneMonster > 0 && iceEffectiveness == ElementalEffectiveness.NORMAL || iceEffectiveness == ElementalEffectiveness.WEAK) { monster.applyStatus(player, new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.FREEZE, 1), chargeSkill, null, false), false, chargeSkill.getEffect(player.getSkillLevel(chargeSkill)).getY() * 2000); } break; } } } else if (player.getBuffedValue(MapleBuffStat.BODY_PRESSURE) != null || player.getBuffedValue(MapleBuffStat.COMBO_DRAIN) != null) { ISkill skill; if (player.getBuffedValue(MapleBuffStat.BODY_PRESSURE) != null) { skill = SkillFactory.getSkill(21101003); final MapleStatEffect eff = skill.getEffect(player.getSkillLevel(skill)); if (eff.makeChanceResult()) { monster.applyStatus(player, new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.NEUTRALISE, 1), skill, null, false), false, eff.getX() * 1000, false); } } if (player.getBuffedValue(MapleBuffStat.COMBO_DRAIN) != null) { skill = SkillFactory.getSkill(21100005); player.setHp(player.getHp() + ((totDamage * skill.getEffect(player.getSkillLevel(skill)).getX()) / 100), true); player.updateSingleStat(MapleStat.HP, player.getHp()); } } else if (id == 412 || id == 422 || id == 1411) { ISkill type = SkillFactory.getSkill(player.getJob().getId() == 412 ? 4120005 : (player.getJob().getId() == 1411 ? 14110004 : 4220005)); if (player.getSkillLevel(type) > 0) { MapleStatEffect venomEffect = type.getEffect(player.getSkillLevel(type)); for (int i = 0; i < attackCount; i++) { if (venomEffect.makeChanceResult()) { if (monster.getVenomMulti() < 3) { monster.setVenomMulti((monster.getVenomMulti() + 1)); MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.POISON, 1), type, null, false); monster.applyStatus(player, monsterStatusEffect, false, venomEffect.getDuration(), true); } } } } } if (attack.skill != 0) { if (attackEffect.getFixDamage() != -1) { if (totDamageToOneMonster != attackEffect.getFixDamage() && totDamageToOneMonster != 0) { AutobanFactory.FIX_DAMAGE.autoban(player, String.valueOf(totDamageToOneMonster) + " damage"); } } } if (totDamageToOneMonster > 0 && attackEffect != null && attackEffect.getMonsterStati().size() > 0) { if (attackEffect.makeChanceResult()) { monster.applyStatus(player, new MonsterStatusEffect(attackEffect.getMonsterStati(), theSkill, null, false), attackEffect.isPoison(), attackEffect.getDuration()); } } if (player.getJob().equals(MapleJob.LEGEND) || player.getJob().isA(MapleJob.ARAN4)) { byte comboLevel = (byte) (player.getJob().equals(MapleJob.LEGEND) ? 10 : player.getSkillLevel(Aran.COMBO_ABILITY)); if (comboLevel > 0) { final long currentTime = System.currentTimeMillis(); short combo = 0; if (attack.skill == Aran.COMBO_SMASH || attack.skill == Aran.COMBO_PENRIL || attack.skill == Aran.COMBO_TEMPEST) { //WHY NOT USE COMBO LOL player.setCombo(combo); } for (Integer amount : onedList) { combo = player.getCombo(); if ((currentTime - player.getLastCombo()) > 3000 && combo > 0) { combo = 0; player.cancelEffectFromBuffStat(MapleBuffStat.ARAN_COMBO); } combo++; switch(combo) { case 10: case 20: case 30: case 40: case 50: case 60: case 70: case 80: case 90: case 100: if ((combo / 10) <= comboLevel) { SkillFactory.getSkill(21000000).getEffect(combo / 10).applyComboBuff(player, combo); } break; } player.setCombo(combo); } player.setLastCombo(currentTime); } } if (attack.isHH && !monster.isBoss()) { map.damageMonster(player, monster, monster.getHp() - 1); } else if (attack.isHH) { int HHDmg = (player.calculateMaxBaseDamage(player.getTotalWatk()) * (SkillFactory.getSkill(Paladin.HEAVENS_HAMMER).getEffect(player.getSkillLevel(SkillFactory.getSkill(Paladin.HEAVENS_HAMMER))).getDamage() / 100)); map.damageMonster(player, monster, (int) (Math.floor(Math.random() * (HHDmg / 5) + HHDmg * .8))); } else { map.damageMonster(player, monster, totDamageToOneMonster); } } } } catch (Exception e) { e.printStackTrace(); } }
Example 2
Project: mapleLemon-master File: PlayerStats.java View source code |
public Pair<Integer, Integer> handleEquipAdditions(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Skill, SkillEntry> sData, int itemId) { List<Triple<String, String, String>> additions = ii.getEquipAdditions(itemId); if (additions == null) { return null; } int localmaxhp_x = 0; int localmaxmp_x = 0; int skillid = 0; int skilllevel = 0; for (Triple add : additions) { if (((String) add.getMid()).contains("con")) { continue; } int right = ((String) add.getMid()).equals("elemVol") ? 0 : Integer.parseInt((String) add.getRight()); switch((String) add.getLeft()) { case "elemboost": { String craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((((String) add.getMid()).equals("elemVol")) && ((craft == null))) { int value = Integer.parseInt(((String) add.getRight()).substring(1, ((String) add.getRight()).length())); Element key = Element.getFromChar(((String) add.getRight()).charAt(0)); if (this.elemBoosts.get(key) != null) { value += (this.elemBoosts.get(key)); } this.elemBoosts.put(key, value); } break; } case "mobcategory": if (((String) add.getMid()).equals("damage")) { this.percent_damage_rate += right; this.percent_boss_damage_rate += right; } break; case "critical": { boolean canJob = false; boolean canLevel = false; String job = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { String[] jobs = job.split(","); for (String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJob = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJob = true; } } String level = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "level"); if ((level != null) && (chra.getLevel() >= Integer.parseInt(level))) { canLevel = true; } if (((job != null) && (canJob)) || ((job == null) && (((level != null) && (canLevel)) || (level == null)))) { switch((String) add.getMid()) { case "prob": this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + right); break; case "damage": this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + right); this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + right); break; } } break; } case "boss": { String craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((((String) add.getMid()).equals("damage")) && ((craft == null))) { this.percent_boss_damage_rate += right; } break; } case "mobdie": { String craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((craft == null)) { switch((String) add.getMid()) { case "hpIncOnMobDie": this.hpRecover += right; this.hpRecoverProp += 5; break; case "mpIncOnMobDie": this.mpRecover += right; this.mpRecoverProp += 5; break; } } break; } case "skill": if (first_login) { String craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((craft == null)) { switch((String) add.getMid()) { case "id": skillid = right; break; case "level": skilllevel = right; break; } } } break; case "hpmpchange": switch((String) add.getMid()) { case "hpChangerPerTime": this.recoverHP += right; break; case "mpChangerPerTime": this.recoverMP += right; break; } break; case "statinc": { boolean canJobx = false; boolean canLevelx = false; String job = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { String[] jobs = job.split(","); for (String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJobx = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJobx = true; } } String level = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "level"); if ((level != null) && (chra.getLevel() >= Integer.parseInt(level))) { canLevelx = true; } if (((!canJobx) && (job != null)) || ((!canLevelx) && (level != null))) { continue; } if (itemId == 1142367) { int day = Calendar.getInstance().get(7); if ((day != 1) && (day != 7)) { continue; } } if (((String) add.getMid()).equals("incPAD")) { this.watk += right; } else if (((String) add.getMid()).equals("incMAD")) { this.magic += right; } else if (((String) add.getMid()).equals("incSTR")) { this.localstr += right; } else if (((String) add.getMid()).equals("incDEX")) { this.localdex += right; } else if (((String) add.getMid()).equals("incINT")) { this.localint_ += right; } else if (((String) add.getMid()).equals("incLUK")) { this.localluk += right; } else if (((String) add.getMid()).equals("incJump")) { this.jump += right; } else if (((String) add.getMid()).equals("incMHP")) { localmaxhp_x += right; } else if (((String) add.getMid()).equals("incMMP")) { localmaxmp_x += right; } else if (((String) add.getMid()).equals("incPDD")) { this.wdef += right; } else if (((String) add.getMid()).equals("incMDD")) { this.mdef += right; } else if (((String) add.getMid()).equals("incACC")) { this.accuracy += right; } else if (!((String) add.getMid()).equals("incEVA")) { switch((String) add.getMid()) { case "incSpeed": this.speed += right; break; case "incMMPr": this.percent_mp += right; break; } } break; } } } if ((skillid != 0) && (skilllevel != 0)) { sData.put(SkillFactory.getSkill(skillid), new SkillEntry((byte) skilllevel, (byte) 0, -1L)); } return new Pair(localmaxhp_x, localmaxmp_x); }
Example 3
Project: OpenSourceStory-master File: PlayerStats.java View source code |
public Pair<Integer, Integer> handleEquipAdditions(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Skill, SkillEntry> sData, int itemId) { List<Triple<String, String, String>> additions = ii.getEquipAdditions(itemId); if (additions == null) { return null; } int localmaxhp_x = 0; int localmaxmp_x = 0; int skillid = 0; int skilllevel = 0; for (Triple add : additions) { if (!((String) add.getMid()).contains("con")) { int right = 0; try { right = Integer.parseInt((String) add.getRight()); } catch (NumberFormatException fff) { } String craft; String job; String level; switch((String) add.getLeft()) { case "elemboost": craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((((String) add.getMid()).equals("elemVol")) && ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))))) { int value = Integer.parseInt(((String) add.getRight()).substring(1, ((String) add.getRight()).length())); Element key = Element.getFromChar(((String) add.getRight()).charAt(0)); if (this.elemBoosts.get(key) != null) { value += ((Integer) this.elemBoosts.get(key)).intValue(); } this.elemBoosts.put(key, Integer.valueOf(value)); } break; case "mobcategory": if (((String) add.getMid()).equals("damage")) { this.dam_r *= (right + 100.0D) / 100.0D; this.bossdam_r += (right + 100.0D) / 100.0D; } break; case "critical": boolean canJob = false; boolean canLevel = false; job = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { //??? String[] strx = job.split(","); for (String x : strx) { if (chra.getJob() == Integer.parseInt(x)) { canJob = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJob = true; } } level = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "level"); if ((level != null) && (chra.getLevel() >= Integer.parseInt(level))) { canLevel = true; } if (((job != null) && (canJob)) || ((job == null) && (((level != null) && (canLevel)) || (level == null)))) { switch((String) add.getMid()) { case "prob": this.passive_sharpeye_rate = ((short) (this.passive_sharpeye_rate + right)); break; case "damage": this.passive_sharpeye_min_percent = ((short) (this.passive_sharpeye_min_percent + right)); this.passive_sharpeye_percent = ((short) (this.passive_sharpeye_percent + right)); } } break; case "boss": craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((((String) add.getMid()).equals("damage")) && ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))))) { this.bossdam_r *= (right + 100.0D) / 100.0D; } break; case "mobdie": craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft)))) { switch((String) add.getMid()) { case "hpIncOnMobDie": this.hpRecover += right; this.hpRecoverProp += 5; break; case "mpIncOnMobDie": this.mpRecover += right; this.mpRecoverProp += 5; } } break; case "skill": if (first_login) { craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft)))) { switch((String) add.getMid()) { case "id": skillid = right; break; case "level": skilllevel = right; } } } break; case "hpmpchange": switch((String) add.getMid()) { case "hpChangerPerTime": this.recoverHP += right; break; case "mpChangerPerTime": this.recoverMP += right; } break; case "statinc": boolean canJobx = false; boolean canLevelx = false; job = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { String[] jobs = job.split(","); for (String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJobx = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJobx = true; } } level = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "level"); if ((level != null) && (chra.getLevel() >= Integer.parseInt(level))) { canLevelx = true; } if (((canJobx) || (job == null)) && ((canLevelx) || (level == null))) { if (itemId == 1142367) { int wut = Calendar.getInstance().get(7); if ((wut != 1) && (wut != 7)) { break; } } else { switch((String) add.getMid()) { case "incPAD": this.watk += right; break; case "incMAD": this.magic += right; break; case "incSTR": this.localstr += right; break; case "incDEX": this.localdex += right; break; case "incINT": this.localint_ += right; break; case "incLUK": this.localluk += right; break; case "incJump": this.jump += right; break; case "incMHP": localmaxhp_x += right; break; case "incMMP": localmaxmp_x += right; break; case "incPDD": this.wdef += right; break; case "incMDD": this.mdef += right; break; case "incACC": this.accuracy += right; break; case "incEVA": break; case "incSpeed": this.speed += right; break; case "incMMPr": this.percent_mp += right; } } } break; } } } if ((skillid != 0) && (skilllevel != 0)) { sData.put(SkillFactory.getSkill(skillid), new SkillEntry((byte) skilllevel, (byte) 0, -1L)); } return new Pair(Integer.valueOf(localmaxhp_x), Integer.valueOf(localmaxmp_x)); }
Example 4
Project: OurStory-master File: PlayerStats.java View source code |
public Pair<Integer, Integer> handleEquipAdditions(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Skill, SkillEntry> sData, int itemId) { List<Triple<String, String, String>> additions = ii.getEquipAdditions(itemId); if (additions == null) { return null; } int localmaxhp_x = 0; int localmaxmp_x = 0; int skillid = 0; int skilllevel = 0; for (Triple add : additions) { if (!((String) add.getMid()).contains("con")) { int right = 0; try { right = Integer.parseInt((String) add.getRight()); } catch (NumberFormatException fff) { } String craft; String job; String level; switch((String) add.getLeft()) { case "elemboost": craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((((String) add.getMid()).equals("elemVol")) && ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))))) { int value = Integer.parseInt(((String) add.getRight()).substring(1, ((String) add.getRight()).length())); Element key = Element.getFromChar(((String) add.getRight()).charAt(0)); if (this.elemBoosts.get(key) != null) { value += ((Integer) this.elemBoosts.get(key)).intValue(); } this.elemBoosts.put(key, Integer.valueOf(value)); } break; case "mobcategory": if (((String) add.getMid()).equals("damage")) { this.dam_r *= (right + 100.0D) / 100.0D; this.bossdam_r += (right + 100.0D) / 100.0D; } break; case "critical": boolean canJob = false; boolean canLevel = false; job = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { //??? String[] strx = job.split(","); for (String x : strx) { if (chra.getJob() == Integer.parseInt(x)) { canJob = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJob = true; } } level = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "level"); if ((level != null) && (chra.getLevel() >= Integer.parseInt(level))) { canLevel = true; } if (((job != null) && (canJob)) || ((job == null) && (((level != null) && (canLevel)) || (level == null)))) { switch((String) add.getMid()) { case "prob": this.passive_sharpeye_rate = ((short) (this.passive_sharpeye_rate + right)); break; case "damage": this.passive_sharpeye_min_percent = ((short) (this.passive_sharpeye_min_percent + right)); this.passive_sharpeye_percent = ((short) (this.passive_sharpeye_percent + right)); } } break; case "boss": craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((((String) add.getMid()).equals("damage")) && ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))))) { this.bossdam_r *= (right + 100.0D) / 100.0D; } break; case "mobdie": craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft)))) { switch((String) add.getMid()) { case "hpIncOnMobDie": this.hpRecover += right; this.hpRecoverProp += 5; break; case "mpIncOnMobDie": this.mpRecover += right; this.mpRecoverProp += 5; } } break; case "skill": if (first_login) { craft = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "craft"); if ((craft == null) || ((craft != null) && (chra.getTrait(MapleTrait.MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft)))) { switch((String) add.getMid()) { case "id": skillid = right; break; case "level": skilllevel = right; } } } break; case "hpmpchange": switch((String) add.getMid()) { case "hpChangerPerTime": this.recoverHP += right; break; case "mpChangerPerTime": this.recoverMP += right; } break; case "statinc": boolean canJobx = false; boolean canLevelx = false; job = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { String[] jobs = job.split(","); for (String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJobx = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJobx = true; } } level = ii.getEquipAddReqs(itemId, (String) add.getLeft(), "level"); if ((level != null) && (chra.getLevel() >= Integer.parseInt(level))) { canLevelx = true; } if (((canJobx) || (job == null)) && ((canLevelx) || (level == null))) { if (itemId == 1142367) { int wut = Calendar.getInstance().get(7); if ((wut != 1) && (wut != 7)) { break; } } else { switch((String) add.getMid()) { case "incPAD": this.watk += right; break; case "incMAD": this.magic += right; break; case "incSTR": this.localstr += right; break; case "incDEX": this.localdex += right; break; case "incINT": this.localint_ += right; break; case "incLUK": this.localluk += right; break; case "incJump": this.jump += right; break; case "incMHP": localmaxhp_x += right; break; case "incMMP": localmaxmp_x += right; break; case "incPDD": this.wdef += right; break; case "incMDD": this.mdef += right; break; case "incACC": this.accuracy += right; break; case "incEVA": break; case "incSpeed": this.speed += right; break; case "incMMPr": this.percent_mp += right; } } } break; } } } if ((skillid != 0) && (skilllevel != 0)) { sData.put(SkillFactory.getSkill(skillid), new SkillEntry((byte) skilllevel, (byte) 0, -1L)); } return new Pair(Integer.valueOf(localmaxhp_x), Integer.valueOf(localmaxmp_x)); }
Example 5
Project: ZZMS-master File: PlayerStats.java View source code |
public Pair<Integer, Integer> handleEquipAdditions(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Skill, SkillEntry> sData, final int itemId) { final List<Triple<String, String, String>> additions = ii.getEquipAdditions(itemId); if (additions == null) { return null; } int localmaxhp_x = 0, localmaxmp_x = 0; int skillid = 0, skilllevel = 0; String craft, job, level; for (final Triple<String, String, String> add : additions) { if (add.getMid().contains("con")) { continue; } final int right = Integer.parseInt(add.getRight()); switch(add.getLeft()) { case "elemboost": craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if (add.getMid().equals("elemVol") && (craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { int value = Integer.parseInt(add.getRight().substring(1, add.getRight().length())); final Element key = Element.getFromChar(add.getRight().charAt(0)); if (elemBoosts.get(key) != null) { value += elemBoosts.get(key); } elemBoosts.put(key, value); } break; case //skip the category, thinkings too expensive to have yet another Map<Integer, Integer> for damage calculations "mobcategory": if (add.getMid().equals("damage")) { dam_r *= (right + 100.0) / 100.0; bossdam_r += (right + 100.0) / 100.0; } break; case // lv critical lvl? "critical": boolean canJob = false, canLevel = false; job = ii.getEquipAddReqs(itemId, add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { final String[] jobs = job.split(","); for (final String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJob = true; } } } else { if (chra.getJob() == Integer.parseInt(job)) { canJob = true; } } } level = ii.getEquipAddReqs(itemId, add.getLeft(), "level"); if (level != null) { if (chra.getLevel() >= Integer.parseInt(level)) { canLevel = true; } } if ((job != null && canJob || job == null) && (level != null && canLevel || level == null)) { switch(add.getMid()) { case "prob": passive_sharpeye_rate += right; break; case "damage": passive_sharpeye_min_percent += right; //???CONFIRM - not sure if this is max or minCritDmg passive_sharpeye_max_percent += right; break; } } break; case // ignore prob, just add "boss": craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if (add.getMid().equals("damage") && (craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { bossdam_r *= (right + 100.0) / 100.0; } break; case // lv, hpIncRatioOnMobDie, hpRatioProp, mpIncRatioOnMobDie, mpRatioProp, modify =D, don't need mob to die "mobdie": craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if ((craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { switch(add.getMid()) { case "hpIncOnMobDie": hpRecover += right; hpRecoverProp += 5; break; case "mpIncOnMobDie": mpRecover += right; mpRecoverProp += 5; break; } } break; case // all these are additional skills "skill": if (first_login) { craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if ((craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { switch(add.getMid()) { case "id": skillid = right; break; case "level": skilllevel = right; break; } } } break; case "hpmpchange": switch(add.getMid()) { case "hpChangerPerTime": recoverHP += right; break; case "mpChangerPerTime": recoverMP += right; break; } break; case "statinc": boolean canJobx = false, canLevelx = false; job = ii.getEquipAddReqs(itemId, add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { final String[] jobs = job.split(","); for (final String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJobx = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJobx = true; } } level = ii.getEquipAddReqs(itemId, add.getLeft(), "level"); if (level != null && chra.getLevel() >= Integer.parseInt(level)) { canLevelx = true; } if ((!canJobx && job != null) || (!canLevelx && level != null)) { continue; } if (itemId == 1142367) { final int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); if (day != 1 && day != 7) { continue; } } switch(add.getMid()) { case "incPAD": watk += right; break; case "incMAD": magic += right; break; case "incSTR": localstr += right; break; case "incDEX": localdex += right; break; case "incINT": localint_ += right; break; case "incLUK": localluk += right; break; case "incJump": jump += right; break; case "incMHP": localmaxhp_x += right; break; case "incMMP": localmaxmp_x += right; break; case "incPDD": wdef += right; break; case "incMDD": mdef += right; break; case "incACC": accuracy += right; break; case "incEVA": break; case "incSpeed": speed += right; break; case "incMMPr": percent_mp += right; break; } break; } } if (skillid != 0 && skilllevel != 0) { sData.put(SkillFactory.getSkill(skillid), new SkillEntry((byte) skilllevel, (byte) 0, -1)); } return new Pair<>(localmaxhp_x, localmaxmp_x); }
Example 6
Project: Acernis-v144-master File: PlayerStats.java View source code |
public Pair<Integer, Integer> handleEquipAdditions(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Skill, SkillEntry> sData, final int itemId) { final List<Triple<String, String, String>> additions = ii.getEquipAdditions(itemId); if (additions == null) { return null; } int localmaxhp_x = 0, localmaxmp_x = 0; int skillid = 0, skilllevel = 0; String craft, job, level; for (final Triple<String, String, String> add : additions) { if (add.getMid().contains("con")) { continue; } final int right = Integer.parseInt(add.getRight()); switch(add.getLeft()) { case "elemboost": craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if (add.getMid().equals("elemVol") && (craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { int value = Integer.parseInt(add.getRight().substring(1, add.getRight().length())); final Element key = Element.getFromChar(add.getRight().charAt(0)); if (elemBoosts.get(key) != null) { value += elemBoosts.get(key); } elemBoosts.put(key, value); } break; case //skip the category, thinkings too expensive to have yet another Map<Integer, Integer> for damage calculations "mobcategory": if (add.getMid().equals("damage")) { dam_r *= (right + 100.0) / 100.0; bossdam_r += (right + 100.0) / 100.0; } break; case // lv critical lvl? "critical": boolean canJob = false, canLevel = false; job = ii.getEquipAddReqs(itemId, add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { final String[] jobs = job.split(","); for (final String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJob = true; } } } else { if (chra.getJob() == Integer.parseInt(job)) { canJob = true; } } } level = ii.getEquipAddReqs(itemId, add.getLeft(), "level"); if (level != null) { if (chra.getLevel() >= Integer.parseInt(level)) { canLevel = true; } } if ((job != null && canJob || job == null) && (level != null && canLevel || level == null)) { switch(add.getMid()) { case "prob": crit_rate += right; break; case "damage": passive_sharpeye_min_percent += right; //???CONFIRM - not sure if this is max or minCritDmg passive_sharpeye_percent += right; break; } } break; case // ignore prob, just add "boss": craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if (add.getMid().equals("damage") && (craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { bossdam_r *= (right + 100.0) / 100.0; } break; case // lv, hpIncRatioOnMobDie, hpRatioProp, mpIncRatioOnMobDie, mpRatioProp, modify =D, don't need mob to die "mobdie": craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if ((craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { switch(add.getMid()) { case "hpIncOnMobDie": hpRecover += right; hpRecoverProp += 5; break; case "mpIncOnMobDie": mpRecover += right; mpRecoverProp += 5; break; } } break; case // all these are additional skills "skill": if (first_login) { craft = ii.getEquipAddReqs(itemId, add.getLeft(), "craft"); if ((craft == null || craft != null && chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) { switch(add.getMid()) { case "id": skillid = right; break; case "level": skilllevel = right; break; } } } break; case "hpmpchange": switch(add.getMid()) { case "hpChangerPerTime": recoverHP += right; break; case "mpChangerPerTime": recoverMP += right; break; } break; case "statinc": boolean canJobx = false, canLevelx = false; job = ii.getEquipAddReqs(itemId, add.getLeft(), "job"); if (job != null) { if (job.contains(",")) { final String[] jobs = job.split(","); for (final String x : jobs) { if (chra.getJob() == Integer.parseInt(x)) { canJobx = true; } } } else if (chra.getJob() == Integer.parseInt(job)) { canJobx = true; } } level = ii.getEquipAddReqs(itemId, add.getLeft(), "level"); if (level != null && chra.getLevel() >= Integer.parseInt(level)) { canLevelx = true; } if ((!canJobx && job != null) || (!canLevelx && level != null)) { continue; } if (itemId == 1142367) { final int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); if (day != 1 && day != 7) { continue; } } switch(add.getMid()) { case "incPAD": watk += right; break; case "incMAD": magic += right; break; case "incSTR": localstr += right; break; case "incDEX": localdex += right; break; case "incINT": localint_ += right; break; case "incLUK": localluk += right; break; case "incJump": jump += right; break; case "incMHP": localmaxhp_x += right; break; case "incMMP": localmaxmp_x += right; break; case "incPDD": wdef += right; break; case "incMDD": mdef += right; break; case "incACC": accuracy += right; break; case "incEVA": break; case "incSpeed": speed += right; break; case "incMMPr": percent_mp += right; break; } break; } } if (skillid != 0 && skilllevel != 0) { sData.put(SkillFactory.getSkill(skillid), new SkillEntry((byte) skilllevel, (byte) 0, -1)); } return new Pair<>(localmaxhp_x, localmaxmp_x); }