v2.0.0: added a weapon ability for the greataxe
This commit is contained in:
@@ -1528,6 +1528,8 @@ items.weapon.melee.gloves.desc=These studded gloves don't provide any real prote
|
|||||||
|
|
||||||
items.weapon.melee.greataxe.name=greataxe
|
items.weapon.melee.greataxe.name=greataxe
|
||||||
items.weapon.melee.greataxe.stats_desc=This weapon is incredibly heavy.
|
items.weapon.melee.greataxe.stats_desc=This weapon is incredibly heavy.
|
||||||
|
items.weapon.melee.greataxe.ability_name=execute
|
||||||
|
items.weapon.melee.greataxe.ability_desc=The Duelist can _execute_ an enemy with a greataxe. This devastating blow is guaranteed to hit and deals +50% damage, but takes twice as long as a regular attack.
|
||||||
items.weapon.melee.greataxe.desc=Meant to be wielded over the shoulder, this titanic axe is as powerful as it is heavy.
|
items.weapon.melee.greataxe.desc=Meant to be wielded over the shoulder, this titanic axe is as powerful as it is heavy.
|
||||||
|
|
||||||
items.weapon.melee.greatshield.name=greatshield
|
items.weapon.melee.greatshield.name=greatshield
|
||||||
|
|||||||
+42
@@ -22,7 +22,16 @@
|
|||||||
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
package com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
|
import com.watabou.noosa.audio.Sample;
|
||||||
|
import com.watabou.utils.Callback;
|
||||||
|
|
||||||
public class Greataxe extends MeleeWeapon {
|
public class Greataxe extends MeleeWeapon {
|
||||||
|
|
||||||
@@ -45,4 +54,37 @@ public class Greataxe extends MeleeWeapon {
|
|||||||
return STRReq(tier+1, lvl); //20 base strength req, up from 18
|
return STRReq(tier+1, lvl); //20 base strength req, up from 18
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String targetingPrompt() {
|
||||||
|
return Messages.get(this, "prompt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void duelistAbility(Hero hero, Integer target) {
|
||||||
|
if (target == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Char enemy = Actor.findChar(target);
|
||||||
|
if (enemy == null || enemy == hero || hero.isCharmedBy(enemy) || !Dungeon.level.heroFOV[target]) {
|
||||||
|
GLog.w(Messages.get(this, "ability_no_target"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hero.canAttack(enemy)){
|
||||||
|
GLog.w(Messages.get(this, "ability_bad_position"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
hero.sprite.attack(enemy.pos, new Callback() {
|
||||||
|
@Override
|
||||||
|
public void call() {
|
||||||
|
if (hero.attack(enemy, 1.5f, 0, Char.INFINITE_ACCURACY)){
|
||||||
|
Sample.INSTANCE.play(Assets.Sounds.HIT_STRONG);
|
||||||
|
}
|
||||||
|
onAbilityUsed(hero);
|
||||||
|
hero.spendAndNext(2*hero.attackDelay());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user