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