v0.6.4: enemies killed by chasms now award 50% exp

This commit is contained in:
Evan Debenham 2018-03-23 15:12:28 -04:00
parent 221d35f324
commit 0c4eaec8e0
4 changed files with 13 additions and 4 deletions

View File

@ -61,6 +61,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Shocki
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.ShockingDart; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.ShockingDart;
import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm;
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Door; import com.shatteredpixel.shatteredpixeldungeon.levels.features.Door;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
@ -334,7 +335,7 @@ public abstract class Char extends Actor {
public void die( Object src ) { public void die( Object src ) {
destroy(); destroy();
sprite.die(); if (src != Chasm.class) sprite.die();
} }
public boolean isAlive() { public boolean isAlive() {

View File

@ -48,6 +48,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.TimekeepersHourg
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring; import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfAccuracy;
import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfWealth; import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfWealth;
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@ -556,6 +557,12 @@ public abstract class Mob extends Char {
@Override @Override
public void die( Object cause ) { public void die( Object cause ) {
if (cause == Chasm.class){
//50% chance to round up, 50% to round down
if (EXP % 2 == 1) EXP += Random.Int(2);
EXP /= 2;
}
super.die( cause ); super.die( cause );
if (alignment == Alignment.ENEMY){ if (alignment == Alignment.ENEMY){

View File

@ -27,6 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
import com.shatteredpixel.shatteredpixeldungeon.levels.features.Chasm;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.SkeletonSprite;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@ -36,8 +37,6 @@ import com.watabou.utils.Random;
public class Skeleton extends Mob { public class Skeleton extends Mob {
private static final String TXT_HERO_KILLED = "You were killed by the explosion of bones...";
{ {
spriteClass = SkeletonSprite.class; spriteClass = SkeletonSprite.class;
@ -64,6 +63,8 @@ public class Skeleton extends Mob {
super.die( cause ); super.die( cause );
if (cause == Chasm.class) return;
boolean heroKilled = false; boolean heroKilled = false;
for (int i = 0; i < PathFinder.NEIGHBOURS8.length; i++) { for (int i = 0; i < PathFinder.NEIGHBOURS8.length; i++) {
Char ch = findChar( pos + PathFinder.NEIGHBOURS8[i] ); Char ch = findChar( pos + PathFinder.NEIGHBOURS8[i] );

View File

@ -114,7 +114,7 @@ public class Chasm {
} }
public static void mobFall( Mob mob ) { public static void mobFall( Mob mob ) {
mob.die( null ); mob.die( Chasm.class );
((MobSprite)mob.sprite).fall(); ((MobSprite)mob.sprite).fall();
} }