v0.3.4: reworked how the sad ghost gives loot

This commit is contained in:
Evan Debenham 2016-02-07 19:34:25 -05:00 committed by Evan Debenham
parent a2d6a7bda5
commit 384b32bc12

View File

@ -27,17 +27,27 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.FetidRat; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.FetidRat;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GnollTrickster; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GnollTrickster;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GreatCrab; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.GreatCrab;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.LeatherArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.MailArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.PlateArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.ScaleArmor;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BattleAxe;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Glaive;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Longsword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Mace;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Quarterstaff;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Spear;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Sword;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.WarHammer;
import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel; import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@ -263,23 +273,41 @@ public class Ghost extends NPC {
processed = false; processed = false;
depth = Dungeon.depth; depth = Dungeon.depth;
do { //50%:tier2, 30%:tier3, 15%:tier4, 5%:tier5
weapon = Generator.randomWeapon(10); float itemTierRoll = Random.Float();
} while (weapon instanceof MissileWeapon); if (itemTierRoll < 0.5f){
armor = Generator.randomArmor(10); weapon = Random.Int(2) == 0 ? new Spear() : new Quarterstaff();
armor = new LeatherArmor();
} else if (itemTierRoll < 0.8f){
weapon = Random.Int(2) == 0 ? new Mace() : new Sword();
armor = new MailArmor();
} else if (itemTierRoll < 0.95f){
weapon = Random.Int(2) == 0 ? new BattleAxe() : new Longsword();
armor = new ScaleArmor();
} else {
weapon = Random.Int(2) == 0 ? new WarHammer() : new Glaive();
armor = new PlateArmor();
}
for (int i = 1; i <= 3; i++) { //50%:+0, 30%:+1, 15%:+2, 5%:+3
Item another; float itemLevelRoll = Random.Float();
do { int itemLevel;
another = Generator.randomWeapon(10+i); if (itemLevelRoll < 0.5f){
} while (another instanceof MissileWeapon); itemLevel = 0;
if (another.level() >= weapon.level()) { } else if (itemLevelRoll < 0.8f){
weapon = (Weapon) another; itemLevel = 1;
} } else if (itemLevelRoll < 0.95f){
another = Generator.randomArmor(10+i); itemLevel = 2;
if (another.level() >= armor.level()) { } else {
armor = (Armor) another; itemLevel = 3;
} }
weapon.upgrade(itemLevel);
armor.upgrade(itemLevel);
//10% to be enchanted
if (Random.Int(10) == 0){
weapon.enchant();
armor.inscribe();
} }
weapon.identify(); weapon.identify();