v0.6.5: adjusted lucky glyph

This commit is contained in:
Evan Debenham 2018-04-23 21:14:41 -04:00 committed by Evan Debenham
parent 11c4979e7e
commit 2b66238608

View File

@ -22,9 +22,11 @@
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite.Glowing;
import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class Lucky extends Weapon.Enchantment {
@ -34,17 +36,69 @@ public class Lucky extends Weapon.Enchantment {
@Override
public int proc( Weapon weapon, Char attacker, Char defender, int damage ) {
int level = Math.max( 0, weapon.level() );
if (Random.Int(100) < (60 + level)){
return 2*damage;
} else {
return 0;
float zeroChance = 0.5f;
Luck buff = attacker.buff(Luck.class);
if (buff != null){
zeroChance = buff.zeroChance;
}
if (Random.Float() >= zeroChance){
if (buff != null) {
buff.detach();
}
return 2*damage;
} else {
buff = Buff.affect(attacker, Luck.class);
buff.zeroChance = zeroChance * (0.5f - 0.001f*level);
return 0;
}
}
@Override
public Glowing glowing() {
return GREEN;
}
public static class Luck extends Buff {
float zeroChance;
@Override
public boolean act() {
zeroChance += 0.01f;
if (zeroChance >= 0.5f){
detach();
} else {
spend(TICK);
}
return true;
}
private static final String CHANCE = "chance";
@Override
public void restoreFromBundle(Bundle bundle) {
super.restoreFromBundle(bundle);
zeroChance = bundle.getFloat(CHANCE);
}
@Override
public void storeInBundle(Bundle bundle) {
super.storeInBundle(bundle);
bundle.put(CHANCE, zeroChance);
}
}
}