v2.3.0: improved foresight buffs on level load and at high movespeed
This commit is contained in:
@@ -777,6 +777,15 @@ public class Hero extends Char {
|
|||||||
ready();
|
ready();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if we just loaded into a level and have a search buff, make sure to process them
|
||||||
|
if(Actor.now() == 0){
|
||||||
|
if (buff(Foresight.class) != null){
|
||||||
|
search(false);
|
||||||
|
} else if (buff(TalismanOfForesight.Foresight.class) != null){
|
||||||
|
buff(TalismanOfForesight.Foresight.class).checkAwareness();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
actResult = false;
|
actResult = false;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -2345,6 +2354,10 @@ public class Hero extends Char {
|
|||||||
GameScene.updateFog(pos, Foresight.DISTANCE+1);
|
GameScene.updateFog(pos, Foresight.DISTANCE+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (talisman != null){
|
||||||
|
talisman.checkAwareness();
|
||||||
|
}
|
||||||
|
|
||||||
return smthFound;
|
return smthFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+25
-21
@@ -264,6 +264,31 @@ public class TalismanOfForesight extends Artifact {
|
|||||||
public boolean act() {
|
public boolean act() {
|
||||||
spend( TICK );
|
spend( TICK );
|
||||||
|
|
||||||
|
checkAwareness();
|
||||||
|
|
||||||
|
if (charge < chargeCap
|
||||||
|
&& !cursed
|
||||||
|
&& target.buff(MagicImmune.class) == null
|
||||||
|
&& Regeneration.regenOn()) {
|
||||||
|
//fully charges in 2000 turns at +0, scaling to 1000 turns at +10.
|
||||||
|
float chargeGain = (0.05f+(level()*0.005f));
|
||||||
|
chargeGain *= RingOfEnergy.artifactChargeMultiplier(target);
|
||||||
|
partialCharge += chargeGain;
|
||||||
|
|
||||||
|
if (partialCharge > 1 && charge < chargeCap) {
|
||||||
|
partialCharge--;
|
||||||
|
charge++;
|
||||||
|
updateQuickslot();
|
||||||
|
} else if (charge >= chargeCap) {
|
||||||
|
partialCharge = 0;
|
||||||
|
GLog.p( Messages.get(TalismanOfForesight.class, "full_charge") );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkAwareness(){
|
||||||
boolean smthFound = false;
|
boolean smthFound = false;
|
||||||
|
|
||||||
int distance = 3;
|
int distance = 3;
|
||||||
@@ -313,27 +338,6 @@ public class TalismanOfForesight extends Artifact {
|
|||||||
} else {
|
} else {
|
||||||
warn = false;
|
warn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (charge < chargeCap
|
|
||||||
&& !cursed
|
|
||||||
&& target.buff(MagicImmune.class) == null
|
|
||||||
&& Regeneration.regenOn()) {
|
|
||||||
//fully charges in 2000 turns at +0, scaling to 1000 turns at +10.
|
|
||||||
float chargeGain = (0.05f+(level()*0.005f));
|
|
||||||
chargeGain *= RingOfEnergy.artifactChargeMultiplier(target);
|
|
||||||
partialCharge += chargeGain;
|
|
||||||
|
|
||||||
if (partialCharge > 1 && charge < chargeCap) {
|
|
||||||
partialCharge--;
|
|
||||||
charge++;
|
|
||||||
updateQuickslot();
|
|
||||||
} else if (charge >= chargeCap) {
|
|
||||||
partialCharge = 0;
|
|
||||||
GLog.p( Messages.get(TalismanOfForesight.class, "full_charge") );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void charge(int boost){
|
public void charge(int boost){
|
||||||
|
|||||||
Reference in New Issue
Block a user