Mordekaiser

 avatar
unknown
javascript
2 years ago
2.7 kB
5
Indexable
function onAttack(event) {
    var damaged = event.getDamaged();

    if (!(damaged instanceof Java.type("org.bukkit.entity.Player"))) {
        return;
    }
     
    var player = event.getPlayer();
    var cooldownId = player.getName() + "-ultimate-mordekaiser";
    var timeUpPlayer = player.getName() + "-mordekaiser-player";
    var timeUpDamaged = damaged.getName() + "-mordekaiser-damaged";

    if (API.isOnCooldown(cooldownId)) {
        return;
    }

    var dbcPlayer = API.getDBCPlayer(player);
    
    if (dbcPlayer.getHealth() <= dbcPlayer.getMaxHealth() * .8) {
        var arr = ["&5¡Destruccion desencadenada!", "&5Abandona toda Esperanza...", "&5¡A través del portal oscuro!", "&5¡Se parte del crisol de la angustia!"]
        var frase = arr[Math.floor(Math.random() * arr.length)];

        coordenadas(player, damaged);
     
        API.message(player, frase);
        API.message(damaged, frase);
        
        API.executeCommand("warp " + "ReinoDeLosMuertos " + player.getName()); //executeCommand porque no funciona player.teleport en ubicaciones exactas
        API.executeCommand("warp " + "ReinoDeLosMuertos " + damaged.getName());

        effect(player, damaged, dbcPlayer);

        API.setCooldown(cooldownId, ability.getCooldown());
        API.setCooldown(timeUpPlayer, 30);
        API.setCooldown(timeUpDamaged, 30);
        
        API.runLater(function() {
            API.sound(player, "minecraft:mob.irongolem.death");
            API.sound(damaged, "minecraft:mob.irongolem.death");
        }, 20); 
    }
}

function coordenadas(player, damaged) {
    var locatePlayer = player.getLocation();
    var locateDamaged = damaged.getLocation();

    API.setTempData("locatePlayerMorde" + player.getName(), locatePlayer);
    API.setTempData("locateDamagedMorde" + damaged.getName(), locateDamaged);
}

function effect(player, damaged, dbcPlayer) { 
    dbcPlayer.addBonus(BonusType.MULTIPLY, 1, 30, Stat.WIL); 
    
    API.runLater(function() {
        var locatePlayer = API.getTempData("locatePlayerMorde" + player.getName());
        var locateDamaged = API.getTempData("locateDamagedMorde" + damaged.getName());

        dbcPlayer.removeBonus(BonusType.MULTIPLY);

        API.message(player, "&c¡Efectos del Reino de los Muertos retirados!");
        API.message(damaged, "&c¡Efectos del Reino de los Muertos retirados!");
        
        player.teleport(locatePlayer);
        damaged.teleport(locateDamaged);

        API.removeTempData("locatePlayerMorde" + player.getName());
        API.removeTempData("locateDamagedMorde" + damaged.getName());
    }, 600);  
}
Editor is loading...