This is the steel titan script from Dementhium 614, and I'm just wondering how I can use the special, I can't seem to find out how. (Summoning special attack)
Code:
package org.dementhium.model.npc.impl.summoning;
import org.dementhium.event.Tickable;
import org.dementhium.model.Mob;
import org.dementhium.model.ProjectileManager;
import org.dementhium.model.World;
import org.dementhium.model.combat.CombatHit;
import org.dementhium.model.combat.Combat.FightType;
import org.dementhium.model.player.Player;
import org.dementhium.util.Misc;
/**
* @author Steve
*/
public class SteelTitan extends Familiar {
public SteelTitan(Player owner) {
super(7343, owner, true);
animate(8188);
}
@Override
public void specialAttack(final Mob victim) {
graphics(1449);
World.getWorld().submit(new Tickable(1) {
@Override
public void execute() {
victim.hit(Misc.random(getNpc().getDefinition().getMaximumMeleeHit()));
victim.hit(Misc.random(getNpc().getDefinition().getMaximumMeleeHit()));
victim.hit(Misc.random(getNpc().getDefinition().getMaximumMeleeHit()));
victim.hit(Misc.random(getNpc().getDefinition().getMaximumMeleeHit()));
getCombatState().setAttackDelay(8);
}
});
}
@Override
public CombatHit getHit(Mob mob, final Mob victim) {
if (canAttackPlayer(mob, victim)) {
getCombatState().setAttackDelay(8);
int randomAttack = r.nextInt(2);
switch (randomAttack) {
case 0: //Melee
animate(8183);
int meleeDamage = Misc.random(getNpc().getDefinition().getMaximumMeleeHit() * 10);
if (victim.isPlayer()) {
if (victim.getPlayer().getPrayer().usingCorrispondingPrayer(FightType.MELEE)) {
meleeDamage = 0;
}
}
victim.hit(meleeDamage);
break;
case 1: //Mage
animate(8190);
ProjectileManager.sendDelayedProjectile(this, victim, 1445, 190, 140, false);
int mageDamage = Misc.random((getNpc().getDefinition().getMaximumMeleeHit() + 20) * 10);
if (victim.isPlayer()) {
if (victim.getPlayer().getPrayer().usingCorrispondingPrayer(FightType.MAGIC)) {
mageDamage = 0;
}
}
final int finalMageDamage = mageDamage;
World.getWorld().submit(new Tickable(2) {
@Override
public void execute() {
victim.hit(finalMageDamage);
this.stop();
}
});
break;
case 2: //Range
animate(8190);
int rangeDamage = Misc.random(getNpc().getDefinition().getMaximumMeleeHit() * 10);
ProjectileManager.sendDelayedProjectile(this, victim, 1445, 190, 140, false);
if (victim.isPlayer()) {
if (victim.getPlayer().getPrayer().usingCorrispondingPrayer(FightType.RANGE)) {
rangeDamage = 0;
}
}
final int finalRangeDamage = rangeDamage;
World.getWorld().submit(new Tickable(2) {
@Override
public void execute() {
victim.hit(finalRangeDamage);
this.stop();
}
});
break;
}
}
return null;
}
}