From b3fb41175cd619b8abd778b432b1e6d51a662ad2 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 28 Apr 2023 16:59:13 -0400 Subject: [PATCH] v2.1.0: added a new exotic enemy: phantom piranhas (some text missing) --- .../assets/messages/actors/actors.properties | 4 + .../assets/messages/items/items.properties | 3 + core/src/main/assets/sprites/items.png | Bin 20792 -> 52500 bytes core/src/main/assets/sprites/piranha.png | Bin 543 -> 9583 bytes .../actors/mobs/PhantomPiranha.java | 112 ++++++++++++++++++ .../actors/mobs/Piranha.java | 16 ++- .../items/artifacts/HornOfPlenty.java | 5 +- .../items/food/MeatPie.java | 2 +- .../items/food/PhantomMeat.java | 63 ++++++++++ .../shatteredpixeldungeon/levels/Level.java | 2 +- .../levels/rooms/special/PoolRoom.java | 2 +- .../levels/rooms/standard/AquariumRoom.java | 2 +- .../levels/traps/DistortionTrap.java | 2 +- .../sprites/ItemSpriteSheet.java | 2 + .../sprites/PhantomPiranhaSprite.java | 110 +++++++++++++++++ 15 files changed, 316 insertions(+), 9 deletions(-) create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/PhantomPiranha.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/PhantomMeat.java create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/PhantomPiranhaSprite.java diff --git a/core/src/main/assets/messages/actors/actors.properties b/core/src/main/assets/messages/actors/actors.properties index d618f8bc7..85b35bb1f 100644 --- a/core/src/main/assets/messages/actors/actors.properties +++ b/core/src/main/assets/messages/actors/actors.properties @@ -1197,6 +1197,10 @@ actors.mobs.monk.desc=These monks are fanatics, who have devoted themselves to p actors.mobs.monk$focus.name=focused actors.mobs.monk$focus.desc=This monk is perfectly honed in on their target, and seem to be anticipating their moves before they make them.\n\nWhile focused, the next physical attack made against this character is guaranteed to miss, no matter what circumstances there are. Parrying this attack will spend the monk's focus, and they will need to build it up again to parry another attack. Monks build focus more quickly while they are moving. +actors.mobs.phantompiranha.name=phantom piranha +actors.mobs.phantompiranha.teleport_away=The phantom piranha teleports away... +actors.mobs.phantompiranha.desc=TODO + actors.mobs.piranha.name=giant piranha actors.mobs.piranha.desc=These carnivorous fish are not natural inhabitants of underground pools. They were bred specifically to protect flooded treasure vaults. diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index d4e7ad3f1..57a3925a6 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -568,6 +568,9 @@ items.food.mysterymeat.stuffed=You are stuffed. items.food.mysterymeat.desc=Eat at your own risk! items.food.mysterymeat$placeholder.name=meat +items.food.phantommeat.name=phantom meat +items.food.phantommeat.desc=TODO + items.food.pasty.pasty=pasty items.food.pasty.pie=pumpkin pie items.food.pasty.cane=candy cane diff --git a/core/src/main/assets/sprites/items.png b/core/src/main/assets/sprites/items.png index c34b39568b3ea82035563c30ccbbee438f2576c8..432b0c92b48335b6252b70e98fe305150715a2ea 100644 GIT binary patch literal 52500 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

