v0.6.1a: increased the cases where char buff access is synced

This commit is contained in:
Evan Debenham 2017-08-17 15:08:43 -04:00
parent 347e95ed6b
commit cae26999c2

View File

@ -339,7 +339,7 @@ public abstract class Char extends Actor {
return null; return null;
} }
public boolean isCharmedBy( Char ch ) { public synchronized boolean isCharmedBy( Char ch ) {
int chID = ch.id(); int chID = ch.id();
for (Buff b : buffs) { for (Buff b : buffs) {
if (b instanceof Charm && ((Charm)b).object == chID) { if (b instanceof Charm && ((Charm)b).object == chID) {
@ -349,7 +349,7 @@ public abstract class Char extends Actor {
return false; return false;
} }
public void add( Buff buff ) { public synchronized void add( Buff buff ) {
buffs.add( buff ); buffs.add( buff );
Actor.add( buff ); Actor.add( buff );
@ -368,27 +368,27 @@ public abstract class Char extends Actor {
} }
public void remove( Buff buff ) { public synchronized void remove( Buff buff ) {
buffs.remove( buff ); buffs.remove( buff );
Actor.remove( buff ); Actor.remove( buff );
} }
public void remove( Class<? extends Buff> buffClass ) { public synchronized void remove( Class<? extends Buff> buffClass ) {
for (Buff buff : buffs( buffClass )) { for (Buff buff : buffs( buffClass )) {
remove( buff ); remove( buff );
} }
} }
@Override @Override
protected void onRemove() { protected synchronized void onRemove() {
for (Buff buff : buffs.toArray(new Buff[buffs.size()])) { for (Buff buff : buffs.toArray(new Buff[buffs.size()])) {
buff.detach(); buff.detach();
} }
} }
public void updateSpriteState() { public synchronized void updateSpriteState() {
for (Buff buff:buffs) { for (Buff buff:buffs) {
buff.fx( true ); buff.fx( true );
} }