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_awareness=well of awareness
|
||||
journal.notes$landmark.well_of_transmutation=well of transmutation
|
||||
journal.notes$landmark.alchemy=alchemy pot
|
||||
journal.notes$landmark.garden=garden
|
||||
journal.notes$landmark.statue=animated statue
|
||||
journal.notes$landmark.sacrificial_fire=sacrificial fire
|
||||
journal.notes$landmark.shop=shop
|
||||
journal.notes$landmark.ghost=sad ghost
|
||||
journal.notes$landmark.wandmaker=old wandmaker
|
||||
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
|
||||
@@ -39,6 +39,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Wraith;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||
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.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||
@@ -81,11 +82,15 @@ public class SacrificialFire extends Blob {
|
||||
}
|
||||
}
|
||||
|
||||
if (Dungeon.level.heroFOV[cell]
|
||||
&& Dungeon.level.mobCount() == 0
|
||||
&& bonusSpawns > 0) {
|
||||
if (Dungeon.level.spawnMob(4)) {
|
||||
bonusSpawns--;
|
||||
if (off[cell] > 0 && Dungeon.level.heroFOV[cell]) {
|
||||
|
||||
Notes.add( Notes.Landmark.SACRIFICIAL_FIRE);
|
||||
|
||||
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"));
|
||||
} else {
|
||||
fire.clear(firePos);
|
||||
Notes.remove(Notes.Landmark.SACRIFICIAL_FIRE);
|
||||
|
||||
for (int i : PathFinder.NEIGHBOURS9){
|
||||
CellEmitter.get(firePos+i).burst( SacrificialParticle.FACTORY, 20 );
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -116,7 +116,7 @@ public abstract class WellWater extends Blob {
|
||||
|
||||
public static void affectCell( int cell ) {
|
||||
|
||||
Class<?>[] waters = {WaterOfHealth.class, WaterOfAwareness.class, WaterOfTransmutation.class};
|
||||
Class<?>[] waters = {WaterOfHealth.class, WaterOfAwareness.class};
|
||||
|
||||
for (Class<?>waterClass : waters) {
|
||||
WellWater water = (WellWater)Dungeon.level.blobs.get( waterClass );
|
||||
|
||||
@@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Pushing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Notes;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.SpawnerSprite;
|
||||
@@ -89,6 +90,10 @@ public class DemonSpawner extends Mob {
|
||||
spawnRecorded = true;
|
||||
}
|
||||
|
||||
if (Dungeon.level.heroFOV[pos]){
|
||||
Notes.add( Notes.Landmark.DEMON_SPAWNER );
|
||||
}
|
||||
|
||||
spawnCooldown--;
|
||||
if (spawnCooldown <= 0){
|
||||
ArrayList<Integer> candidates = new ArrayList<>();
|
||||
@@ -137,6 +142,7 @@ public class DemonSpawner extends Mob {
|
||||
public void die(Object cause) {
|
||||
if (spawnRecorded){
|
||||
Statistics.spawnersAlive--;
|
||||
Notes.remove(Notes.Landmark.DEMON_SPAWNER);
|
||||
}
|
||||
GLog.h(Messages.get(this, "on_death"));
|
||||
super.die(cause);
|
||||
|
||||
@@ -66,16 +66,18 @@ public class Notes {
|
||||
public enum Landmark {
|
||||
WELL_OF_HEALTH,
|
||||
WELL_OF_AWARENESS,
|
||||
WELL_OF_TRANSMUTATION,
|
||||
ALCHEMY,
|
||||
GARDEN,
|
||||
STATUE,
|
||||
SACRIFICIAL_FIRE,
|
||||
SHOP,
|
||||
|
||||
GHOST,
|
||||
WANDMAKER,
|
||||
TROLL,
|
||||
IMP;
|
||||
IMP,
|
||||
|
||||
DEMON_SPAWNER;
|
||||
|
||||
public String desc() {
|
||||
return Messages.get(this, name());
|
||||
|
||||
Reference in New Issue
Block a user