v0.6.1a: thieves are no longer able to escape while visible in any circumstance.
This commit is contained in:
@@ -56,6 +56,7 @@ public class Thief extends Mob {
|
|||||||
loot = null;
|
loot = null;
|
||||||
lootChance = 0.01f;
|
lootChance = 0.01f;
|
||||||
|
|
||||||
|
WANDERING = new Wandering();
|
||||||
FLEEING = new Fleeing();
|
FLEEING = new Fleeing();
|
||||||
|
|
||||||
properties.add(Property.DEMONIC);
|
properties.add(Property.DEMONIC);
|
||||||
@@ -178,6 +179,21 @@ public class Thief extends Mob {
|
|||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class Wandering extends Mob.Wandering {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean act(boolean enemyInFOV, boolean justAlerted) {
|
||||||
|
super.act(enemyInFOV, justAlerted);
|
||||||
|
|
||||||
|
//if an enemy is just noticed and the thief posses an item, run, don't fight.
|
||||||
|
if (state == HUNTING && item != null){
|
||||||
|
state = FLEEING;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class Fleeing extends Mob.Fleeing {
|
private class Fleeing extends Mob.Fleeing {
|
||||||
@Override
|
@Override
|
||||||
protected void nowhereToRun() {
|
protected void nowhereToRun() {
|
||||||
@@ -185,7 +201,7 @@ public class Thief extends Mob {
|
|||||||
if (enemySeen) {
|
if (enemySeen) {
|
||||||
sprite.showStatus(CharSprite.NEGATIVE, Messages.get(Mob.class, "rage"));
|
sprite.showStatus(CharSprite.NEGATIVE, Messages.get(Mob.class, "rage"));
|
||||||
state = HUNTING;
|
state = HUNTING;
|
||||||
} else {
|
} else if (item != null && !Dungeon.visible[pos]) {
|
||||||
|
|
||||||
int count = 32;
|
int count = 32;
|
||||||
int newPos;
|
int newPos;
|
||||||
@@ -209,6 +225,8 @@ public class Thief extends Mob {
|
|||||||
if (item != null) GLog.n( Messages.get(Thief.class, "escapes", item.name()));
|
if (item != null) GLog.n( Messages.get(Thief.class, "escapes", item.name()));
|
||||||
item = null;
|
item = null;
|
||||||
state = WANDERING;
|
state = WANDERING;
|
||||||
|
} else {
|
||||||
|
state = WANDERING;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
super.nowhereToRun();
|
super.nowhereToRun();
|
||||||
|
|||||||
Reference in New Issue
Block a user