v0.3.0: BIG refactor to buff display, more clear and extendable code, instead of a nest of instanceof statements
This commit is contained in:
@@ -348,93 +348,26 @@ public abstract class Char extends Actor {
|
||||
|
||||
buffs.add( buff );
|
||||
Actor.add( buff );
|
||||
|
||||
if (sprite != null) {
|
||||
if (buff instanceof Poison) {
|
||||
|
||||
CellEmitter.center( pos ).burst( PoisonParticle.SPLASH, 5 );
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "poisoned" );
|
||||
|
||||
} else if (buff instanceof Amok) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "amok" );
|
||||
|
||||
} else if (buff instanceof Slow) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "slowed" );
|
||||
|
||||
} else if (buff instanceof Chill) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "chilled" );
|
||||
sprite.add( CharSprite.State.CHILLED );
|
||||
|
||||
} else if (buff instanceof MindVision) {
|
||||
|
||||
sprite.showStatus( CharSprite.POSITIVE, "mind" );
|
||||
sprite.showStatus( CharSprite.POSITIVE, "vision" );
|
||||
|
||||
} else if (buff instanceof Paralysis) {
|
||||
|
||||
sprite.add( CharSprite.State.PARALYSED );
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "paralysed" );
|
||||
|
||||
} else if (buff instanceof Terror) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "frightened" );
|
||||
|
||||
} else if (buff instanceof Roots) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "rooted" );
|
||||
|
||||
} else if (buff instanceof Cripple) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "crippled" );
|
||||
|
||||
} else if (buff instanceof Bleeding) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "bleeding" );
|
||||
|
||||
} else if (buff instanceof Vertigo) {
|
||||
|
||||
sprite.showStatus( CharSprite.NEGATIVE, "dizzy" );
|
||||
|
||||
} else if (buff instanceof Sleep) {
|
||||
sprite.idle();
|
||||
if (sprite != null)
|
||||
switch(buff.type){
|
||||
case POSITIVE:
|
||||
sprite.showStatus(CharSprite.POSITIVE, buff.toString()); break;
|
||||
case NEGATIVE:
|
||||
sprite.showStatus(CharSprite.NEGATIVE, buff.toString());break;
|
||||
case NEUTRAL:
|
||||
sprite.showStatus(CharSprite.NEUTRAL, buff.toString()); break;
|
||||
case SILENT: default:
|
||||
break; //show nothing
|
||||
}
|
||||
|
||||
else if (buff instanceof Burning) {
|
||||
sprite.add( CharSprite.State.BURNING );
|
||||
} else if (buff instanceof Levitation) {
|
||||
sprite.add( CharSprite.State.LEVITATING );
|
||||
} else if (buff instanceof Frost) {
|
||||
sprite.add( CharSprite.State.FROZEN );
|
||||
} else if (buff instanceof Invisibility || buff instanceof CloakOfShadows.cloakStealth) {
|
||||
if (!(buff instanceof Shadows)) {
|
||||
sprite.showStatus( CharSprite.POSITIVE, "invisible" );
|
||||
}
|
||||
sprite.add( CharSprite.State.INVISIBLE );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void remove( Buff buff ) {
|
||||
|
||||
buffs.remove( buff );
|
||||
Actor.remove( buff );
|
||||
|
||||
if (buff instanceof Burning) {
|
||||
sprite.remove( CharSprite.State.BURNING );
|
||||
} else if (buff instanceof Levitation) {
|
||||
sprite.remove( CharSprite.State.LEVITATING );
|
||||
} else if ((buff instanceof Invisibility || buff instanceof CloakOfShadows.cloakStealth) && invisible <= 0) {
|
||||
sprite.remove( CharSprite.State.INVISIBLE );
|
||||
} else if (buff instanceof Paralysis) {
|
||||
sprite.remove( CharSprite.State.PARALYSED );
|
||||
} else if (buff instanceof Frost) {
|
||||
sprite.remove( CharSprite.State.FROZEN );
|
||||
} else if (buff instanceof Chill) {
|
||||
sprite.remove( CharSprite.State.CHILLED );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void remove( Class<? extends Buff> buffClass ) {
|
||||
@@ -452,21 +385,7 @@ public abstract class Char extends Actor {
|
||||
|
||||
public void updateSpriteState() {
|
||||
for (Buff buff:buffs) {
|
||||
if (buff instanceof Burning) {
|
||||
sprite.add( CharSprite.State.BURNING );
|
||||
} else if (buff instanceof Levitation) {
|
||||
sprite.add( CharSprite.State.LEVITATING );
|
||||
} else if (buff instanceof Invisibility || buff instanceof CloakOfShadows.cloakStealth) {
|
||||
sprite.add( CharSprite.State.INVISIBLE );
|
||||
} else if (buff instanceof Paralysis) {
|
||||
sprite.add( CharSprite.State.PARALYSED );
|
||||
} else if (buff instanceof Frost) {
|
||||
sprite.add( CharSprite.State.FROZEN );
|
||||
} else if (buff instanceof Light) {
|
||||
sprite.add( CharSprite.State.ILLUMINATED );
|
||||
} else if (buff instanceof Chill) {
|
||||
sprite.add( CharSprite.State.CHILLED );
|
||||
}
|
||||
buff.fx( true );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user