Merging Source v1.7.2: item changes

This commit is contained in:
Evan Debenham
2014-10-21 00:38:15 -04:00
parent 4a49763309
commit 13afc9df8d
32 changed files with 523 additions and 269 deletions
@@ -76,27 +76,41 @@ public class Boomerang extends MissileWeapon {
return super.enchant( ench );
}
@Override
public void proc( Char attacker, Char defender, int damage ) {
super.proc( attacker, defender, damage );
if (attacker instanceof Hero && ((Hero)attacker).usingRanged) {
circleBack( defender.pos, (Hero)attacker );
}
}
@Override
protected void miss( int cell ) {
circleBack( cell, curUser );
}
private void circleBack( int from, Hero owner ) {
if (!collect( curUser.belongings.backpack )) {
Dungeon.level.drop( this, owner.pos ).sprite.drop();
}
((MissileSprite)curUser.sprite.parent.recycle( MissileSprite.class )).
reset( from, curUser.pos, curItem, null );
}
@Override
public void proc( Char attacker, Char defender, int damage ) {
super.proc( attacker, defender, damage );
if (attacker instanceof Hero && ((Hero)attacker).rangedWeapon == this) {
circleBack( defender.pos, (Hero)attacker );
}
}
@Override
protected void miss( int cell ) {
circleBack( cell, curUser );
}
private void circleBack( int from, Hero owner ) {
((MissileSprite)curUser.sprite.parent.recycle( MissileSprite.class )).
reset( from, curUser.pos, curItem, null );
if (throwEquiped) {
owner.belongings.weapon = this;
owner.spend( -TIME_TO_EQUIP );
} else
if (!collect( curUser.belongings.backpack )) {
Dungeon.level.drop( this, owner.pos ).sprite.drop();
}
}
private boolean throwEquiped;
@Override
public void cast( Hero user, int dst ) {
throwEquiped = isEquipped( user );
super.cast( user, dst );
}
@Override
public String desc() {