v1.3.0: adren., cleanse, and holy darts now have enemy effects as well
This commit is contained in:
@@ -1568,7 +1568,7 @@ items.weapon.melee.wornshortsword.desc=A quite short sword, worn down through he
|
||||
|
||||
###missile weapons
|
||||
items.weapon.missiles.darts.adrenalinedart.name=adrenaline dart
|
||||
items.weapon.missiles.darts.adrenalinedart.desc=These darts are tipped with a swiftthistle-based compound which will give their target a boost in speed. This boost affects both speed of movement and of attacking, though movement is improved more. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
items.weapon.missiles.darts.adrenalinedart.desc=These darts are tipped with a swiftthistle-based compound which will boost the movement and attack speed of allies, or briefly lower the movement speed of enemies. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
|
||||
items.weapon.missiles.darts.blindingdart.name=blinding dart
|
||||
items.weapon.missiles.darts.blindingdart.desc=These darts are tipped with a blindweed-based compound which will blind their target for a short time. They do not disorient however, so an enemy will still know where they last saw you.
|
||||
@@ -1577,7 +1577,7 @@ items.weapon.missiles.darts.chillingdart.name=chilling dart
|
||||
items.weapon.missiles.darts.chillingdart.desc=These darts are tipped with an icecap-based compound which will significantly chill their target.
|
||||
|
||||
items.weapon.missiles.darts.cleansingdart.name=cleansing dart
|
||||
items.weapon.missiles.darts.cleansingdart.desc=These darts are tipped with a dreamfoil-based compound which will temporarily make their target immune to all negative effects. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
items.weapon.missiles.darts.cleansingdart.desc=These darts are tipped with a dreamfoil-based compound which will temporarily make allies immune to all negative effects, or will cleanse positive effects from enemies. Enemies may even briefly forget that they are attacking or fleeing from you. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
|
||||
items.weapon.missiles.darts.dart.name=dart
|
||||
items.weapon.missiles.darts.dart.ac_tip=TIP
|
||||
@@ -1598,7 +1598,7 @@ items.weapon.missiles.darts.healingdart.name=healing dart
|
||||
items.weapon.missiles.darts.healingdart.desc=These darts are tipped with a sungrass-based compound which grants a burst of healing to their target. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
|
||||
items.weapon.missiles.darts.holydart.name=holy dart
|
||||
items.weapon.missiles.darts.holydart.desc=These darts are tipped with a starflower-based compound which grants a boost in power to their target. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
items.weapon.missiles.darts.holydart.desc=These darts are tipped with a starflower-based compound which infuses holy energy into their target. Allies and regular enemies will become blessed, but undead or demonic enemies will take heavy damage. The dart itself is still harmful to enemies, but will not harm allies.
|
||||
|
||||
items.weapon.missiles.darts.incendiarydart.name=incendiary dart
|
||||
items.weapon.missiles.darts.incendiarydart.desc=These darts are tipped with a firebloom-based compound which will burst into brilliant flames on impact.
|
||||
|
||||
@@ -24,6 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Adrenaline;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
||||
public class AdrenalineDart extends TippedDart {
|
||||
@@ -35,10 +36,11 @@ public class AdrenalineDart extends TippedDart {
|
||||
@Override
|
||||
public int proc(Char attacker, Char defender, int damage) {
|
||||
|
||||
Buff.prolong( defender, Adrenaline.class, 3*Adrenaline.DURATION);
|
||||
|
||||
if (attacker.alignment == defender.alignment){
|
||||
Buff.prolong( defender, Adrenaline.class, Adrenaline.DURATION);
|
||||
return 0;
|
||||
} else {
|
||||
Buff.prolong( defender, Cripple.class, Cripple.DURATION/2);
|
||||
}
|
||||
|
||||
return super.proc(attacker, defender, damage);
|
||||
|
||||
@@ -21,7 +21,12 @@
|
||||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ChampionEnemy;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FlavourBuff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.PotionOfCleansing;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
|
||||
@@ -34,10 +39,29 @@ public class CleansingDart extends TippedDart {
|
||||
@Override
|
||||
public int proc(Char attacker, final Char defender, int damage) {
|
||||
|
||||
PotionOfCleansing.cleanse(defender, PotionOfCleansing.Cleanse.DURATION*2f);
|
||||
|
||||
if (attacker.alignment == defender.alignment){
|
||||
PotionOfCleansing.cleanse(defender, PotionOfCleansing.Cleanse.DURATION*2f);
|
||||
return 0;
|
||||
} else {
|
||||
for (Buff b : defender.buffs()){
|
||||
if (!(b instanceof ChampionEnemy) && b.type == Buff.buffType.POSITIVE){
|
||||
b.detach();
|
||||
}
|
||||
}
|
||||
if (defender instanceof Mob) {
|
||||
//need to delay this so damage from the dart doesn't break wandering
|
||||
new FlavourBuff(){
|
||||
{actPriority = VFX_PRIO;}
|
||||
public boolean act() {
|
||||
if (((Mob) defender).state == ((Mob) defender).HUNTING || ((Mob) defender).state == ((Mob) defender).FLEEING){
|
||||
((Mob) defender).state = ((Mob) defender).WANDERING;
|
||||
}
|
||||
((Mob) defender).beckon(Dungeon.level.randomDestination(defender));
|
||||
defender.sprite.showLost();
|
||||
return super.act();
|
||||
}
|
||||
}.attachTo(defender);
|
||||
}
|
||||
}
|
||||
|
||||
return super.proc(attacker, defender, damage);
|
||||
|
||||
@@ -21,10 +21,15 @@
|
||||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bless;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.watabou.noosa.audio.Sample;
|
||||
import com.watabou.utils.Random;
|
||||
|
||||
public class HolyDart extends TippedDart {
|
||||
|
||||
@@ -35,11 +40,18 @@ public class HolyDart extends TippedDart {
|
||||
@Override
|
||||
public int proc(Char attacker, Char defender, int damage) {
|
||||
|
||||
Buff.affect(defender, Bless.class, Math.round(3.33f*Bless.DURATION));
|
||||
|
||||
if (attacker.alignment == defender.alignment){
|
||||
Buff.affect(defender, Bless.class, Math.round(Bless.DURATION));
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Char.hasProp(defender, Char.Property.UNDEAD) || Char.hasProp(defender, Char.Property.DEMONIC)){
|
||||
defender.sprite.emitter().start( ShadowParticle.UP, 0.05f, 10+buffedLvl() );
|
||||
Sample.INSTANCE.play(Assets.Sounds.BURNING);
|
||||
defender.damage(Random.NormalIntRange(10 + Dungeon.depth/3, 20 + Dungeon.depth/3), this);
|
||||
} else {
|
||||
Buff.affect(defender, Bless.class, Math.round(Bless.DURATION));
|
||||
}
|
||||
|
||||
return super.proc(attacker, defender, damage);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user