v2.2.0: fixed throwItems not working with new enclosed crystal areas
This commit is contained in:
@@ -81,7 +81,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.MirrorImage;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PrismaticImage;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PrismaticImage;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Potential;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Potential;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Viscosity;
|
import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.Viscosity;
|
||||||
@@ -113,14 +112,15 @@ import com.shatteredpixel.shatteredpixeldungeon.plants.Earthroot;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Swiftthistle;
|
import com.shatteredpixel.shatteredpixeldungeon.plants.Swiftthistle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||||
import com.watabou.utils.BArray;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
|
import com.watabou.utils.BArray;
|
||||||
import com.watabou.utils.Bundlable;
|
import com.watabou.utils.Bundlable;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
import com.watabou.utils.PathFinder;
|
import com.watabou.utils.PathFinder;
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
@@ -172,14 +172,17 @@ public abstract class Char extends Actor {
|
|||||||
|
|
||||||
protected void throwItems(){
|
protected void throwItems(){
|
||||||
Heap heap = Dungeon.level.heaps.get( pos );
|
Heap heap = Dungeon.level.heaps.get( pos );
|
||||||
if (heap != null && heap.type == Heap.Type.HEAP) {
|
if (heap != null && heap.type == Heap.Type.HEAP
|
||||||
int n;
|
&& !(heap.peek() instanceof Tengu.BombAbility.BombItem)
|
||||||
do {
|
&& !(heap.peek() instanceof Tengu.ShockerAbility.ShockerItem)) {
|
||||||
n = pos + PathFinder.NEIGHBOURS8[Random.Int( 8 )];
|
ArrayList<Integer> candidates = new ArrayList<>();
|
||||||
} while (!Dungeon.level.passable[n] && !Dungeon.level.avoid[n]);
|
for (int n : PathFinder.NEIGHBOURS8){
|
||||||
Item item = heap.peek();
|
if (Dungeon.level.passable[pos+n]){
|
||||||
if (!(item instanceof Tengu.BombAbility.BombItem || item instanceof Tengu.ShockerAbility.ShockerItem)){
|
candidates.add(pos+n);
|
||||||
Dungeon.level.drop( heap.pickUp(), n ).sprite.drop( pos );
|
}
|
||||||
|
}
|
||||||
|
if (!candidates.isEmpty()){
|
||||||
|
Dungeon.level.drop( heap.pickUp(), Random.element(candidates) ).sprite.drop( pos );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user