v0.8.2c: tweaks to missile sprite vfx

This commit is contained in:
Evan Debenham 2020-08-21 15:30:10 -04:00
parent f210cc23f4
commit d7a2442832
5 changed files with 25 additions and 13 deletions

View File

@ -70,7 +70,7 @@ public class HuntressArmor extends ClassArmor {
};
((MissileSprite)curUser.sprite.parent.recycle( MissileSprite.class )).
reset( curUser.pos, mob.pos, proto, callback );
reset( curUser.sprite, mob.pos, proto, callback );
targets.put( callback, mob );
}

View File

@ -61,7 +61,7 @@ public class GnollTricksterSprite extends MobSprite {
if (!Dungeon.level.adjacent(cell, ch.pos)) {
((MissileSprite)parent.recycle( MissileSprite.class )).
reset( ch.pos, cell, new ParalyticDart(), new Callback() {
reset( this, cell, new ParalyticDart(), new Callback() {
@Override
public void call() {
ch.onAttackComplete();

View File

@ -46,24 +46,30 @@ import java.util.HashMap;
public class MissileSprite extends ItemSprite implements Tweener.Listener {
private static final float SPEED = 240f;
private static final float SPEED = 24f;
private Callback callback;
public void reset( int from, int to, Item item, Callback listener ) {
reset( DungeonTilemap.tileToWorld( from ), DungeonTilemap.tileToWorld( to ), item, listener);
}
public void reset( Visual from, Visual to, Item item, Callback listener ) {
reset(from.center(this), to.center(this), item, listener );
reset(Dungeon.level.solid[from] ? DungeonTilemap.raisedTileCenterToWorld(from) : DungeonTilemap.raisedTileCenterToWorld(from),
Dungeon.level.solid[to] ? DungeonTilemap.raisedTileCenterToWorld(to) : DungeonTilemap.raisedTileCenterToWorld(to),
item, listener);
}
public void reset( Visual from, int to, Item item, Callback listener ) {
reset(from.center(this), DungeonTilemap.tileToWorld( to ), item, listener );
reset(from.center(),
Dungeon.level.solid[to] ? DungeonTilemap.raisedTileCenterToWorld(to) : DungeonTilemap.raisedTileCenterToWorld(to),
item, listener );
}
public void reset( int from, Visual to, Item item, Callback listener ) {
reset(DungeonTilemap.tileToWorld( from ), to.center(this), item, listener );
reset(Dungeon.level.solid[from] ? DungeonTilemap.raisedTileCenterToWorld(from) : DungeonTilemap.raisedTileCenterToWorld(from),
to.center(),
item, listener );
}
public void reset( Visual from, Visual to, Item item, Callback listener ) {
reset(from.center(), to.center(), item, listener );
}
public void reset( PointF from, PointF to, Item item, Callback listener) {
@ -108,6 +114,12 @@ public class MissileSprite extends ItemSprite implements Tweener.Listener {
originToCenter();
//adjust points so they work with the center of the missile sprite, not the corner
from.x -= width()/2;
to.x -= width()/2;
from.y -= height()/2;
to.y -= height()/2;
this.callback = listener;
point( from );

View File

@ -81,7 +81,7 @@ public class ScorpioSprite extends MobSprite {
idle();
((MissileSprite)parent.recycle( MissileSprite.class )).
reset( ch.pos, cellToAttack, new ScorpioShot(), new Callback() {
reset( this, cellToAttack, new ScorpioShot(), new Callback() {
@Override
public void call() {
ch.onAttackComplete();

View File

@ -81,7 +81,7 @@ public class TenguSprite extends MobSprite {
if (!Dungeon.level.adjacent( cell, ch.pos )) {
((MissileSprite)parent.recycle( MissileSprite.class )).
reset( ch.pos, cell, new TenguShuriken(), new Callback() {
reset( this, cell, new TenguShuriken(), new Callback() {
@Override
public void call() {
ch.onAttackComplete();