mirror of
https://gitlab.com/phoenix-dvpmt/mmocore.git
synced 2025-02-16 13:41:40 +01:00
Made CastableSkill.getModifier() take MMOPlayerData to enable it to check player buffs.
This commit is contained in:
parent
d19da5f1cc
commit
b2982a9ffb
@ -185,7 +185,7 @@ public class PlayerClass extends PostLoadObject implements ExperienceObject {
|
||||
if (config.contains("skills." + key))
|
||||
skills.put(key, new ClassSkill(registered, config.getConfigurationSection("skills." + key)));
|
||||
else
|
||||
skills.put(key, new ClassSkill(registered, 1, 1));
|
||||
skills.put(key, new ClassSkill(registered, 1, 1,false));
|
||||
}
|
||||
|
||||
castParticle = config.contains("cast-particle") ? new CastingParticle(config.getConfigurationSection("cast-particle")) : null;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.Indyuce.mmocore.skill;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.comp.flags.CustomFlag;
|
||||
import io.lumine.mythic.lib.player.cooldown.CooldownInfo;
|
||||
import io.lumine.mythic.lib.skill.Skill;
|
||||
@ -49,13 +50,13 @@ public class CastableSkill extends Skill {
|
||||
}
|
||||
|
||||
// Mana cost
|
||||
if (playerData.getMana() < getModifier("mana")) {
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("casting.no-mana", "mana-required",MythicLib.plugin.getMMOConfig().decimal.format((getModifier("mana")-playerData.getMana())),"mana", playerData.getProfess().getManaDisplay().getName()).send(playerData.getPlayer());
|
||||
if (playerData.getMana() < getModifier("mana",playerData.getMMOPlayerData())) {
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("casting.no-mana", "mana-required",MythicLib.plugin.getMMOConfig().decimal.format((getModifier("mana",playerData.getMMOPlayerData())-playerData.getMana())),"mana", playerData.getProfess().getManaDisplay().getName()).send(playerData.getPlayer());
|
||||
return false;
|
||||
}
|
||||
|
||||
// Stamina cost
|
||||
if (playerData.getStamina() < getModifier("stamina")) {
|
||||
if (playerData.getStamina() < getModifier("stamina",skillMeta.getCaster().getData())) {
|
||||
if (loud) MMOCore.plugin.configManager.getSimpleMessage("casting.no-stamina").send(playerData.getPlayer());
|
||||
return false;
|
||||
}
|
||||
@ -76,11 +77,11 @@ public class CastableSkill extends Skill {
|
||||
|
||||
// Cooldown
|
||||
double flatCooldownReduction = Math.max(0, Math.min(1, skillMeta.getCaster().getStat("COOLDOWN_REDUCTION") / 100));
|
||||
CooldownInfo cooldownHandler = skillMeta.getCaster().getData().getCooldownMap().applyCooldown(this, getModifier("cooldown"));
|
||||
CooldownInfo cooldownHandler = skillMeta.getCaster().getData().getCooldownMap().applyCooldown(this, getModifier("cooldown",casterData.getMMOPlayerData()));
|
||||
cooldownHandler.reduceInitialCooldown(flatCooldownReduction);
|
||||
|
||||
casterData.giveMana(-getModifier("mana"), PlayerResourceUpdateEvent.UpdateReason.SKILL_COST);
|
||||
casterData.giveStamina(-getModifier("stamina"), PlayerResourceUpdateEvent.UpdateReason.SKILL_COST);
|
||||
casterData.giveMana(-getModifier("mana",skillMeta.getCaster().getData()), PlayerResourceUpdateEvent.UpdateReason.SKILL_COST);
|
||||
casterData.giveStamina(-getModifier("stamina",casterData.getMMOPlayerData()), PlayerResourceUpdateEvent.UpdateReason.SKILL_COST);
|
||||
}
|
||||
|
||||
if (!getTrigger().isPassive())
|
||||
@ -93,7 +94,8 @@ public class CastableSkill extends Skill {
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getModifier(String mod) {
|
||||
return skill.getModifier(mod, skillLevel);
|
||||
public double getModifier(String mod, MMOPlayerData playerData) {
|
||||
return playerData.getSkillBuffMap().getSkillInstance(getHandler().getId())
|
||||
.getSkillModifier(mod).getTotal(skill.getModifier(mod, skillLevel));
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ import io.lumine.mythic.lib.skill.SkillMetadata;
|
||||
import io.lumine.mythic.lib.skill.handler.SkillHandler;
|
||||
import io.lumine.mythic.lib.skill.result.def.SimpleSkillResult;
|
||||
import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent;
|
||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -33,7 +34,7 @@ public class Neptune_Gift extends SkillHandler<SimpleSkillResult> implements Lis
|
||||
if (skill == null)
|
||||
return;
|
||||
|
||||
event.setAmount(event.getAmount() * (1 + skill.getTriggeredSkill().getModifier("extra") / 100));
|
||||
event.setAmount(event.getAmount() * (1 + skill.getTriggeredSkill().getModifier("extra", PlayerData.get(event.getPlayer()).getMMOPlayerData()) / 100));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user