use of com.watabou.utils.PointF in project pixel-dungeon-remix by NYRDS.
the class MagicMissile method reset.
public void reset(int from, int to, @Nullable Callback callback) {
this.callback = callback;
revive();
PointF pf = DungeonTilemap.tileCenterToWorld(from);
PointF pt = DungeonTilemap.tileCenterToWorld(to);
x = pf.x;
y = pf.y;
width = 0;
height = 0;
PointF d = PointF.diff(pt, pf);
PointF speed = new PointF(d).normalize().scale(SPEED);
sx = speed.x;
sy = speed.y;
time = d.length() / SPEED;
}
use of com.watabou.utils.PointF in project pixel-dungeon by watabou.
the class Item method use.
public void use() {
if (level > 0 && !isBroken()) {
int threshold = (int) (maxDurability() * DURABILITY_WARNING_LEVEL);
if (durability-- >= threshold && threshold > durability && levelKnown) {
GLog.w(TXT_GONNA_BREAK, name());
}
if (isBroken()) {
getBroken();
if (levelKnown) {
GLog.n(TXT_BROKEN, name());
Dungeon.hero.interrupt();
CharSprite sprite = Dungeon.hero.sprite;
PointF point = sprite.center().offset(0, -16);
if (this instanceof Weapon) {
sprite.parent.add(Degradation.weapon(point));
} else if (this instanceof Armor) {
sprite.parent.add(Degradation.armor(point));
} else if (this instanceof Ring) {
sprite.parent.add(Degradation.ring(point));
} else if (this instanceof Wand) {
sprite.parent.add(Degradation.wand(point));
}
Sample.INSTANCE.play(Assets.SND_DEGRADE);
}
}
}
}
use of com.watabou.utils.PointF in project pixel-dungeon by watabou.
the class MagicMissile method reset.
public void reset(int from, int to, float velocity, Callback callback) {
this.callback = callback;
revive();
PointF pf = DungeonTilemap.tileCenterToWorld(from);
PointF pt = DungeonTilemap.tileCenterToWorld(to);
x = pf.x;
y = pf.y;
width = 0;
height = 0;
PointF d = PointF.diff(pt, pf);
PointF speed = new PointF(d).normalize().scale(velocity);
sx = speed.x;
sy = speed.y;
time = d.length() / velocity;
}
use of com.watabou.utils.PointF in project pixel-dungeon by watabou.
the class BadgeBanner method highlight.
public static void highlight(Image image, int index) {
PointF p = new PointF();
switch(index) {
case 0:
case 1:
case 2:
case 3:
p.offset(7, 3);
break;
case 4:
case 5:
case 6:
case 7:
p.offset(6, 5);
break;
case 8:
case 9:
case 10:
case 11:
p.offset(6, 3);
break;
case 12:
case 13:
case 14:
case 15:
p.offset(7, 4);
break;
case 16:
p.offset(6, 3);
break;
case 17:
p.offset(5, 4);
break;
case 18:
p.offset(7, 3);
break;
case 20:
p.offset(7, 3);
break;
case 21:
p.offset(7, 3);
break;
case 22:
p.offset(6, 4);
break;
case 23:
p.offset(4, 5);
break;
case 24:
p.offset(6, 4);
break;
case 25:
p.offset(6, 5);
break;
case 26:
p.offset(5, 5);
break;
case 27:
p.offset(6, 4);
break;
case 28:
p.offset(3, 5);
break;
case 29:
p.offset(5, 4);
break;
case 30:
p.offset(5, 4);
break;
case 31:
p.offset(5, 5);
break;
case 32:
case 33:
p.offset(7, 4);
break;
case 34:
p.offset(6, 4);
break;
case 35:
p.offset(6, 4);
break;
case 36:
p.offset(6, 5);
break;
case 37:
p.offset(4, 4);
break;
case 38:
p.offset(5, 5);
break;
case 39:
p.offset(5, 4);
break;
case 40:
case 41:
case 42:
case 43:
p.offset(5, 4);
break;
case 44:
case 45:
case 46:
case 47:
p.offset(5, 5);
break;
case 48:
case 49:
case 50:
case 51:
p.offset(7, 4);
break;
case 52:
case 53:
case 54:
case 55:
p.offset(4, 4);
break;
case 56:
p.offset(3, 7);
break;
case 57:
p.offset(4, 5);
break;
case 58:
p.offset(6, 4);
break;
case 59:
p.offset(7, 4);
break;
case 60:
case 61:
case 62:
case 63:
p.offset(4, 4);
break;
}
p.x *= image.scale.x;
p.y *= image.scale.y;
p.offset(-image.origin.x * (image.scale.x - 1), -image.origin.y * (image.scale.y - 1));
p.offset(image.point());
Speck star = new Speck();
star.reset(0, p.x, p.y, Speck.DISCOVER);
star.camera = image.camera();
image.parent.add(star);
}
use of com.watabou.utils.PointF in project pixel-dungeon by watabou.
the class MissileSprite method reset.
public void reset(int from, int to, int image, Glowing glowing, Callback listener) {
revive();
view(image, glowing);
this.callback = listener;
point(DungeonTilemap.tileToWorld(from));
PointF dest = DungeonTilemap.tileToWorld(to);
PointF d = PointF.diff(dest, point());
speed.set(d).normalize().scale(SPEED);
if (image == 31 || image == 108 || image == 109 || image == 110) {
angularSpeed = 0;
angle = 135 - (float) (Math.atan2(d.x, d.y) / 3.1415926 * 180);
} else {
angularSpeed = image == 15 || image == 106 ? 1440 : 720;
}
PosTweener tweener = new PosTweener(this, dest, d.length() / SPEED);
tweener.listener = this;
parent.add(tweener);
}
Aggregations