->All sword perks implemented.
->All shovel perks implemented.
->Auto Repair, Preservation, and Greed perks implemented.
->Ability Points is now calculated based on how many points are consumed
on the artifact item. This way "temporary" perks
do not result in a complete loss of points.
->Fix /stats not updating damage value until called twice.
->/stats now shows a small upgrade button if you have AP, for easier
access than typing a slash command.
apused+=Iterables.get(enchants.values(),i);//Counts how many levels of each enchantment was applied. This correlates directly with how much AP was used.
SIEGESTANCE("Siege Stance","Activate by Sneaking for three seconds. Sneak again to de-activate.\n\n"
SIEGESTANCE("Siege Stance",ChatColor.GRAY+"[Unimplemented] Activate by Sneaking for three seconds. Sneak again to de-activate.\n\n"
+"Applies Slowness V and Resistance VI. While in Siege Stance you fire clusters of 7 arrows per shot. Each arrow deals [VAL] damage.",newdouble[]{3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0},
ARROWSHOWER("Arrow Shower","Shift-Left Click to activate. Applies Slowness X for three seconds while firing arrows into the sky and onto enemies in a large area in front of you. Each arrow deals [VAL] damage.",newdouble[]{0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7},
ARROWSHOWER("Arrow Shower",ChatColor.GRAY+"[Unimplemented] Shift-Left Click to activate. Applies Slowness X for three seconds while firing arrows into the sky and onto enemies in a large area in front of you. Each arrow deals [VAL] damage.",newdouble[]{0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7},
TARGETING("Targeting","Left-click a mob to target them. Fire arrows to release homing missiles at your target. Each missile explodes and deals [VAL] damage.",newdouble[]{10,10,10,10,10,10,10,10,10,10},
TARGETING("Targeting",ChatColor.GRAY+"[Unimplemented] Left-click a mob to target them. Fire arrows to release homing missiles at your target. Each missile explodes and deals [VAL] damage.",newdouble[]{10,10,10,10,10,10,10,10,10,10},
ENDERTURRET("Ender Turret","Place Eyes of Ender in your hotbar to use as ammo. Each eye fired launches forward and upward before releasing a barrage of homing missiles that lock onto enemy targets. Each missile explodes and deals [VAL] damage.",newdouble[]{25,25,25,25,25,25,25,25,25,25},
ENDERTURRET("Ender Turret",ChatColor.GRAY+"[Unimplemented] Place Eyes of Ender in your hotbar to use as ammo. Each eye fired launches forward and upward before releasing a barrage of homing missiles that lock onto enemy targets. Each missile explodes and deals [VAL] damage.",newdouble[]{25,25,25,25,25,25,25,25,25,25},
SHADOWWALKER("Shadow Walker",ChatColor.GRAY+"[Unimplemented] Increases your speed in dark areas. Damage Reduction increases by [VAL]% in dark areas. Dodge chance increases by [DODGEVAL]% in dark areas.",newdouble[]{5,5,5,5,5,5,5,5,5,5},
SURVIVOR("Survivor",ChatColor.GRAY+"[Unimplemented] Taking fatal damage will not kill you and instead consume this ability, removes all debuffs, and leaving you with 1 HP.",newdouble[]{-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0},
SHADOWWALKER("Shadow Walker",ChatColor.GRAY+"Increases your speed in dark areas. Damage Reduction increases by [VAL]% in dark areas. Dodge chance increases by [DODGEVAL]% in dark areas.",newdouble[]{5,5,5,5,5,5,5,5,5,5},
SURVIVOR("Survivor",ChatColor.GRAY+"[Unimplemented] Taking fatal damage will not kill you and instead consume this ability, removes all debuffs, and restoring your health.",newdouble[]{-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0},
DODGE("Dodge",ChatColor.GRAY+"[Unimplemented] You have a [VAL]% chance to dodge incoming damage from any damage source.",newdouble[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},
GRACEFULDODGE("Graceful Dodge",ChatColor.GRAY+"[Unimplemented] You have a [VAL]% chance to dodge incoming damage from attacks that deal [FATALDMG] or more damage.",newdouble[]{10,10,10,10,10,10,10,10,10,10},
DODGE("Dodge",ChatColor.GRAY+"You have a [VAL]% chance to dodge incoming damage from any damage source.",newdouble[]{0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55},
GRACEFULDODGE("Graceful Dodge","Whenever a dodge occurs, you will gain [VAL] seconds of invulnerability.",newdouble[]{0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.5},
PROVOKE("Provoke",ChatColor.GRAY+"[Unimplemented] Your attacks provoke enemies for [VAL] seconds.",newdouble[]{3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0},
COMBO("Belligerent",ChatColor.GRAY+"[Unimplemented] [VAL]% more damage for each successive strike on a mob. Resets on a failed swing or after 5 seconds of no combat.",newdouble[]{1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0},
COMBO("Belligerent","[VAL]% more damage for each successive strike on a mob. Resets after 2 seconds of no combat.",newdouble[]{1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5},
MINES("Land Mine",ChatColor.GRAY+"[Unimplemented]While in combat, throw your pickaxe to send land mines towards your enemies. On contact they deal [VAL] damage.",newdouble[]{5,5,5,5,5,5,5,5,5,5},
ERUPTION("Eruption","Sneak while Left-clicking a mob to damage mobs for [VAL] damage and knock them up. The eruption also destroys the ground beneath you.",newdouble[]{6.0,7,8.0,9,10.0,11,12.0,13,14.0,15},
EARTHWAVE("Earth Wave","While in combat, destroy a block to send a wave of earth towards your enemies. Enemies standing inside of the waves take [VAL] damage every second.",newdouble[]{8,9,10,11,12,13,14,15,16,18},
BREAKDOWN("Break Down",ChatColor.GRAY+"[Unimplemented] Breaks down armor on mobs. Each hit has a [VAL]% chance to remove a piece of armor from a mob.",newdouble[]{3,3,3,3,3,3,3,3,3,3},
@ -101,16 +107,16 @@ public enum ArtifactAbility {
AUTOREPAIR("Auto Repair",ChatColor.GRAY+"[Unimplemented] [REPAIRCHANCE]% chance to repair [VAL] durability to the artifact item every 10 seconds.\n\nThe item must be sitting in your hotbar or must be equipped for this ability to work.",newdouble[]{10,15,20,25,27.5,30,32.5,35,37.5,40},
AUTOREPAIR("Auto Repair","1% chance to repair [VAL] durability to the artifact item every second.\n\nThe item must be sitting in your hotbar or must be equipped for this ability to work.",newdouble[]{15,16,17,18,19,20,21,22,23,24},
GREED("Greed",ChatColor.GRAY+"[Unimplemented] Increases Drop rate by [VAL]% . Health is halved, health regeneration is halved, and damage reduction is halved. Consumes one level of Greed per level up.",newdouble[]{50,50,50,50,50,50,50,50,50,50},
GREED("Greed","Increases Drop rate by [VAL]% . Health is halved, health regeneration is halved, and damage reduction is halved. Consumes one level of Greed per level up.",newdouble[]{50,50,50,50,50,50,50,50,50,50},
/*GROWTH("Growth",ChatColor.GRAY+"[Unimplemented] Increases artifact EXP gained by [VAL]% . Health is halved, health regeneration is halved, and damage reduction is halved. Consumes one level of Growth per level up.",newdouble[]{100,100,100,100,100,100,100,100,100,100},
REMOVE_CURSE("Remove Curse",ChatColor.GRAY+"[Unimplemented] Removes a level of a curse from the Artifact.",newdouble[]{-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0},
msg=msg.replace("[PENDMG]",ChatColor.BLUE+df.format(calculateValue(ability,tier,abilitylv)/100*playerdmgval)+ChatColor.RESET);//Based on multiplying [VAL] by the base damage value.
publicstaticStringdisplayDescriptionUpgrade(ArtifactAbilityability,inttier,intfromlv,inttolv,doubleplayerdmgval){//Level to display information for.
@ -548,7 +590,8 @@ public enum ArtifactAbility {
msg=msg.replace("[PENDMG]",DisplayChangedValue(df.format(calculateValue(ability,tier,fromlv)/100*playerdmgval),df.format(calculateValue(ability,tier,tolv)/100*playerdmgval)));//Based on multiplying [VAL] by the base damage value.
log("Add in "+ArtifactAbility.calculateValue(ArtifactAbility.HEALTH,equipment[i].getEnchantmentLevel(Enchantment.LUCK),ArtifactAbility.getEnchantmentLevel(ArtifactAbility.HEALTH,equipment[i])),5);
//Blocking: -((p.isBlocking())?ev.getDamage()*0.33:0) //33% damage will be reduced if we are blocking.
//Shield: -((p.getEquipment().getItemInOffHand()!=null && p.getEquipment().getItemInOffHand().getType()==Material.SHIELD)?ev.getDamage()*0.05:0) //5% damage will be reduced if we are holding a shield.
tc1.setHoverEvent(newHoverEvent(HoverEvent.Action.SHOW_TEXT,newComponentBuilder("Click to upgrade abilities on this artifact. "+ChatColor.GREEN+"Available AP: "+ChatColor.BLUE+AwakenedArtifact.getAP(item)).create()));
tc1.setClickEvent(newClickEvent(ClickEvent.Action.RUN_COMMAND,"/awakenedartifact menu "+slot));