From f8749368a4bc981366f3c7b6fcc4b2296343507f Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 17 Oct 2015 22:59:31 -0400 Subject: [PATCH] v0.3.2: fully implemented elemental embers quest --- assets/items.png | Bin 14776 -> 20937 bytes .../actors/mobs/NewbornElemental.java | 6 +- .../actors/mobs/npcs/Wandmaker.java | 3 +- .../items/quest/CeremonialCandle.java | 11 ++- .../items/quest/Embers.java | 56 ++++++++++++++ .../levels/RegularLevel.java | 2 +- .../levels/painters/EntrancePainter.java | 6 +- .../sprites/ItemSpriteSheet.java | 7 +- .../sprites/NewbornElementalSprite.java | 72 ++++++++++++++++++ 9 files changed, 153 insertions(+), 10 deletions(-) create mode 100644 src/com/shatteredpixel/shatteredpixeldungeon/items/quest/Embers.java create mode 100644 src/com/shatteredpixel/shatteredpixeldungeon/sprites/NewbornElementalSprite.java diff --git a/assets/items.png b/assets/items.png index 4e296d727259792d0802b7108f01d182a9970987..155c2edad9fcafd1a60d853a5f69cefd9e923f88 100644 GIT binary patch literal 20937 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 N4jn&OWa%06KL9>}g?j)1 diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewbornElemental.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewbornElemental.java index fcd22a8ef..45d34f468 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewbornElemental.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewbornElemental.java @@ -23,11 +23,15 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost; +import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers; +import com.shatteredpixel.shatteredpixeldungeon.sprites.NewbornElementalSprite; public class NewbornElemental extends Elemental { { name = "newborn fire elemental"; + spriteClass = NewbornElementalSprite.class; + HT = 65; HP = HT/2; //32 @@ -35,7 +39,7 @@ public class NewbornElemental extends Elemental { EXP = 4; - loot = null; //TODO Elemental embers + loot = new Embers(); lootChance = 1f; } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java index d054d2c11..2471fe7e6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Wandmaker.java @@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.quest.CeremonialCandle; +import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; @@ -160,7 +161,7 @@ public class Wandmaker extends NPC { item = Dungeon.hero.belongings.getItem(CorpseDust.class); break; case 2: - item = Dungeon.hero.belongings.getItem(CorpseDust.class); //TODO: elemental embers + item = Dungeon.hero.belongings.getItem(Embers.class); break; case 3: item = Dungeon.hero.belongings.getItem(Rotberry.Seed.class); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/CeremonialCandle.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/CeremonialCandle.java index 511be8aa6..581030fb3 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/CeremonialCandle.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/CeremonialCandle.java @@ -20,14 +20,18 @@ */ package com.shatteredpixel.shatteredpixeldungeon.items.quest; +import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.NewbornElemental; +import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; +import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; +import com.watabou.noosa.audio.Sample; public class CeremonialCandle extends Item { @@ -40,6 +44,7 @@ public class CeremonialCandle extends Item { image = ItemSpriteSheet.CANDLE; unique = true; + stackable = true; } @Override @@ -90,8 +95,10 @@ public class CeremonialCandle extends Item { elemental.state = elemental.HUNTING; GameScene.add(elemental, 1); - //TODO visuals - + for (int i : Level.NEIGHBOURS9){ + CellEmitter.get(ritualPos+i).burst(ElmoParticle.FACTORY, 10); + } + Sample.INSTANCE.play(Assets.SND_BURNING); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/Embers.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/Embers.java new file mode 100644 index 000000000..0b97bbcb5 --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/quest/Embers.java @@ -0,0 +1,56 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * Shattered Pixel Dungeon + * Copyright (C) 2014-2015 Evan Debenham + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +package com.shatteredpixel.shatteredpixeldungeon.items.quest; + +import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; + +public class Embers extends Item { + + { + name = "elemental embers"; + image = ItemSpriteSheet.EMBER; + + unique = true; + } + + @Override + public boolean isUpgradable() { + return false; + } + + @Override + public boolean isIdentified() { + return true; + } + + @Override + public String info() { + return + "ember"; //TODO + } + + @Override + public ItemSprite.Glowing glowing() { + return new ItemSprite.Glowing(0x660000, 3f); + } +} diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java index 9e1efc2a2..dfea24585 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java @@ -171,7 +171,7 @@ public abstract class RegularLevel extends Level { protected void placeSign(){ while (true) { int pos = roomEntrance.random(); - if (pos != entrance && traps.get(pos) == null) { + if (pos != entrance && traps.get(pos) == null && findMob(pos) == null) { map[pos] = Terrain.SIGN; break; } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/EntrancePainter.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/EntrancePainter.java index 68babb8b1..ea3448c6a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/EntrancePainter.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/EntrancePainter.java @@ -34,8 +34,10 @@ public class EntrancePainter extends Painter { for (Room.Door door : room.connected.values()) { door.set( Room.Door.Type.REGULAR ); } - - level.entrance = room.random( 1 ); + + do { + level.entrance = room.random(1); + } while (level.findMob(level.entrance) != null); set( level, level.entrance, Terrain.ENTRANCE ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index fe399a90a..9d4d306ac 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -225,9 +225,10 @@ public class ItemSpriteSheet { public static final int SKULL = ROW14+0; public static final int DUST = ROW14+1; public static final int CANDLE = ROW14+2; - public static final int PICKAXE = ROW14+3; - public static final int ORE = ROW14+4; - public static final int TOKEN = ROW14+5; + public static final int EMBER = ROW14+3; + public static final int PICKAXE = ROW14+4; + public static final int ORE = ROW14+5; + public static final int TOKEN = ROW14+6; //Row Fifteen: Containers/Bags public static final int VIAL = ROW15+0; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/NewbornElementalSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/NewbornElementalSprite.java new file mode 100644 index 000000000..6d90217c0 --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/NewbornElementalSprite.java @@ -0,0 +1,72 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * Shattered Pixel Dungeon + * Copyright (C) 2014-2015 Evan Debenham + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.watabou.noosa.MovieClip; +import com.watabou.noosa.TextureFilm; + +public class NewbornElementalSprite extends MobSprite{ + + public NewbornElementalSprite() { + super(); + + texture( Assets.ELEMENTAL ); + + int ofs = 22; + + TextureFilm frames = new TextureFilm( texture, 12, 14 ); + + idle = new MovieClip.Animation( 10, true ); + idle.frames( frames, ofs+0, ofs+1, ofs+2 ); + + run = new MovieClip.Animation( 12, true ); + run.frames( frames, ofs+0, ofs+1, ofs+3 ); + + attack = new MovieClip.Animation( 15, false ); + attack.frames( frames, ofs+4, ofs+5, ofs+6 ); + + die = new MovieClip.Animation( 15, false ); + die.frames( frames, ofs+7, ofs+8, ofs+9, ofs+10, ofs+11, ofs+12, ofs+13, ofs+12 ); + + play( idle ); + } + + @Override + public void link( Char ch ) { + super.link( ch ); + add( CharSprite.State.BURNING ); + } + + @Override + public void die() { + super.die(); + remove( CharSprite.State.BURNING ); + } + + @Override + public int blood() { + return 0xFFFF7D13; + } + +}