v1.4.0: added sac fire and demon spawners to the landmarks page
This commit is contained in:
@@ -50,12 +50,13 @@ journal.document.alchemy_guide.spells.body=Spells are contained in crystals and
|
|||||||
|
|
||||||
journal.notes$landmark.well_of_health=well of health
|
journal.notes$landmark.well_of_health=well of health
|
||||||
journal.notes$landmark.well_of_awareness=well of awareness
|
journal.notes$landmark.well_of_awareness=well of awareness
|
||||||
journal.notes$landmark.well_of_transmutation=well of transmutation
|
|
||||||
journal.notes$landmark.alchemy=alchemy pot
|
journal.notes$landmark.alchemy=alchemy pot
|
||||||
journal.notes$landmark.garden=garden
|
journal.notes$landmark.garden=garden
|
||||||
journal.notes$landmark.statue=animated statue
|
journal.notes$landmark.statue=animated statue
|
||||||
|
journal.notes$landmark.sacrificial_fire=sacrificial fire
|
||||||
journal.notes$landmark.shop=shop
|
journal.notes$landmark.shop=shop
|
||||||
journal.notes$landmark.ghost=sad ghost
|
journal.notes$landmark.ghost=sad ghost
|
||||||
journal.notes$landmark.wandmaker=old wandmaker
|
journal.notes$landmark.wandmaker=old wandmaker
|
||||||
journal.notes$landmark.troll=troll blacksmith
|
journal.notes$landmark.troll=troll blacksmith
|
||||||
journal.notes$landmark.imp=ambitious imp
|
journal.notes$landmark.imp=ambitious imp
|
||||||
|
journal.notes$landmark.demon_spawner=demon spawner
|
||||||
+11
-5
@@ -39,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SacrificialParticle;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SacrificialParticle;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SacrificeRoom;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.SacrificeRoom;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
@@ -81,11 +82,15 @@ public class SacrificialFire extends Blob {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Dungeon.level.heroFOV[cell]
|
if (off[cell] > 0 && Dungeon.level.heroFOV[cell]) {
|
||||||
&& Dungeon.level.mobCount() == 0
|
|
||||||
&& bonusSpawns > 0) {
|
Notes.add( Notes.Landmark.SACRIFICIAL_FIRE);
|
||||||
if (Dungeon.level.spawnMob(4)) {
|
|
||||||
bonusSpawns--;
|
if (Dungeon.level.mobCount() == 0
|
||||||
|
&& bonusSpawns > 0) {
|
||||||
|
if (Dungeon.level.spawnMob(4)) {
|
||||||
|
bonusSpawns--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -173,6 +178,7 @@ public class SacrificialFire extends Blob {
|
|||||||
GLog.w( Messages.get(SacrificialFire.class, "worthy"));
|
GLog.w( Messages.get(SacrificialFire.class, "worthy"));
|
||||||
} else {
|
} else {
|
||||||
fire.clear(firePos);
|
fire.clear(firePos);
|
||||||
|
Notes.remove(Notes.Landmark.SACRIFICIAL_FIRE);
|
||||||
|
|
||||||
for (int i : PathFinder.NEIGHBOURS9){
|
for (int i : PathFinder.NEIGHBOURS9){
|
||||||
CellEmitter.get(firePos+i).burst( SacrificialParticle.FACTORY, 20 );
|
CellEmitter.get(firePos+i).burst( SacrificialParticle.FACTORY, 20 );
|
||||||
|
|||||||
-85
@@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
* Pixel Dungeon
|
|
||||||
* Copyright (C) 2012-2015 Oleg Dolya
|
|
||||||
*
|
|
||||||
* Shattered Pixel Dungeon
|
|
||||||
* Copyright (C) 2014-2022 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 <http://www.gnu.org/licenses/>
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.actors.blobs;
|
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Challenges;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Generator.Category;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.Artifact;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfStrength;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTransmutation;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfUpgrade;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes.Landmark;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
|
||||||
import com.watabou.utils.Random;
|
|
||||||
import com.watabou.utils.Reflection;
|
|
||||||
|
|
||||||
public class WaterOfTransmutation extends WellWater {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Item affectItem( Item item, int pos ) {
|
|
||||||
|
|
||||||
item = ScrollOfTransmutation.changeItem(item);
|
|
||||||
|
|
||||||
//incase a never-seen item pops out
|
|
||||||
if (item != null&& item.isIdentified()){
|
|
||||||
Catalog.setSeen(item.getClass());
|
|
||||||
}
|
|
||||||
|
|
||||||
return item;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean affectHero(Hero hero) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void use( BlobEmitter emitter ) {
|
|
||||||
super.use( emitter );
|
|
||||||
emitter.start( Speck.factory( Speck.CHANGE ), 0.2f, 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Landmark record() {
|
|
||||||
return Landmark.WELL_OF_TRANSMUTATION;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String tileDesc() {
|
|
||||||
return Messages.get(this, "desc");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -116,7 +116,7 @@ public abstract class WellWater extends Blob {
|
|||||||
|
|
||||||
public static void affectCell( int cell ) {
|
public static void affectCell( int cell ) {
|
||||||
|
|
||||||
Class<?>[] waters = {WaterOfHealth.class, WaterOfAwareness.class, WaterOfTransmutation.class};
|
Class<?>[] waters = {WaterOfHealth.class, WaterOfAwareness.class};
|
||||||
|
|
||||||
for (Class<?>waterClass : waters) {
|
for (Class<?>waterClass : waters) {
|
||||||
WellWater water = (WellWater)Dungeon.level.blobs.get( waterClass );
|
WellWater water = (WellWater)Dungeon.level.blobs.get( waterClass );
|
||||||
|
|||||||
+6
@@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpawnerSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpawnerSprite;
|
||||||
@@ -89,6 +90,10 @@ public class DemonSpawner extends Mob {
|
|||||||
spawnRecorded = true;
|
spawnRecorded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Dungeon.level.heroFOV[pos]){
|
||||||
|
Notes.add( Notes.Landmark.DEMON_SPAWNER );
|
||||||
|
}
|
||||||
|
|
||||||
spawnCooldown--;
|
spawnCooldown--;
|
||||||
if (spawnCooldown <= 0){
|
if (spawnCooldown <= 0){
|
||||||
ArrayList<Integer> candidates = new ArrayList<>();
|
ArrayList<Integer> candidates = new ArrayList<>();
|
||||||
@@ -137,6 +142,7 @@ public class DemonSpawner extends Mob {
|
|||||||
public void die(Object cause) {
|
public void die(Object cause) {
|
||||||
if (spawnRecorded){
|
if (spawnRecorded){
|
||||||
Statistics.spawnersAlive--;
|
Statistics.spawnersAlive--;
|
||||||
|
Notes.remove(Notes.Landmark.DEMON_SPAWNER);
|
||||||
}
|
}
|
||||||
GLog.h(Messages.get(this, "on_death"));
|
GLog.h(Messages.get(this, "on_death"));
|
||||||
super.die(cause);
|
super.die(cause);
|
||||||
|
|||||||
@@ -66,16 +66,18 @@ public class Notes {
|
|||||||
public enum Landmark {
|
public enum Landmark {
|
||||||
WELL_OF_HEALTH,
|
WELL_OF_HEALTH,
|
||||||
WELL_OF_AWARENESS,
|
WELL_OF_AWARENESS,
|
||||||
WELL_OF_TRANSMUTATION,
|
|
||||||
ALCHEMY,
|
ALCHEMY,
|
||||||
GARDEN,
|
GARDEN,
|
||||||
STATUE,
|
STATUE,
|
||||||
|
SACRIFICIAL_FIRE,
|
||||||
SHOP,
|
SHOP,
|
||||||
|
|
||||||
GHOST,
|
GHOST,
|
||||||
WANDMAKER,
|
WANDMAKER,
|
||||||
TROLL,
|
TROLL,
|
||||||
IMP;
|
IMP,
|
||||||
|
|
||||||
|
DEMON_SPAWNER;
|
||||||
|
|
||||||
public String desc() {
|
public String desc() {
|
||||||
return Messages.get(this, name());
|
return Messages.get(this, name());
|
||||||
|
|||||||
Reference in New Issue
Block a user