v0.8.0: tweaked demon halls enemies
This commit is contained in:
parent
9326a3bdd4
commit
ffa2bb1a91
|
@ -23,10 +23,10 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
|||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfExperience;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.AcidicSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class Acidic extends Scorpio {
|
||||
|
||||
|
@ -34,20 +34,21 @@ public class Acidic extends Scorpio {
|
|||
spriteClass = AcidicSprite.class;
|
||||
|
||||
properties.add(Property.ACIDIC);
|
||||
|
||||
loot = new PotionOfExperience();
|
||||
lootChance = 1f;
|
||||
}
|
||||
@Override
|
||||
public int attackProc(Char enemy, int damage) {
|
||||
Buff.affect(enemy, Ooze.class).set( 20f );
|
||||
return super.attackProc(enemy, damage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int defenseProc( Char enemy, int damage ) {
|
||||
|
||||
int dmg = Random.IntRange( 0, damage );
|
||||
if (dmg > 0) {
|
||||
enemy.damage( dmg, this );
|
||||
if (!enemy.isAlive() && enemy == Dungeon.hero) {
|
||||
Dungeon.fail(getClass());
|
||||
GLog.n(Messages.capitalize(Messages.get(Char.class, "kill", name)));
|
||||
if (Dungeon.level.adjacent(pos, enemy.pos)){
|
||||
Buff.affect(enemy, Ooze.class).set( 20f );
|
||||
}
|
||||
}
|
||||
|
||||
return super.defenseProc( enemy, damage );
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PurpleParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Dewdrop;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfDisintegration;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Grim;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
|
@ -57,7 +59,7 @@ public class Eye extends Mob {
|
|||
HUNTING = new Hunting();
|
||||
|
||||
loot = new Dewdrop();
|
||||
lootChance = 0.5f;
|
||||
lootChance = 1f;
|
||||
|
||||
properties.add(Property.DEMONIC);
|
||||
}
|
||||
|
@ -197,6 +199,24 @@ public class Eye extends Mob {
|
|||
beamTarget = -1;
|
||||
}
|
||||
|
||||
//generates an average of 1 dew, 0.25 seeds, and 0.25 stones
|
||||
@Override
|
||||
protected Item createLoot() {
|
||||
Item loot;
|
||||
switch(Random.Int(4)){
|
||||
case 0: case 1: default:
|
||||
loot = new Dewdrop().quantity(2);
|
||||
break;
|
||||
case 3:
|
||||
loot = Generator.random(Generator.Category.SEED);
|
||||
break;
|
||||
case 4:
|
||||
loot = Generator.random(Generator.Category.STONE);
|
||||
break;
|
||||
}
|
||||
return loot;
|
||||
}
|
||||
|
||||
private static final String BEAM_TARGET = "beamTarget";
|
||||
private static final String BEAM_COOLDOWN = "beamCooldown";
|
||||
private static final String BEAM_CHARGED = "beamCharged";
|
||||
|
|
|
@ -26,12 +26,14 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ScorpioSprite;
|
||||
import com.watabou.utils.Random;
|
||||
import com.watabou.utils.Reflection;
|
||||
|
||||
public class Scorpio extends Mob {
|
||||
|
||||
|
@ -45,8 +47,8 @@ public class Scorpio extends Mob {
|
|||
EXP = 14;
|
||||
maxLvl = 25;
|
||||
|
||||
loot = new PotionOfHealing();
|
||||
lootChance = 0.2f;
|
||||
loot = Generator.Category.POTION;
|
||||
lootChance = 0.5f;
|
||||
|
||||
properties.add(Property.DEMONIC);
|
||||
}
|
||||
|
@ -93,13 +95,12 @@ public class Scorpio extends Mob {
|
|||
|
||||
@Override
|
||||
protected Item createLoot() {
|
||||
//(9-count) / 9 chance of getting healing, otherwise mystery meat
|
||||
if (Random.Float() < ((9f - Dungeon.LimitedDrops.SCORPIO_HP.count) / 9f)) {
|
||||
Dungeon.LimitedDrops.SCORPIO_HP.count++;
|
||||
return (Item)loot;
|
||||
} else {
|
||||
return new MysteryMeat();
|
||||
}
|
||||
Class<?extends Potion> loot;
|
||||
do{
|
||||
loot = (Class<? extends Potion>) Random.oneOf(Generator.Category.POTION.classes);
|
||||
} while (loot == PotionOfHealing.class);
|
||||
|
||||
return Reflection.newInstance(loot);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.actors.mobs;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.food.Pasty;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SeniorSprite;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
|
@ -29,6 +30,7 @@ public class Senior extends Monk {
|
|||
{
|
||||
spriteClass = SeniorSprite.class;
|
||||
|
||||
loot = new Pasty();
|
||||
lootChance = 1f;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,13 +31,17 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Light;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Sleep;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfLullaby;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfIdentify;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SuccubusSprite;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.PathFinder;
|
||||
import com.watabou.utils.Random;
|
||||
import com.watabou.utils.Reflection;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
@ -57,8 +61,8 @@ public class Succubus extends Mob {
|
|||
EXP = 12;
|
||||
maxLvl = 25;
|
||||
|
||||
loot = new ScrollOfLullaby();
|
||||
lootChance = 0.05f;
|
||||
loot = Generator.Category.SCROLL;
|
||||
lootChance = 0.33f;
|
||||
|
||||
properties.add(Property.DEMONIC);
|
||||
}
|
||||
|
@ -148,6 +152,16 @@ public class Succubus extends Mob {
|
|||
return Random.NormalIntRange(0, 10);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Item createLoot() {
|
||||
Class<?extends Scroll> loot;
|
||||
do{
|
||||
loot = (Class<? extends Scroll>) Random.oneOf(Generator.Category.SCROLL.classes);
|
||||
} while (loot == ScrollOfIdentify.class);
|
||||
|
||||
return Reflection.newInstance(loot);
|
||||
}
|
||||
|
||||
{
|
||||
immunities.add( Sleep.class );
|
||||
immunities.add( Charm.class );
|
||||
|
|
|
@ -443,6 +443,7 @@ actors.mobs.npcs.wandmaker.desc=This old yet hale gentleman wears a slightly con
|
|||
|
||||
###mobs
|
||||
actors.mobs.acidic.name=acidic scorpio
|
||||
actors.mobs.acidic.desc=These huge arachnid-like demonic creatures avoid close combat, preferring to fire crippling serrated spikes from long distances. This one appears to be dripping with corrosive ooze.
|
||||
|
||||
actors.mobs.albino.name=albino rat
|
||||
actors.mobs.albino.desc=This is a rare breed of marsupial rat, with pure white fur and jagged teeth.
|
||||
|
@ -579,7 +580,7 @@ actors.mobs.rotlasher.desc=The rot lasher is a part of a mature rotberry plant's
|
|||
actors.mobs.rotlasher$waiting.status=This %s is idle.
|
||||
|
||||
actors.mobs.scorpio.name=scorpio
|
||||
actors.mobs.scorpio.desc=These huge arachnid-like demonic creatures avoid close combat by all means, firing crippling serrated spikes from long distances.
|
||||
actors.mobs.scorpio.desc=These huge arachnid-like demonic creatures avoid close combat, preferring to fire crippling serrated spikes from long distances.
|
||||
|
||||
actors.mobs.senior.name=senior monk
|
||||
actors.mobs.senior.desc=These monks are fanatics, who have devoted themselves to protecting their king through physical might. So great is their devotion that they have totally surrendered their minds to their king, and now roam the dwarvern city like mindless zombies.\n\nThis monk has mastered the art of hang-to-hand combat, and is able to gain focus while moving much more quickly than regular monks. When they become focused, monks will parry the next physical attack used against them, even if it was otherwise garunteed to hit. Monk build focus more quickly while on the move, and more slowly when in direcy combat.
|
||||
|
@ -614,7 +615,7 @@ actors.mobs.statue.def_verb=blocked
|
|||
actors.mobs.statue.desc=You would think that it's just another one of this dungeon's ugly statues, but its red glowing eyes give it away.\n\nWhile the statue itself is made of stone, the _%s,_ it's wielding, looks real.
|
||||
|
||||
actors.mobs.succubus.name=succubus
|
||||
actors.mobs.succubus.desc=The succubi are demons that look like seductive (in a slightly gothic way) girls. Using its magic, the succubus can charm a hero, who will become unable to attack anything until the charm wears off. When succubi attack a charmed hero, they will steal their life essence.
|
||||
actors.mobs.succubus.desc=Succubi are shapeshifting demons that manipulate the minds of their prey. This one has taken the form of a pale gothic humanoid, perhaps to attract dwarven warlocks?\n\nWhen they attack, succubi may charm their target, making them unable to directly attack until the charm wears off. When succubi attack a charmed enemy, they will steal their life essence.
|
||||
|
||||
actors.mobs.swarm.name=swarm of flies
|
||||
actors.mobs.swarm.desc=The deadly swarm of flies buzzes angrily. Every non-magical attack will split it into two smaller but equally dangerous swarms.
|
||||
|
|
Loading…
Reference in New Issue
Block a user