v0.8.0: reskinned prison shamans as DM-100s

This commit is contained in:
Evan Debenham 2019-10-29 19:45:06 -04:00
parent 57ae9dd6df
commit c803537ecd
6 changed files with 38 additions and 31 deletions

View File

@ -72,23 +72,23 @@ public class Bestiary {
Thief.class, Thief.class,
Swarm.class)); Swarm.class));
case 7: case 7:
//3x skeleton, 1x thief, 1x shaman, 1x guard //3x skeleton, 1x thief, 1x DM-100, 1x guard
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class, return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, Skeleton.class,
Thief.class, Thief.class,
Shaman.class, DM100.class,
Guard.class)); Guard.class));
case 8: case 8:
//2x skeleton, 1x thief, 2x shaman, 2x guard, 1x necromancer //2x skeleton, 1x thief, 2x DM-100, 2x guard, 1x necromancer
return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class, return new ArrayList<>(Arrays.asList(Skeleton.class, Skeleton.class,
Thief.class, Thief.class,
Shaman.class, Shaman.class, DM100.class, DM100.class,
Guard.class, Guard.class, Guard.class, Guard.class,
Necromancer.class)); Necromancer.class));
case 9: case 10: case 9: case 10:
//1x skeleton, 1x thief, 2x shaman, 2x guard, 2x necromancer //1x skeleton, 1x thief, 2x DM-100, 2x guard, 2x necromancer
return new ArrayList<>(Arrays.asList(Skeleton.class, return new ArrayList<>(Arrays.asList(Skeleton.class,
Thief.class, Thief.class,
Shaman.class, Shaman.class, DM100.class, DM100.class,
Guard.class, Guard.class, Guard.class, Guard.class,
Necromancer.class, Necromancer.class)); Necromancer.class, Necromancer.class));
@ -109,14 +109,14 @@ public class Bestiary {
return new ArrayList<>(Arrays.asList( return new ArrayList<>(Arrays.asList(
Bat.class, Bat.class,
Brute.class, Brute.class, Brute.class, Brute.class, Brute.class, Brute.class,
Shaman.class, //DM100.class,
Spinner.class)); Spinner.class));
case 14: case 15: case 14: case 15:
//1x bat, 3x brute, 1x shaman, 4x spinner //1x bat, 3x brute, 1x shaman, 4x spinner
return new ArrayList<>(Arrays.asList( return new ArrayList<>(Arrays.asList(
Bat.class, Bat.class,
Brute.class, Brute.class, Brute.class, Brute.class, Brute.class, Brute.class,
Shaman.class, //DM100.class,
Spinner.class, Spinner.class, Spinner.class, Spinner.class)); Spinner.class, Spinner.class, Spinner.class, Spinner.class));
// City // City

View File

@ -28,18 +28,18 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ShamanSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.DM100Sprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Camera; import com.watabou.noosa.Camera;
import com.watabou.utils.Callback; import com.watabou.utils.Callback;
import com.watabou.utils.Random; import com.watabou.utils.Random;
public class Shaman extends Mob implements Callback { public class DM100 extends Mob implements Callback {
private static final float TIME_TO_ZAP = 1f; private static final float TIME_TO_ZAP = 1f;
{ {
spriteClass = ShamanSprite.class; spriteClass = DM100Sprite.class;
HP = HT = 18; HP = HT = 18;
defenseSkill = 8; defenseSkill = 8;
@ -51,6 +51,7 @@ public class Shaman extends Mob implements Callback {
lootChance = 0.33f; lootChance = 0.33f;
properties.add(Property.ELECTRIC); properties.add(Property.ELECTRIC);
properties.add(Property.INORGANIC);
} }
@Override @Override

View File

@ -25,7 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Shaman; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM100;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
@ -69,7 +69,7 @@ public class AntiMagic extends Armor.Glyph {
RESISTS.add( WandOfTransfusion.class ); RESISTS.add( WandOfTransfusion.class );
RESISTS.add( WandOfWarding.Ward.class ); RESISTS.add( WandOfWarding.Ward.class );
RESISTS.add( Shaman.LightningBolt.class ); RESISTS.add( DM100.LightningBolt.class );
RESISTS.add( Warlock.DarkBolt.class ); RESISTS.add( Warlock.DarkBolt.class );
RESISTS.add( Eye.DeathGaze.class ); RESISTS.add( Eye.DeathGaze.class );
RESISTS.add( Yog.BurningFist.DarkBolt.class ); RESISTS.add( Yog.BurningFist.DarkBolt.class );

View File

@ -34,7 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Shaman; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM100;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave; import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfBlastWave;
@ -98,7 +98,7 @@ public class RingOfElements extends Ring {
RESISTS.add( ToxicGas.class ); RESISTS.add( ToxicGas.class );
RESISTS.add( Electricity.class ); RESISTS.add( Electricity.class );
RESISTS.add( Shaman.LightningBolt.class ); RESISTS.add( DM100.LightningBolt.class );
RESISTS.add( Warlock.DarkBolt.class ); RESISTS.add( Warlock.DarkBolt.class );
RESISTS.add( Eye.DeathGaze.class ); RESISTS.add( Eye.DeathGaze.class );
RESISTS.add( Yog.BurningFist.DarkBolt.class ); RESISTS.add( Yog.BurningFist.DarkBolt.class );

View File

@ -24,35 +24,37 @@ package com.shatteredpixel.shatteredpixeldungeon.sprites;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Shaman; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.DM100;
import com.shatteredpixel.shatteredpixeldungeon.effects.Lightning; import com.shatteredpixel.shatteredpixeldungeon.effects.Lightning;
import com.watabou.noosa.TextureFilm; import com.watabou.noosa.TextureFilm;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
public class ShamanSprite extends MobSprite { //TODO currently just uses DM-300's sprite scaled to 60%
public class DM100Sprite extends MobSprite {
public ShamanSprite() { public DM100Sprite () {
super(); super();
texture( Assets.SHAMAN ); texture( Assets.DM300 );
TextureFilm frames = new TextureFilm( texture, 12, 15 ); TextureFilm frames = new TextureFilm( texture, 22, 20 );
idle = new Animation( 2, true ); idle = new Animation( 10, true );
idle.frames( frames, 0, 0, 0, 1, 0, 0, 1, 1 ); idle.frames( frames, 0, 1 );
run = new Animation( 12, true ); run = new Animation( 10, true );
run.frames( frames, 4, 5, 6, 7 ); run.frames( frames, 2, 3 );
attack = new Animation( 12, false ); attack = new Animation( 15, false );
attack.frames( frames, 2, 3, 0 ); attack.frames( frames, 4, 5, 6, 0 );
zap = attack.clone(); zap = attack.clone();
die = new Animation( 12, false ); die = new Animation( 20, false );
die.frames( frames, 8, 9, 10 ); die.frames( frames, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 0, 7, 8 );
play( idle ); play( idle );
scale.set( 0.6f );
} }
public void zap( int pos ) { public void zap( int pos ) {
@ -60,9 +62,9 @@ public class ShamanSprite extends MobSprite {
Char enemy = Actor.findChar(pos); Char enemy = Actor.findChar(pos);
if (enemy != null) { if (enemy != null) {
parent.add(new Lightning(center(), enemy.sprite.destinationCenter(), (Shaman) ch)); parent.add(new Lightning(center(), enemy.sprite.destinationCenter(), (DM100) ch));
} else { } else {
parent.add(new Lightning(center(), pos, (Shaman) ch)); parent.add(new Lightning(center(), pos, (DM100) ch));
} }
Sample.INSTANCE.play( Assets.SND_LIGHTNING ); Sample.INSTANCE.play( Assets.SND_LIGHTNING );

View File

@ -456,6 +456,10 @@ actors.mobs.causticslime.desc=This slime seems to have been tainted by the dark
actors.mobs.crab.name=sewer crab actors.mobs.crab.name=sewer crab
actors.mobs.crab.desc=These huge crabs are at the top of the food chain in the sewers. They are extremely fast and their thick carapace can withstand heavy blows. actors.mobs.crab.desc=These huge crabs are at the top of the food chain in the sewers. They are extremely fast and their thick carapace can withstand heavy blows.
actors.mobs.dm100.name=DM-100
actors.mobs.dm100.zap_kill=The lightning bolt killed you...
actors.mobs.dm100.desc=The DM-100 is an early model of dwarven 'defense machine' which was designed to protect dwarven miners in the caves below. Their electrical shocks proved too weak however, and so they were gifted to the human prison above. The warden initially deemed them too cruel to use, but as the prisoners became more unruly they became a necessity.
actors.mobs.dm300.name=DM-300 actors.mobs.dm300.name=DM-300
actors.mobs.dm300.notice=Unauthorised personnel detected. actors.mobs.dm300.notice=Unauthorised personnel detected.
actors.mobs.dm300.defeated=Mission failed. Shutting down. actors.mobs.dm300.defeated=Mission failed. Shutting down.
@ -606,7 +610,7 @@ actors.mobs.newtengu$fireability$fireblob.desc=Tengu has thrown a fine powder th
actors.mobs.newtengu$shockerability$shockerblob.desc=Electrical energy is building here, anything standing on this tile will be shocked next turn! actors.mobs.newtengu$shockerability$shockerblob.desc=Electrical energy is building here, anything standing on this tile will be shocked next turn!
actors.mobs.newtengu$shockerability$shockeritem.name=Shocker actors.mobs.newtengu$shockerability$shockeritem.name=Shocker
actors.mobs.newtengu$shockerability$shockeritem.cant_pickup=It's putting out too much electricity, you can't grab it! actors.mobs.newtengu$shockerability$shockeritem.cant_pickup=It's putting out too much electricity, you can't grab it!
actors.mobs.newtengu$shockerability$shockeritem.desc=Tengu has thrown a curious machine here, which seems to be made of robot parts. The machine is constantly arcing electricity around it, but it seems to be going in a predictable pattern.\n\nWith all the electricity arcing around it, there's no way you can pick this up. actors.mobs.newtengu$shockerability$shockeritem.desc=Tengu has thrown a curious machine here, which seems to be made of DM-100 parts. The machine is constantly arcing electricity around it, but it seems to be going in a predictable pattern.\n\nWith all the electricity arcing around it, there's no way you can pick this up.
actors.mobs.oldtengu.name=Tengu actors.mobs.oldtengu.name=Tengu
actors.mobs.oldtengu.notice_mine=You're mine, %s! actors.mobs.oldtengu.notice_mine=You're mine, %s!