V0.2.0: Added Cape of Thorns
This commit is contained in:
parent
93b5fe3eb6
commit
33b015a25e
BIN
assets/buffs.png
BIN
assets/buffs.png
Binary file not shown.
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
|
@ -0,0 +1,113 @@
|
|||
package com.shatteredpixel.shatteredpixeldungeon.items.artifacts;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.Utils;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.windows.WndOptions;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
/**
|
||||
* Created by debenhame on 03/09/2014.
|
||||
*/
|
||||
public class CapeOfThorns extends Artifact {
|
||||
//TODO: add polish, testing
|
||||
|
||||
{
|
||||
name = "Cape of Thorns";
|
||||
image = ItemSpriteSheet.ARTIFACT_CAPE;
|
||||
level = 0;
|
||||
levelCap = 10;
|
||||
charge = 0;
|
||||
chargeCap = 100;
|
||||
//partialcharge is unused
|
||||
}
|
||||
|
||||
private int timer = 0;
|
||||
|
||||
private int exp = 0;
|
||||
|
||||
@Override
|
||||
public String status() {
|
||||
if (timer == 0)
|
||||
return Utils.format("%d%", charge);
|
||||
else
|
||||
return Utils.format("%d", timer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ArtifactBuff passiveBuff() {
|
||||
return new Thorns();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String desc() {
|
||||
//TODO: add description
|
||||
return "";
|
||||
}
|
||||
|
||||
public class Thorns extends ArtifactBuff{
|
||||
|
||||
@Override
|
||||
public boolean act(){
|
||||
if (timer > 0)
|
||||
timer--;
|
||||
else if (charge > 0)
|
||||
charge--;
|
||||
return true;
|
||||
}
|
||||
|
||||
public int proc(int damage, Char attacker){
|
||||
if (timer == 0){
|
||||
charge += damage/(4f - level*0.1);
|
||||
if (charge > chargeCap){
|
||||
charge = 0;
|
||||
timer = 5+level;
|
||||
}
|
||||
}
|
||||
|
||||
if (timer != 0){
|
||||
int deflected = Random.NormalIntRange(0, (int)(damage*0.66));
|
||||
damage -= deflected;
|
||||
|
||||
attacker.damage(deflected, this);
|
||||
|
||||
exp+= deflected;
|
||||
|
||||
if (exp >= (level+1)*10 && level < levelCap){
|
||||
exp -= (level+1)*10;
|
||||
level++;
|
||||
GLog.p("Your Cape grows stronger!");
|
||||
}
|
||||
|
||||
}
|
||||
return damage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Thorns";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int icon() {
|
||||
if (timer == 0)
|
||||
return BuffIndicator.NONE;
|
||||
else
|
||||
return BuffIndicator.THORNS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void detach(){
|
||||
timer = 0;
|
||||
charge = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -64,6 +64,7 @@ public class BuffIndicator extends Component {
|
|||
public static final int DEFERRED = 28;
|
||||
public static final int DROWSY = 29;
|
||||
public static final int MAGIC_SLEEP = 30;
|
||||
public static final int THORNS = 31;
|
||||
|
||||
public static final int SIZE = 7;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user