KVsm2 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 aBnbCTJ+N8Me*6`HpF{hPxmUObC;bPpAy^&& diff --git a/core/src/main/assets/sprites/piranha.png b/core/src/main/assets/sprites/piranha.png index ee7fe105f1fa69247768b4e735af4397569d7f3a..6ab0f16d70005c4b38f105643aa17d203614c256 100644 GIT binary patch literal 9583 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 delta 531 zcmV+u0_^?oN}mLf7k>~40{{R3&J9s}0000sP)t-s|Ns9VKzIND|6Nd09x-THfUX`( zgI92)Sc$6Y6t-4VQ!?>NP13G*=SRq!` zs)__`Q0&7EtOllDpkv}~+gb`V|AQ+hVEz7Q5{7YMZ5YS#b5C*VfOcy4L-9lF>gt_) zbFT+fh9Q@MKYt!b<0rg~@T@(jPU!s~dOOV4`k@{2DVay1O%h=kY{PliVGK@J95yfT zs6D0*=#Xx?h*&6d#x5`nw&CM-IDSva903%M18dKz6Piz!K0vz&fMKu={BN8XyiuUQSi``=hME#~xX*H2>5+*f>p-Od*kZ z_OC3FWsxOxzV`}n{}KT11-(NHXK@9;?7`0(fUN5=?>sBJa+FYUPx+fm{! + */ + +package com.shatteredpixel.shatteredpixeldungeon.actors.mobs; + +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; +import com.shatteredpixel.shatteredpixeldungeon.actors.Char; +import com.shatteredpixel.shatteredpixeldungeon.items.food.PhantomMeat; +import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTeleportation; +import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.PhantomPiranhaSprite; +import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; +import com.watabou.utils.PathFinder; +import com.watabou.utils.Random; + +import java.util.ArrayList; + +public class PhantomPiranha extends Piranha { + + { + spriteClass = PhantomPiranhaSprite.class; + + loot = PhantomMeat.class; + lootChance = 1f; + } + + @Override + public void damage(int dmg, Object src) { + Char dmgSource = null; + if (src instanceof Char) dmgSource = (Char)src; + if (src instanceof Wand) dmgSource = Dungeon.hero; + + if (dmgSource == null || !Dungeon.level.adjacent(pos, dmgSource.pos)){ + dmg = Math.round(dmg/2f); //halve damage taken if we are going to teleport + } + super.damage(dmg, src); + + if (isAlive()) { + if (dmgSource != null) { + if (!Dungeon.level.adjacent(pos, dmgSource.pos)) { + ArrayList candidates = new ArrayList<>(); + for (int i : PathFinder.NEIGHBOURS8) { + if (Dungeon.level.water[dmgSource.pos + i] && Actor.findChar(dmgSource.pos + i) == null) { + candidates.add(dmgSource.pos + i); + } + } + if (!candidates.isEmpty()) { + ScrollOfTeleportation.appear(this, Random.element(candidates)); + aggro(dmgSource); + } else { + teleportAway(); + } + } + } else { + teleportAway(); + } + } + } + + @Override + public int defenseProc(Char enemy, int damage) { + return super.defenseProc(enemy, damage); + } + + @Override + public void dieOnLand() { + teleportAway(); + } + + private void teleportAway(){ + + ArrayList inFOVCandidates = new ArrayList<>(); + ArrayList outFOVCandidates = new ArrayList<>(); + for (int i = 0; i < Dungeon.level.length(); i++){ + if (Dungeon.level.water[i] && Actor.findChar(i) == null){ + if (Dungeon.level.heroFOV[i]){ + inFOVCandidates.add(i); + } else { + outFOVCandidates.add(i); + } + } + } + + if (!outFOVCandidates.isEmpty()){ + ScrollOfTeleportation.appear(this, Random.element(outFOVCandidates)); + GLog.i(Messages.get(this, "teleport_away")); + } else if (!inFOVCandidates.isEmpty()){ + ScrollOfTeleportation.appear(this, Random.element(inFOVCandidates)); + } + + } +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java index eb1947dd1..8aafbbf0f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Piranha.java @@ -66,7 +66,7 @@ public class Piranha extends Mob { protected boolean act() { if (!Dungeon.level.water[pos]) { - die( null ); + dieOnLand(); return true; } else { return super.act(); @@ -99,7 +99,11 @@ public class Piranha extends Mob { } return super.surprisedBy(enemy, attacking); } - + + public void dieOnLand(){ + die( null ); + } + @Override public void die( Object cause ) { super.die( cause ); @@ -191,4 +195,12 @@ public class Piranha extends Mob { return super.act(enemyInFOV, justAlerted); } } + + public static Piranha random(){ + if (Random.Int(50) == 0){ + return new PhantomPiranha(); + } else { + return new Piranha(); + } + } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HornOfPlenty.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HornOfPlenty.java index fa1dd3d92..5c48458de 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HornOfPlenty.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/HornOfPlenty.java @@ -39,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.Blandfruit; import com.shatteredpixel.shatteredpixeldungeon.items.food.Food; import com.shatteredpixel.shatteredpixeldungeon.items.food.MeatPie; import com.shatteredpixel.shatteredpixeldungeon.items.food.Pasty; +import com.shatteredpixel.shatteredpixeldungeon.items.food.PhantomMeat; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfEnergy; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; @@ -217,8 +218,8 @@ public class HornOfPlenty extends Artifact { if (level() >= 10) return; storedFoodEnergy += food.energy; - //Pasties are worth two upgrades instead of 1.5, meat pies are worth 4 instead of 3! - if (food instanceof Pasty){ + //Pasties and phantom meat are worth two upgrades instead of 1.5, meat pies are worth 4 instead of 3! + if (food instanceof Pasty || food instanceof PhantomMeat){ storedFoodEnergy += Hunger.HUNGRY/2; } else if (food instanceof MeatPie){ storedFoodEnergy += Hunger.HUNGRY; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MeatPie.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MeatPie.java index 1fff06541..6f2c1e630 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MeatPie.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/MeatPie.java @@ -58,7 +58,7 @@ public class MeatPie extends Food { for (Item ingredient : ingredients){ if (ingredient.quantity() > 0) { - if (ingredient instanceof Pasty) { + if (ingredient instanceof Pasty || ingredient instanceof PhantomMeat) { pasty = true; } else if (ingredient.getClass() == Food.class) { ration = true; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/PhantomMeat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/PhantomMeat.java new file mode 100644 index 000000000..82fb669e0 --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/PhantomMeat.java @@ -0,0 +1,63 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * Shattered Pixel Dungeon + * Copyright (C) 2014-2023 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.food; + +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barkskin; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; + +public class PhantomMeat extends Food { + + { + image = ItemSpriteSheet.PHANTOM_MEAT; + energy = Hunger.STARVING; + } + + @Override + protected void satisfy(Hero hero) { + super.satisfy(hero); + effect(hero); + } + + public int value() { + return 30 * quantity; + } + + public static void effect(Hero hero){ + + Buff.affect( hero, Barkskin.class ).set( hero.HT / 4, 1 ); + Buff.affect( hero, Invisibility.class, Invisibility.DURATION ); + if (hero.HP < hero.HT) { + hero.HP = Math.min( hero.HP + hero.HT / 4, hero.HT ); + } + hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 ); + PotionOfHealing.cure(hero); + + } + + +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java index c874e32f1..36841c21d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/Level.java @@ -1081,7 +1081,7 @@ public abstract class Level implements Bundlable { } if (ch.isAlive() && ch instanceof Piranha && !water[ch.pos]){ - ch.die(null); + ((Piranha) ch).dieOnLand(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/PoolRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/PoolRoom.java index 94b67d66b..f9d171c1c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/PoolRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/special/PoolRoom.java @@ -90,7 +90,7 @@ public class PoolRoom extends SpecialRoom { level.addItemToSpawn( new PotionOfInvisibility() ); for (int i=0; i < NPIRANHAS; i++) { - Piranha piranha = new Piranha(); + Piranha piranha = Piranha.random(); do { piranha.pos = level.pointToCell(random()); } while (level.map[piranha.pos] != Terrain.WATER|| level.findMob( piranha.pos ) != null); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/AquariumRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/AquariumRoom.java index 9c2d5dc81..16b152a15 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/AquariumRoom.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/standard/AquariumRoom.java @@ -65,7 +65,7 @@ public class AquariumRoom extends StandardRoom { int numFish = (minDim - 4)/3; //1-3 fish, depending on room size for (int i=0; i < numFish; i++) { - Piranha piranha = new Piranha(); + Piranha piranha = Piranha.random(); do { piranha.pos = level.pointToCell(random(3)); } while (level.map[piranha.pos] != Terrain.WATER|| level.findMob( piranha.pos ) != null); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java index 0bd44665e..b599a9cc6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/DistortionTrap.java @@ -120,7 +120,7 @@ public class DistortionTrap extends Trap{ continue; //wraiths spawn themselves, no need to do more case 1: //yes it's intended that these are likely to die right away - mob = new Piranha(); + mob = Piranha.random(); break; case 2: mob = Mimic.spawnAt(point, new ArrayList<>()); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index e6d2a6687..70b4aae8a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -645,6 +645,7 @@ public class ItemSpriteSheet { public static final int BLANDFRUIT = FOOD+10; public static final int BLAND_CHUNKS= FOOD+11; public static final int BERRY = FOOD+12; + public static final int PHANTOM_MEAT= FOOD+13; static{ assignItemRect(MEAT, 15, 11); assignItemRect(STEAK, 15, 11); @@ -659,6 +660,7 @@ public class ItemSpriteSheet { assignItemRect(BLANDFRUIT, 9, 12); assignItemRect(BLAND_CHUNKS,14, 6); assignItemRect(BERRY, 9, 11); + assignItemRect(PHANTOM_MEAT,15, 11); } private static final int QUEST = xy(1, 29); //32 slots diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/PhantomPiranhaSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/PhantomPiranhaSprite.java new file mode 100644 index 000000000..48fbb45bb --- /dev/null +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/PhantomPiranhaSprite.java @@ -0,0 +1,110 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * Shattered Pixel Dungeon + * Copyright (C) 2014-2023 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.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.watabou.noosa.MovieClip; +import com.watabou.noosa.TextureFilm; +import com.watabou.noosa.particles.Emitter; + +public class PhantomPiranhaSprite extends MobSprite { + + private Emitter sparkles; + + public PhantomPiranhaSprite() { + super(); + + renderShadow = false; + perspectiveRaise = 0.2f; + + texture( Assets.Sprites.PIRANHA ); + + TextureFilm frames = new TextureFilm( texture, 12, 16 ); + + int c = 21; + + idle = new MovieClip.Animation( 8, true ); + idle.frames( frames, c+0, c+1, c+2, c+1 ); + + run = new MovieClip.Animation( 20, true ); + run.frames( frames, c+0, c+1, c+2, c+1 ); + + attack = new MovieClip.Animation( 20, false ); + attack.frames( frames, c+3, c+4, c+5, c+6, c+7, c+8, c+9, c+10, c+11 ); + + die = new MovieClip.Animation( 4, false ); + die.frames( frames, c+12, c+13, c+14 ); + + play( idle ); + } + + @Override + public void link(Char ch) { + super.link(ch); + renderShadow = false; + + if (sparkles == null) { + sparkles = emitter(); + sparkles.pour( Speck.factory( Speck.LIGHT ), 0.5f ); + } + } + + @Override + public void update() { + super.update(); + + if (sparkles != null) { + sparkles.visible = visible; + } + } + + @Override + public void die() { + super.die(); + + if (sparkles != null) { + sparkles.on = false; + } + } + + @Override + public void kill() { + super.kill(); + + if (sparkles != null) { + sparkles.on = false; + } + } + + @Override + public void onComplete( MovieClip.Animation anim ) { + super.onComplete( anim ); + + if (anim == attack) { + GameScene.ripple( ch.pos ); + } + } +} +