V0.1.0 Partial Commit

changed package and application names to differentiate from main PD
release
This commit is contained in:
Evan Debenham
2014-08-03 14:46:22 -04:00
parent 65dd9c2dc0
commit aed303672a
474 changed files with 3468 additions and 3458 deletions
@@ -0,0 +1,237 @@
/*
* Pixel Dungeon
* Copyright (C) 2012-2014 Oleg Dolya
*
* 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.Journal;
import com.shatteredpixel.shatteredpixeldungeon.Journal.Feature;
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator.Category;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfMight;
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.ScrollOfUpgrade;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfWeaponUpgrade;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon.Enchantment;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.*;
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
public class WaterOfTransmutation extends WellWater {
@Override
protected Item affectItem( Item item ) {
if (item instanceof MeleeWeapon) {
return changeWeapon( (MeleeWeapon)item );
} else if (item instanceof Scroll) {
Journal.remove( Feature.WELL_OF_TRANSMUTATION );
return changeScroll( (Scroll)item );
} else if (item instanceof Potion) {
Journal.remove( Feature.WELL_OF_TRANSMUTATION );
return changePotion( (Potion)item );
} else if (item instanceof Ring) {
Journal.remove( Feature.WELL_OF_TRANSMUTATION );
return changeRing( (Ring)item );
} else if (item instanceof Wand) {
Journal.remove( Feature.WELL_OF_TRANSMUTATION );
return changeWand( (Wand)item );
} else if (item instanceof Plant.Seed) {
Journal.remove( Feature.WELL_OF_TRANSMUTATION );
return changeSeed( (Plant.Seed)item );
} else {
return null;
}
}
@Override
public void use( BlobEmitter emitter ) {
super.use( emitter );
emitter.start( Speck.factory( Speck.CHANGE ), 0.2f, 0 );
}
private MeleeWeapon changeWeapon( MeleeWeapon w ) {
MeleeWeapon n = null;
if (w instanceof Knuckles) {
n = new Dagger();
} else if (w instanceof Dagger) {
n = new Knuckles();
}
else if (w instanceof Spear) {
n = new Quarterstaff();
} else if (w instanceof Quarterstaff) {
n = new Spear();
}
else if (w instanceof Sword) {
n = new Mace();
} else if (w instanceof Mace) {
n = new Sword();
}
else if (w instanceof Longsword) {
n = new BattleAxe();
} else if (w instanceof BattleAxe) {
n = new Longsword();
}
else if (w instanceof Glaive) {
n = new WarHammer();
} else if (w instanceof WarHammer) {
n = new Glaive();
}
if (n != null) {
int level = w.level;
if (level > 0) {
n.upgrade( level );
} else if (level < 0) {
n.degrade( -level );
}
if (w.isEnchanted()) {
n.enchant( Enchantment.random() );
}
n.levelKnown = w.levelKnown;
n.cursedKnown = w.cursedKnown;
n.cursed = w.cursed;
Journal.remove( Feature.WELL_OF_TRANSMUTATION );
return n;
} else {
return null;
}
}
private Ring changeRing( Ring r ) {
Ring n;
do {
n = (Ring)Generator.random( Category.RING );
} while (n.getClass() == r.getClass());
n.level = 0;
int level = r.level;
if (level > 0) {
n.upgrade( level );
} else if (level < 0) {
n.degrade( -level );
}
n.levelKnown = r.levelKnown;
n.cursedKnown = r.cursedKnown;
n.cursed = r.cursed;
return n;
}
private Wand changeWand( Wand w ) {
Wand n;
do {
n = (Wand)Generator.random( Category.WAND );
} while (n.getClass() == w.getClass());
n.level = 0;
n.upgrade( w.level );
n.levelKnown = w.levelKnown;
n.cursedKnown = w.cursedKnown;
n.cursed = w.cursed;
return n;
}
private Plant.Seed changeSeed( Plant.Seed s ) {
Plant.Seed n;
do {
n = (Plant.Seed)Generator.random( Category.SEED );
} while (n.getClass() == s.getClass());
return n;
}
private Scroll changeScroll( Scroll s ) {
if (s instanceof ScrollOfUpgrade) {
return new ScrollOfWeaponUpgrade();
} else if (s instanceof ScrollOfWeaponUpgrade) {
return new ScrollOfUpgrade();
} else {
Scroll n;
do {
n = (Scroll)Generator.random( Category.SCROLL );
} while (n.getClass() == s.getClass());
return n;
}
}
private Potion changePotion( Potion p ) {
if (p instanceof PotionOfStrength) {
return new PotionOfMight();
} else if (p instanceof PotionOfMight) {
return new PotionOfStrength();
} else {
Potion n;
do {
n = (Potion)Generator.random( Category.POTION );
} while (n.getClass() == p.getClass());
return n;
}
}
@Override
public String tileDesc() {
return
"Power of change radiates from the water of this well. " +
"Throw an item into the well to turn it into something else.";
}
}