From 628e8fed7de64cd2d62fc4527b0b89651f4416fb Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 1 Jan 2021 18:11:07 -0500 Subject: [PATCH] v0.9.1b: addressed/removed numerous TODO/FIXME lines & some unused code --- .../main/java/com/watabou/noosa/Tilemap.java | 30 --- .../shatteredpixeldungeon/actors/Char.java | 2 +- .../actors/hero/Hero.java | 14 +- .../actors/mobs/Mob.java | 4 +- .../actors/mobs/NewDM300.java | 1 - .../actors/mobs/Shaman.java | 3 - .../items/bombs/RegrowthBomb.java | 1 - .../items/bombs/ShrapnelBomb.java | 1 - .../items/potions/brews/CausticBrew.java | 1 - .../elixirs/ElixirOfAquaticRejuvenation.java | 1 - .../potions/elixirs/ElixirOfDragonsBlood.java | 1 - .../potions/elixirs/ElixirOfIcyTouch.java | 1 - .../potions/elixirs/ElixirOfToxicEssence.java | 1 - .../items/scrolls/ScrollOfTransmutation.java | 4 +- .../items/weapon/melee/MagesStaff.java | 6 +- .../levels/NewCityBossLevel.java | 3 +- .../levels/OldPrisonBossLevel.java | 3 +- .../levels/features/Chasm.java | 3 +- .../levels/rooms/MazeRoom.java | 48 ---- .../levels/traps/PitfallTrap.java | 3 - .../mechanics/Ballistica.java | 2 + .../mechanics/ConeAOE.java | 2 +- .../scenes/WelcomeScene.java | 1 - .../sprites/GhoulSprite.java | 2 +- .../tiles/TerrainFeaturesTilemap.java | 2 - .../windows/WndDocument.java | 208 ------------------ 26 files changed, 18 insertions(+), 330 deletions(-) delete mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/MazeRoom.java delete mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java diff --git a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java index 46a91d756..faaedcf09 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java @@ -214,36 +214,6 @@ public class Tilemap extends Visual { topLeftUpdating = -1; updating.setEmpty(); } - - //FIXME temporarily disabled this optimization as it is suspected to cause crashes - /*Camera c = Camera.main; - //we treat the position of the tilemap as (0,0) here - camX = (int)(c.scroll.x/cellW - x/cellW); - camY = (int)(c.scroll.y/cellH - y/cellH); - camW = (int)Math.ceil(c.width/cellW); - camH = (int)Math.ceil(c.height/cellH); - - if (camX >= mapWidth - || camY >= mapHeight - || camW + camW <= 0 - || camH + camH <= 0) - return; - - //determines the top-left visible tile, the bottom-right one, and the buffer length - //between them, this culls a good number of none-visible tiles while keeping to 1 draw - topLeft = Math.max(camX, 0) - + Math.max(camY*mapWidth, 0); - - bottomRight = Math.min(camX+camW, mapWidth-1) - + Math.min((camY+camH)*mapWidth, (mapHeight-1)*mapWidth); - - if (topLeft >= size || bottomRight < 0) - length = 0; - else - length = bottomRight - topLeft + 1; - - if (length <= 0) - return;*/ NoosaScript script = script(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java index 3e655dc6a..279bbd278 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java @@ -345,7 +345,7 @@ public abstract class Char extends Actor { String defense = enemy.defenseVerb(); enemy.sprite.showStatus( CharSprite.NEUTRAL, defense ); - //TODO enemy.defenseSound? currently miss plays for monks/crab even when the parry + //TODO enemy.defenseSound? currently miss plays for monks/crab even when they parry Sample.INSTANCE.play(Assets.Sounds.MISS); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 1ef97127a..b58fa8e46 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -104,7 +104,6 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap; import com.shatteredpixel.shatteredpixeldungeon.mechanics.ShadowCaster; -import com.shatteredpixel.shatteredpixeldungeon.messages.Languages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.plants.Earthroot; import com.shatteredpixel.shatteredpixeldungeon.plants.Swiftthistle; @@ -763,7 +762,6 @@ public class Hero extends Char { } Alchemy alch = (Alchemy) Dungeon.level.blobs.get(Alchemy.class); - //TODO logic for a well having dried up? if (alch != null) { alch.alchPos = dst; AlchemyScene.setProvider( alch ); @@ -817,11 +815,8 @@ public class Hero extends Char { || item instanceof Key) { //Do Nothing } else { - //TODO temporary until 0.8.0a, when all languages will get this phrase - if (Messages.lang() == Languages.ENGLISH) { - GLog.newLine(); - GLog.n(Messages.get(this, "you_cant_have", item.name())); - } + GLog.newLine(); + GLog.n(Messages.get(this, "you_cant_have", item.name())); } heap.sprite.drop(); @@ -1317,10 +1312,7 @@ public class Hero extends Char { Buff.affect(this, Momentum.class).gainStack(); } - //FIXME this is a fairly sloppy fix for a crash involving pitfall traps. - //really there should be a way for traps to specify whether action should continue or - //not when they are pressed. - return InterlevelScene.mode != InterlevelScene.Mode.FALL; + return true; } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java index a671f7a1b..4e33f4b4c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Mob.java @@ -817,7 +817,7 @@ public abstract class Mob extends Char { if (alignment == Alignment.ENEMY && Dungeon.isChallenged(Challenges.SWARM_INTELLIGENCE)) { for (Mob mob : Dungeon.level.mobs) { if (mob.paralysed <= 0 - && Dungeon.level.distance(pos, mob.pos) <= 8 //TODO base on pathfinder distance instead? + && Dungeon.level.distance(pos, mob.pos) <= 8 && mob.state != mob.HUNTING) { mob.beckon(target); } @@ -865,7 +865,7 @@ public abstract class Mob extends Char { if (alignment == Alignment.ENEMY && Dungeon.isChallenged( Challenges.SWARM_INTELLIGENCE )) { for (Mob mob : Dungeon.level.mobs) { if (mob.paralysed <= 0 - && Dungeon.level.distance(pos, mob.pos) <= 8 //TODO base on pathfinder distance instead? + && Dungeon.level.distance(pos, mob.pos) <= 8 && mob.state != mob.HUNTING) { mob.beckon( target ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java index 3677ef00a..f04be9534 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewDM300.java @@ -76,7 +76,6 @@ import java.util.List; public class NewDM300 extends Mob { { - //TODO improved sprite spriteClass = DM300Sprite.class; HP = HT = 300; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java index c981b79f4..e26a829e7 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Shaman.java @@ -38,7 +38,6 @@ import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; import com.watabou.utils.Random; -//TODO stats on these might be a bit weak public abstract class Shaman extends Mob { { @@ -174,8 +173,6 @@ public abstract class Shaman extends Mob { } } - //TODO a rare variant that helps brutes? - public static Class random(){ float roll = Random.Float(); if (roll < 0.4f){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java index b4ad49744..6ab86b1a4 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java @@ -44,7 +44,6 @@ import java.util.ArrayList; public class RegrowthBomb extends Bomb { { - //TODO visuals image = ItemSpriteSheet.REGROWTH_BOMB; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java index 18301311a..6e6278245 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/ShrapnelBomb.java @@ -57,7 +57,6 @@ public class ShrapnelBomb extends Bomb { for (int i = 0; i < FOV.length; i++) { if (FOV[i]) { if (Dungeon.level.heroFOV[i] && !Dungeon.level.solid[i]) { - //TODO better vfx? CellEmitter.center( i ).burst( BlastParticle.FACTORY, 5 ); } Char ch = Actor.findChar(i); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java index 1b9d89341..e273c8119 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java @@ -38,7 +38,6 @@ import com.watabou.utils.PathFinder; public class CausticBrew extends Brew { { - //TODO finish visuals image = ItemSpriteSheet.BREW_CAUSTIC; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java index ce37bb8be..f6a5b6507 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java @@ -40,7 +40,6 @@ import com.watabou.utils.Random; public class ElixirOfAquaticRejuvenation extends Elixir { { - //TODO finish visuals image = ItemSpriteSheet.ELIXIR_AQUA; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java index 8049b3cd5..b1eb77b71 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java @@ -34,7 +34,6 @@ import com.watabou.noosa.audio.Sample; public class ElixirOfDragonsBlood extends Elixir { { - //TODO finish visuals image = ItemSpriteSheet.ELIXIR_DRAGON; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java index d15f82576..f34ebc1bc 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java @@ -32,7 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; public class ElixirOfIcyTouch extends Elixir { { - //TODO finish visuals image = ItemSpriteSheet.ELIXIR_ICY; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java index 100680413..304335f0c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java @@ -32,7 +32,6 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; public class ElixirOfToxicEssence extends Elixir { { - //TODO finish visuals image = ItemSpriteSheet.ELIXIR_TOXIC; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTransmutation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTransmutation.java index b36d4936a..d006f45f3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTransmutation.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/scrolls/ScrollOfTransmutation.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.EquipableItem; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Item; @@ -116,7 +117,8 @@ public class ScrollOfTransmutation extends InventoryScroll { if (result.isIdentified()){ Catalog.setSeen(result.getClass()); } - //TODO visuals + //TODO might be nice to have a spellsprite for this, like Enchanting + curUser.sprite.emitter().start(Speck.factory(Speck.CHANGE), 0.2f, 10); GLog.p( Messages.get(this, "morph") ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java index 6dc0283c2..9722d2fa3 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/melee/MagesStaff.java @@ -298,11 +298,7 @@ public class MagesStaff extends MeleeWeapon { public String info() { String info = super.info(); - if (wand == null){ - //FIXME this is removed because of journal stuff, and is generally unused. - //perhaps reword to fit in journal better - //info += "\n\n" + Messages.get(this, "no_wand"); - } else { + if (wand != null){ info += "\n\n" + Messages.get(this, "has_wand", Messages.get(wand, "name")) + " " + wand.statsDesc(); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCityBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCityBossLevel.java index 23bc986f5..35e0fafef 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCityBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/NewCityBossLevel.java @@ -359,7 +359,6 @@ public class NewCityBossLevel extends Level { return visuals; } - //TODO need to change text for some of these tiles public static class CustomGroundVisuals extends CustomTilemap { { @@ -469,7 +468,7 @@ public class NewCityBossLevel extends Level { //mid row of DK's throne }else if (map[i + 1] == Terrain.SIGN) { data[i] = 14 * 8 + 1; - data[++i] = 14 * 8 + 2; //TODO finalize throne visuals + data[++i] = 14 * 8 + 2; data[++i] = 14 * 8 + 3; //bottom row of DK's throne diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/OldPrisonBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/OldPrisonBossLevel.java index 2e68104ed..c50f8732d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/OldPrisonBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/OldPrisonBossLevel.java @@ -34,7 +34,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.HeavyBoomerang; -import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.MazeRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.Room; import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.standard.EmptyRoom; import com.shatteredpixel.shatteredpixeldungeon.levels.traps.GrippingTrap; @@ -352,7 +351,7 @@ public class OldPrisonBossLevel extends Level { TargetHealthIndicator.instance.target(null); tengu.sprite.kill(); - Room maze = new MazeRoom(); + Room maze = new EmptyRoom(); maze.set(10, 1, 31, 29); maze.connected.put(null, new Room.Door(10, 2)); maze.connected.put(maze, new Room.Door(20, 29)); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java index 4292f0a72..fa4fb77ab 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/features/Chasm.java @@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; +import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourglass; import com.shatteredpixel.shatteredpixeldungeon.items.spells.FeatherFall; import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel; @@ -106,7 +107,7 @@ public class Chasm { FeatherFall.FeatherBuff b = hero.buff(FeatherFall.FeatherBuff.class); if (b != null){ - //TODO visuals + hero.sprite.emitter().burst( Speck.factory( Speck.JET ), 20); b.detach(); return; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/MazeRoom.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/MazeRoom.java deleted file mode 100644 index b695e2594..000000000 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/rooms/MazeRoom.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Pixel Dungeon - * Copyright (C) 2012-2015 Oleg Dolya - * - * Shattered Pixel Dungeon - * Copyright (C) 2014-2021 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.levels.rooms; - -import com.shatteredpixel.shatteredpixeldungeon.levels.Level; -import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; -import com.shatteredpixel.shatteredpixeldungeon.levels.features.Maze; -import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter; - -//TODO figure out where this should go, tunnel room type perhaps? -public class MazeRoom extends Room { - - public void paint( Level level ) { - Painter.fill(level, this, 1, Terrain.EMPTY); - - //true = space, false = wall - Maze.allowDiagonals = false; - boolean[][] maze = Maze.generate(this); - - Painter.fill(level, this, 1, Terrain.EMPTY); - for (int x = 0; x < maze.length; x++) - for (int y = 0; y < maze[0].length; y++) { - if (maze[x][y] == Maze.FILLED) { - Painter.fill(level, x + left, y + top, 1, 1, Terrain.WALL); - } - } - } - -} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PitfallTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PitfallTrap.java index c00e72e47..8695b7c4b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PitfallTrap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/PitfallTrap.java @@ -137,7 +137,4 @@ public class PitfallTrap extends Trap { } } - - //TODO these used to become chasms when disarmed, but the functionality was problematic - //because it could block routes, perhaps some way to make this work elegantly? } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/Ballistica.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/Ballistica.java index 35f6150aa..1fa529932 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/Ballistica.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/Ballistica.java @@ -35,6 +35,7 @@ public class Ballistica { public ArrayList path = new ArrayList<>(); public Integer sourcePos = null; public Integer collisionPos = null; + public Integer collisionProperties = null; public Integer dist = 0; //parameters to specify the colliding cell @@ -52,6 +53,7 @@ public class Ballistica { public Ballistica( int from, int to, int params ){ sourcePos = from; + collisionProperties = params; build(from, to, (params & STOP_TARGET) > 0, (params & STOP_CHARS) > 0, diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/ConeAOE.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/ConeAOE.java index c6639d28d..0eef4066c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/ConeAOE.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/mechanics/ConeAOE.java @@ -39,7 +39,7 @@ public class ConeAOE { public HashSet cells = new HashSet<>(); public ConeAOE( Ballistica core, float degrees ){ - this( core, Float.POSITIVE_INFINITY, degrees, Ballistica.STOP_TARGET/* TODO */); + this( core, Float.POSITIVE_INFINITY, degrees, core.collisionProperties ); } public ConeAOE( Ballistica core, float maxDist, float degrees, int ballisticaParams ){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java index be4160696..6101fa437 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java @@ -161,7 +161,6 @@ public class WelcomeScene extends PixelScene { private void updateVersion(int previousVersion){ //update rankings, to update any data which may be outdated - //FIXME this is set to true temporarily as we want to run this no matter what, to ensure the v0.9.0a- badges bug is fixed if (previousVersion < LATEST_UPDATE){ int highestChalInRankings = 0; try { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java index 969625706..59b6f00bd 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/GhoulSprite.java @@ -62,7 +62,7 @@ public class GhoulSprite extends MobSprite { @Override public void move(int from, int to) { if (parent == null){ - //fixme this happens rarely, likely due to ghoul like link? + //fixme this happens rarely, likely due to ghoul life link? Game.reportException(new RuntimeException("ghoul sprite tried to move with null parent! ghoul HP: " + ch.HP)); return; } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/TerrainFeaturesTilemap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/TerrainFeaturesTilemap.java index 2624b01c4..33d21f2f6 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/TerrainFeaturesTilemap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/TerrainFeaturesTilemap.java @@ -33,7 +33,6 @@ import com.watabou.utils.PointF; import com.watabou.utils.RectF; import com.watabou.utils.SparseArray; -//TODO add in a proper set of vfx for plants growing/withering, grass burning, discovering traps public class TerrainFeaturesTilemap extends DungeonTilemap { private static TerrainFeaturesTilemap instance; @@ -70,7 +69,6 @@ public class TerrainFeaturesTilemap extends DungeonTilemap { if (tile == Terrain.HIGH_GRASS){ return 9 + 16*stage + (DungeonTileSheet.tileVariance[pos] >= 50 ? 1 : 0); } else if (tile == Terrain.FURROWED_GRASS){ - //TODO return 11 + 16*stage + (DungeonTileSheet.tileVariance[pos] >= 50 ? 1 : 0); } else if (tile == Terrain.GRASS) { return 13 + 16*stage + (DungeonTileSheet.tileVariance[pos] >= 50 ? 1 : 0); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java deleted file mode 100644 index bc25e6a1a..000000000 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Pixel Dungeon - * Copyright (C) 2012-2015 Oleg Dolya - * - * Shattered Pixel Dungeon - * Copyright (C) 2014-2021 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.windows; - -import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; -import com.shatteredpixel.shatteredpixeldungeon.journal.Document; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; -import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextBlock; -import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; -import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.BitmapText; -import com.watabou.noosa.ColorBlock; -import com.watabou.noosa.Image; -import com.watabou.noosa.ui.Component; - -import java.util.ArrayList; - -//FIXME lots of copy-pasta from WndJournal here. should generalize some of this. Primarily ListItem -public class WndDocument extends Window { - - private static final int WIDTH_P = 120; - private static final int HEIGHT_P = 160; - - private static final int WIDTH_L = 160; - private static final int HEIGHT_L = 128; - - private static final int ITEM_HEIGHT = 18; - - private ScrollPane list; - private ArrayList pages = new ArrayList<>(); - - public WndDocument( Document doc ){ - - int w = PixelScene.landscape() ? WIDTH_L : WIDTH_P; - int h = PixelScene.landscape() ? HEIGHT_L : HEIGHT_P; - - resize(w, h); - - list = new ScrollPane( new Component() ){ - @Override - public void onClick( float x, float y ) { - int size = pages.size(); - for (int i=0; i < size; i++) { - if (pages.get( i ).onClick( x, y )) { - break; - } - } - } - }; - add( list ); - - list.setRect( 0, 0, w, h); - - Component content = list.content(); - - float pos = 0; - - ColorBlock line = new ColorBlock( w, 1, 0xFF222222); - line.y = pos; - content.add(line); - - RenderedTextBlock title = PixelScene.renderTextBlock(doc.title(), 9); - title.hardlight(TITLE_COLOR); - title.maxWidth( w - 2 ); - title.setPos( (w - title.width())/2f, pos + 1 + ((ITEM_HEIGHT) - title.height())/2f); - PixelScene.align(title); - content.add(title); - - pos += Math.max(ITEM_HEIGHT, title.height()); - - for (String page : doc.pages()){ - docPage item = new docPage( doc, page ); - - item.setRect( 0, pos, w, ITEM_HEIGHT ); - content.add( item ); - - pos += item.height(); - pages.add(item); - } - - content.setSize( w, pos ); - list.setSize( list.width(), list.height() ); - - } - - private static class docPage extends ListItem { - - private boolean found = false; - - private Document doc; - private String page; - - public docPage(Document doc, String page ){ - super( new ItemSprite( doc.pageSprite(), null), - Messages.titleCase(doc.pageTitle(page)), -1); - - this.doc = doc; - - this.page = page; - found = doc.hasPage(page); - - if (!found) { - icon.hardlight( 0.5f, 0.5f, 0.5f); - label.text( Messages.titleCase(Messages.get( WndDocument.class, "missing" ))); - label.hardlight( 0x999999 ); - } - - } - - public boolean onClick( float x, float y ) { - if (inside( x, y ) && found) { - ShatteredPixelDungeon.scene().addToFront( new WndStory( doc.pageBody(page) )); - return true; - } else { - return false; - } - } - - } - - private static class ListItem extends Component { - - protected RenderedTextBlock label; - protected BitmapText depth; - protected ColorBlock line; - protected Image icon; - - public ListItem( Image icon, String text ) { - this(icon, text, -1); - } - - public ListItem( Image icon, String text, int d ) { - super(); - - this.icon.copy(icon); - - label.text( text ); - - if (d >= 0) { - depth.text(Integer.toString(d)); - depth.measure(); - - if (d == Dungeon.depth) { - label.hardlight(TITLE_COLOR); - depth.hardlight(TITLE_COLOR); - } - } - } - - @Override - protected void createChildren() { - label = PixelScene.renderTextBlock( 7 ); - add( label ); - - icon = new Image(); - add( icon ); - - depth = new BitmapText( PixelScene.pixelFont); - add( depth ); - - line = new ColorBlock( 1, 1, 0xFF222222); - add(line); - - } - - @Override - protected void layout() { - - icon.y = y + 1 + (height() - 1 - icon.height()) / 2f; - PixelScene.align(icon); - - depth.x = icon.x + (icon.width - depth.width()) / 2f; - depth.y = icon.y + (icon.height - depth.height()) / 2f + 1; - PixelScene.align(depth); - - line.size(width, 1); - line.x = 0; - line.y = y; - - label.maxWidth((int)(width - icon.width() - 8 - 1)); - label.setPos(icon.x + icon.width() + 1, y + 1 + (height() - label.height()) / 2f); - PixelScene.align(label); - } - } - -}