From 67d621fde163db2a45c1a060fa188aa209a06a82 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 6 Feb 2023 22:18:58 -0600 Subject: [PATCH] Implemented Lv53 Precise Touch mechanics --- SigCrafter/condition_stats.txt | 6 ++-- SigCrafter/src/sig/SigCraft.java | 38 ++++++++++++++++++++- SigCrafter/src/sig/skills/PreciseTouch.java | 30 ++++++++++++++++ 3 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 SigCrafter/src/sig/skills/PreciseTouch.java diff --git a/SigCrafter/condition_stats.txt b/SigCrafter/condition_stats.txt index 1d42652..81605fa 100644 --- a/SigCrafter/condition_stats.txt +++ b/SigCrafter/condition_stats.txt @@ -1,3 +1,3 @@ -143 -26 -4 +862 +154 +28 diff --git a/SigCrafter/src/sig/SigCraft.java b/SigCrafter/src/sig/SigCraft.java index 6bc8ade..1feb589 100644 --- a/SigCrafter/src/sig/SigCraft.java +++ b/SigCrafter/src/sig/SigCraft.java @@ -28,6 +28,7 @@ import sig.skills.Innovation; import sig.skills.MastersMend; import sig.skills.NameOfTheElements; import sig.skills.Observe; +import sig.skills.PreciseTouch; import sig.skills.RapidSynthesis; import sig.skills.StandardTouch; import sig.skills.TricksOfTheTrade; @@ -102,6 +103,7 @@ public class SigCraft { SKILLLIST.put("Basic Touch",new BasicTouch("Basic Touch",18,true,5,KeyEvent.VK_2)); SKILLLIST.put("Hasty Touch",new HastyTouch("Hasty Touch",0,false,9,KeyEvent.VK_CONTROL,KeyEvent.VK_3)); SKILLLIST.put("Standard Touch",new StandardTouch("Standard Touch",32,true,18,KeyEvent.VK_SHIFT,KeyEvent.VK_2)); + SKILLLIST.put("Precise Touch",new PreciseTouch("Precise Touch",18,true,53,KeyEvent.VK_ALT,KeyEvent.VK_2)); //SKILLLIST.add(new Skill("Byregot's Blessing",24,true,50)); //TODO We don't know how this works yet. SKILLLIST.put("Tricks of the Trade",new TricksOfTheTrade("Tricks of the Trade",0,true,13,KeyEvent.VK_CONTROL,KeyEvent.VK_2)); SKILLLIST.put("Master's Mend",new MastersMend("Master's Mend",88,true,7,KeyEvent.VK_3)); @@ -160,7 +162,8 @@ public class SigCraft { UpdateCondition(); //LoadRotation_40Durability_800Quality_1Synth_280CP_LV50(); //LoadRotation_40Durability_1200Quality_1Synth_282CP_LV47(); - LoadRotation_40Durability_1200Quality_1Synth_wVeneration_280CP_LV47(); + //LoadRotation_40Durability_1200Quality_1Synth_wVeneration_280CP_LV47(); + LoadRotation_40Durability_1200Quality_1Synth_wVeneration_280CP_LV53(); //LoadRotation_40Durability_1700Quality_1Synth_278CP_LV47(); //LoadRotation_40Durability_1700Quality_1Synth_wVeneration_278CP_LV47(); //LoadRotation_40Durability_1900Quality_1Synth_280CP_LV45(); @@ -279,6 +282,7 @@ public class SigCraft { } private static void LoadRotation_40Durability_800Quality_1Synth_280CP_LV50() { + LEVEL=50; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); PerformSkill("Inner Quiet"); @@ -293,6 +297,7 @@ public class SigCraft { } private static void LoadRotation_40Durability_1900Quality_1Synth_280CP_LV50() { + LEVEL=50; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); PerformSkill("Inner Quiet"); @@ -310,6 +315,7 @@ public class SigCraft { } private static void LoadRotation_40Durability_1700Quality_1Synth_278CP_LV47() { + LEVEL=47; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); PerformSkill("Inner Quiet"); @@ -330,6 +336,7 @@ public class SigCraft { } private static void LoadRotation_40Durability_1700Quality_1Synth_wVeneration_278CP_LV47() { + LEVEL=47; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); PerformSkill("Inner Quiet"); @@ -350,6 +357,7 @@ public class SigCraft { } private static void LoadRotation_40Durability_1200Quality_1Synth_282CP_LV47() { + LEVEL=47; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); CONDITION_CHECK = false;UpdateCondition(); @@ -368,6 +376,27 @@ public class SigCraft { } private static void LoadRotation_40Durability_1200Quality_1Synth_wVeneration_280CP_LV47() { + LEVEL=47; + DURABILITY=40; + CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); + //PerformSkill("Inner Quiet"); + CONDITION_CHECK = false;UpdateCondition(); + PerformSkill("Waste Not II"); + PerformSkill("Innovation"); + UseRegularTouch(); + UseRegularTouch(); + UseRegularTouch(); + UseRegularTouch(); + //PerformSkill("Innovation",true); + UseRegularTouch(); + UseRegularTouch(); + UseRegularTouch(); + PerformSkill("Veneration"); + PerformSkill("Basic Synthesis"); + } + + private static void LoadRotation_40Durability_1200Quality_1Synth_wVeneration_280CP_LV53() { + LEVEL=53; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); //PerformSkill("Inner Quiet"); @@ -387,6 +416,7 @@ public class SigCraft { } private static void LoadRotation_40Durability_1900Quality_1Synth_280CP_LV45() { + LEVEL=45; DURABILITY=40; CURRENT_CRAFT = new Craft(CONTROL,LEVEL,CP,BASE_PROGRESS,PROGRESS_GOAL,QUALITY_GOAL,GUARANTEED,DURABILITY,CRAFT_PROGRESS,CRAFT_QUALITY,DURABILITY,CP,1,1,1,RECIPE_LEVEL,Status.NORMAL,BUFFLIST); boolean combo=false; @@ -424,6 +454,12 @@ public class SigCraft { if (!isHundredPercent){ if ((CURRENT_CRAFT.craft_durability>5&&CURRENT_CRAFT.BuffList.get("Waste Not").stackCount>0)||(CURRENT_CRAFT.craft_durability>10&&CURRENT_CRAFT.BuffList.get("Waste Not").stackCount==0)) { if (CURRENT_CRAFT.craft_cp>=18) { + if (LEVEL>=53){ + UpdateCondition(); + } + if (LEVEL>=53&&(CURRENT_CONDITION==Condition.GOOD||CURRENT_CONDITION==Condition.EXCELLENT)){ + PerformSkill("Precise Touch",true); + } else if (IsCombo()) { PerformSkill("Standard Touch",true); } else { diff --git a/SigCrafter/src/sig/skills/PreciseTouch.java b/SigCrafter/src/sig/skills/PreciseTouch.java new file mode 100644 index 0000000..ed285a1 --- /dev/null +++ b/SigCrafter/src/sig/skills/PreciseTouch.java @@ -0,0 +1,30 @@ +package sig.skills; + +import sig.Craft; +import sig.Skill; + +public class PreciseTouch extends Skill { + + public PreciseTouch(String name, int CPCost, boolean guaranteed, int lvReq, int modifier, int key) { + super(name, CPCost, guaranteed, lvReq, modifier, key); + } + + public PreciseTouch(String name, int CPCost, boolean guaranteed, int lvReq, int key) { + super(name, CPCost, guaranteed, lvReq, key); + } + + @Override + public void useSkill(Craft c) { + if (c.SkillList.size()>0&&c.SkillList.get(c.SkillList.size()-1).name.equalsIgnoreCase("Basic Touch")) { + CPCost = 18; + } else { + CPCost = 32; + } + c.craft_quality += 1.25 * c.quality_mult * (0.37*c.control+32.6)*(1-0.05*Math.min(Math.max(c.recipe_level-c.level,0),5)); + c.craft_durability -= 10 * c.durability_mult; + super.useSkill(c); + if (c.BuffList.get("Inner Quiet").stackCount>0) {c.BuffList.get("Inner Quiet").stackCount++;} + super.updateBuffs(c); + } + +}