v1.4.0: fixed necromancers being able to summon through crystal doors
This commit is contained in:
@@ -37,6 +37,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportat
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.NecromancerSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.NecromancerSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
|
||||||
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;
|
||||||
@@ -263,8 +264,13 @@ public class Necromancer extends Mob {
|
|||||||
if (enemySeen && Dungeon.level.distance(pos, enemy.pos) <= 4 && mySkeleton == null){
|
if (enemySeen && Dungeon.level.distance(pos, enemy.pos) <= 4 && mySkeleton == null){
|
||||||
|
|
||||||
summoningPos = -1;
|
summoningPos = -1;
|
||||||
|
|
||||||
|
//we can summon around blocking terrain, but not through it
|
||||||
|
PathFinder.buildDistanceMap(pos, BArray.not(Dungeon.level.solid, null), Dungeon.level.distance(pos, enemy.pos)+3);
|
||||||
|
|
||||||
for (int c : PathFinder.NEIGHBOURS8){
|
for (int c : PathFinder.NEIGHBOURS8){
|
||||||
if (Actor.findChar(enemy.pos+c) == null
|
if (Actor.findChar(enemy.pos+c) == null
|
||||||
|
&& PathFinder.distance[enemy.pos+c] != Integer.MAX_VALUE
|
||||||
&& Dungeon.level.passable[enemy.pos+c]
|
&& Dungeon.level.passable[enemy.pos+c]
|
||||||
&& fieldOfView[enemy.pos+c]
|
&& fieldOfView[enemy.pos+c]
|
||||||
&& Dungeon.level.trueDistance(pos, enemy.pos+c) < Dungeon.level.trueDistance(pos, summoningPos)){
|
&& Dungeon.level.trueDistance(pos, enemy.pos+c) < Dungeon.level.trueDistance(pos, summoningPos)){
|
||||||
|
|||||||
Reference in New Issue
Block a user