v2.5.0: improved using speck particles with magic missile

This commit is contained in:
Evan Debenham
2024-09-04 13:57:01 -04:00
parent 09b2338b54
commit 8b42e550f3
5 changed files with 18 additions and 16 deletions

View File

@@ -70,10 +70,8 @@ public class MagicMissile extends Emitter {
public static final int SHAMAN_RED = 11;
public static final int SHAMAN_BLUE = 12;
public static final int SHAMAN_PURPLE = 13;
public static final int TOXIC_VENT = 14;
public static final int ELMO = 15;
public static final int POISON = 16;
public static final int BUBBLES = 17;
public static final int ELMO = 14;
public static final int POISON = 15;
public static final int MAGIC_MISS_CONE = 100;
public static final int FROST_CONE = 101;
@@ -88,6 +86,9 @@ public class MagicMissile extends Emitter {
public static final int PURPLE_CONE = 111;
public static final int SPARK_CONE = 112;
public static final int BLOOD_CONE = 113;
//use SPECK + the constant of the Speck you want. e.g. MagicMissile.SPECK + Speck.TOXIC
public static final int SPECK = 1000;
public void reset( int type, int from, int to, Callback callback ) {
reset( type,
@@ -126,6 +127,14 @@ public class MagicMissile extends Emitter {
sy = speed.y;
time = d.length() / SPEED;
//for now all specks share the same size and volume, this can easily be customized later if needed
if (type >= SPECK){
size( 10 );
pour( Speck.factory(type-SPECK), 0.02f);
revive();
return;
}
switch(type){
case MAGIC_MISSILE: default:
size( 4 );
@@ -180,10 +189,6 @@ public class MagicMissile extends Emitter {
size( 2 );
pour( ShamanParticle.PURPLE, 0.01f );
break;
case TOXIC_VENT:
size( 10 );
pour( Speck.factory(Speck.TOXIC), 0.02f );
break;
case ELMO:
size( 5 );
pour( ElmoParticle.FACTORY, 0.01f );
@@ -192,10 +197,6 @@ public class MagicMissile extends Emitter {
size( 3 );
pour( PoisonParticle.MISSILE, 0.01f );
break;
case BUBBLES:
size( 10 );
pour( Speck.factory(Speck.BUBBLE), 0.02f );
break;
case MAGIC_MISS_CONE:
size( 10 );

View File

@@ -324,7 +324,7 @@ public class CursedWand {
@Override
public void FX(Item origin, Char user, Ballistica bolt, Callback callback) {
MagicMissile.boltFromChar(user.sprite.parent,
MagicMissile.BUBBLES,
MagicMissile.SPECK + Speck.BUBBLE,
user.sprite,
bolt.collisionPos,
callback);

View File

@@ -63,7 +63,7 @@ public class DM200Sprite extends MobSprite {
super.zap( cell );
MagicMissile.boltFromChar( parent,
MagicMissile.TOXIC_VENT,
MagicMissile.SPECK + Speck.TOXIC,
this,
cell,
new Callback() {

View File

@@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM300;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BlastParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SparkParticle;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
@@ -87,7 +88,7 @@ public class DM300Sprite extends MobSprite {
super.zap( cell );
MagicMissile.boltFromChar( parent,
MagicMissile.TOXIC_VENT,
MagicMissile.SPECK + Speck.TOXIC,
this,
cell,
new Callback() {

View File

@@ -199,7 +199,7 @@ public abstract class FistSprite extends MobSprite {
public static class Rotting extends FistSprite {
{
boltType = MagicMissile.TOXIC_VENT;
boltType = MagicMissile.SPECK + Speck.TOXIC;
}
@Override