v0.8.0: decided on shaman stats and mild balance adjusts to prison enemies
This commit is contained in:
parent
8968beb8fa
commit
bc9cd6e926
|
@ -98,8 +98,9 @@ public class Dungeon {
|
|||
COOKING_HP,
|
||||
BLANDFRUIT_SEED,
|
||||
|
||||
//doesn't use Generator, so we have to enforce one armband drop here
|
||||
THIEVES_ARMBAND,
|
||||
//Other limited enemy drops
|
||||
THEIF_MISC,
|
||||
SHAMAN_WAND,
|
||||
|
||||
//containers
|
||||
DEW_VIAL,
|
||||
|
|
|
@ -38,8 +38,8 @@ public class Bandit extends Thief {
|
|||
{
|
||||
spriteClass = BanditSprite.class;
|
||||
|
||||
//1 in 50 chance to be a crazy bandit, equates to overall 1/100 chance.
|
||||
lootChance = 0.5f;
|
||||
//guaranteed first drop, then 1/3, 1/9, etc.
|
||||
lootChance = 1f;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -41,11 +41,11 @@ public class DM100 extends Mob implements Callback {
|
|||
{
|
||||
spriteClass = DM100Sprite.class;
|
||||
|
||||
HP = HT = 18;
|
||||
HP = HT = 20;
|
||||
defenseSkill = 8;
|
||||
|
||||
EXP = 6;
|
||||
maxLvl = 14;
|
||||
maxLvl = 13;
|
||||
|
||||
loot = Generator.Category.SCROLL;
|
||||
lootChance = 0.33f;
|
||||
|
@ -94,9 +94,6 @@ public class DM100 extends Mob implements Callback {
|
|||
|
||||
if (hit( this, enemy, true )) {
|
||||
int dmg = Random.NormalIntRange(3, 10);
|
||||
if (Dungeon.level.water[enemy.pos] && !enemy.flying) {
|
||||
dmg *= 1.5f;
|
||||
}
|
||||
enemy.damage( dmg, new LightningBolt() );
|
||||
|
||||
enemy.sprite.centerEmitter().burst( SparkParticle.FACTORY, 3 );
|
||||
|
|
|
@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hex;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vulnerable;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
|
||||
|
@ -35,33 +36,33 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ShamanSprite;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
//TODO decide on stats
|
||||
//TODO stats on these might be a bit weak
|
||||
public abstract class Shaman extends Mob {
|
||||
|
||||
{
|
||||
HP = HT = 18;
|
||||
defenseSkill = 8;
|
||||
HP = HT = 35;
|
||||
defenseSkill = 15;
|
||||
|
||||
EXP = 6;
|
||||
maxLvl = 14;
|
||||
EXP = 8;
|
||||
maxLvl = 16;
|
||||
|
||||
loot = Generator.Category.SCROLL;
|
||||
lootChance = 0.33f;
|
||||
loot = Generator.Category.WAND;
|
||||
lootChance = 0.03f; //initially, see rollToDropLoot
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageRoll() {
|
||||
return Random.NormalIntRange( 2, 8 );
|
||||
return Random.NormalIntRange( 5, 12 );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int attackSkill( Char target ) {
|
||||
return 11;
|
||||
return 18;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int drRoll() {
|
||||
return Random.NormalIntRange(0, 4);
|
||||
return Random.NormalIntRange(0, 6);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -69,6 +70,21 @@ public abstract class Shaman extends Mob {
|
|||
return new Ballistica( pos, enemy.pos, Ballistica.MAGIC_BOLT).collisionPos == enemy.pos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rollToDropLoot() {
|
||||
//each drop makes future drops 1/3 as likely
|
||||
// so loot chance looks like: 1/33, 1/100, 1/300, 1/900, etc.
|
||||
lootChance *= Math.pow(1/3f, Dungeon.LimitedDrops.SHAMAN_WAND.count);
|
||||
super.rollToDropLoot();
|
||||
super.rollToDropLoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Item createLoot() {
|
||||
Dungeon.LimitedDrops.SHAMAN_WAND.count++;
|
||||
return super.createLoot();
|
||||
}
|
||||
|
||||
protected boolean doAttack(Char enemy ) {
|
||||
|
||||
if (Dungeon.level.adjacent( pos, enemy.pos )) {
|
||||
|
@ -99,7 +115,7 @@ public abstract class Shaman extends Mob {
|
|||
debuff( enemy );
|
||||
}
|
||||
|
||||
int dmg = Random.Int( 0, 0 );
|
||||
int dmg = Random.NormalIntRange( 6, 15 );
|
||||
enemy.damage( dmg, new EarthenBolt() );
|
||||
|
||||
if (!enemy.isAlive() && enemy == Dungeon.hero) {
|
||||
|
|
|
@ -50,10 +50,10 @@ public class Thief extends Mob {
|
|||
defenseSkill = 12;
|
||||
|
||||
EXP = 5;
|
||||
maxLvl = 10;
|
||||
maxLvl = 11;
|
||||
|
||||
loot = Random.oneOf(Generator.Category.RING, Generator.Category.ARTIFACT);
|
||||
lootChance = 0.01f;
|
||||
lootChance = 0.03f; //initially, see rollToDropLoot
|
||||
|
||||
WANDERING = new Wandering();
|
||||
FLEEING = new Fleeing();
|
||||
|
@ -99,9 +99,18 @@ public class Thief extends Mob {
|
|||
if (item instanceof Honeypot.ShatteredPot) ((Honeypot.ShatteredPot)item).dropPot( this, pos );
|
||||
item = null;
|
||||
}
|
||||
//each drop makes future drops 1/3 as likely
|
||||
// so loot chance looks like: 1/33, 1/100, 1/300, 1/900, etc.
|
||||
lootChance *= Math.pow(1/3f, Dungeon.LimitedDrops.THEIF_MISC.count);
|
||||
super.rollToDropLoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Item createLoot() {
|
||||
Dungeon.LimitedDrops.THEIF_MISC.count++;
|
||||
return super.createLoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int attackSkill( Char target ) {
|
||||
return 12;
|
||||
|
|
Loading…
Reference in New Issue
Block a user