Search in sources :

Example 1 with Skill

use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.

the class SkillEventHandler method attackFlagS.

@SubscribeEvent(priority = EventPriority.LOWEST)
public static void attackFlagS(LivingAttackEvent e) {
    if (!e.getEntityLiving().isEffectiveAi())
        return;
    if (e.getSource().getEntity() instanceof LivingEntity) {
        final LivingEntity trueSource = (LivingEntity) e.getSource().getEntity();
        final ISkillCapability cap = CasterData.getCap(trueSource);
        for (Skill s : cap.getEquippedSkills()) {
            cap.getSkillData(s).ifPresent(d -> s.onProc(trueSource, e, d.getState(), d, e.getEntityLiving()));
        }
    }
// System.out.println("attack "+e.isCanceled());
}
Also used : LivingEntity(net.minecraft.entity.LivingEntity) Skill(jackiecrazy.wardance.skill.Skill) ISkillCapability(jackiecrazy.wardance.capability.skill.ISkillCapability) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 2 with Skill

use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.

the class SkillEventHandler method gainMightFlags.

@SubscribeEvent(priority = EventPriority.HIGHEST)
public static void gainMightFlags(GainMightEvent e) {
    if (!e.getEntityLiving().isEffectiveAi())
        return;
    LivingEntity attacker = e.getEntityLiving();
    final ISkillCapability cap = CasterData.getCap(e.getEntityLiving());
    for (Skill s : cap.getEquippedSkills()) {
        cap.getSkillData(s).ifPresent(d -> s.onProc(e.getEntityLiving(), e, d.getState(), d, null));
    }
// System.out.println("might "+e.isCanceled());
}
Also used : LivingEntity(net.minecraft.entity.LivingEntity) Skill(jackiecrazy.wardance.skill.Skill) ISkillCapability(jackiecrazy.wardance.capability.skill.ISkillCapability) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 3 with Skill

use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.

the class SkillEventHandler method attackFlags.

@SubscribeEvent(priority = EventPriority.HIGHEST)
public static void attackFlags(LivingAttackEvent e) {
    if (!e.getEntityLiving().isEffectiveAi())
        return;
    if (e.getSource().getEntity() instanceof LivingEntity) {
        final LivingEntity trueSource = (LivingEntity) e.getSource().getEntity();
        final ISkillCapability cap = CasterData.getCap(trueSource);
        for (Skill s : cap.getEquippedSkills()) {
            cap.getSkillData(s).ifPresent(d -> s.onProc(trueSource, e, d.getState(), d, e.getEntityLiving()));
        }
    }
// System.out.println("attack "+e.isCanceled());
}
Also used : LivingEntity(net.minecraft.entity.LivingEntity) Skill(jackiecrazy.wardance.skill.Skill) ISkillCapability(jackiecrazy.wardance.capability.skill.ISkillCapability) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 4 with Skill

use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.

the class SkillEventHandler method deathFlagS.

@SubscribeEvent(priority = EventPriority.LOWEST)
public static void deathFlagS(LivingDeathEvent e) {
    if (!e.getEntityLiving().isEffectiveAi())
        return;
    if (e.getSource().getEntity() instanceof LivingEntity) {
        LivingEntity attacker = (LivingEntity) e.getSource().getEntity();
        ISkillCapability isc = CasterData.getCap(attacker);
        for (Skill s : isc.getEquippedSkills()) {
            isc.getSkillData(s).ifPresent(d -> s.onProc(attacker, e, d.getState(), d, e.getEntityLiving()));
        }
    }
    ISkillCapability isc = CasterData.getCap(e.getEntityLiving());
    for (Skill s : isc.getEquippedSkills()) {
        isc.getSkillData(s).ifPresent(d -> s.onProc(e.getEntityLiving(), e, d.getState(), d, null));
    }
}
Also used : LivingEntity(net.minecraft.entity.LivingEntity) Skill(jackiecrazy.wardance.skill.Skill) ISkillCapability(jackiecrazy.wardance.capability.skill.ISkillCapability) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Example 5 with Skill

use of jackiecrazy.wardance.skill.Skill in project WarDance by Jackiecrazy.

the class SkillEventHandler method sleep.

@SubscribeEvent(priority = EventPriority.LOWEST)
public static void sleep(PlayerWakeUpEvent e) {
    boolean flag = !e.wakeImmediately() && (!e.updateWorld() || e.getPlayer().level.isDay());
    if ((flag || ResourceConfig.sleepingHealsDecay == ResourceConfig.ThirdOption.FORCED) && e.getEntityLiving().isEffectiveAi()) {
        if (ResourceConfig.sleepingHealsDecay != ResourceConfig.ThirdOption.FALSE) {
            final ICombatCapability cap = CombatData.getCap(e.getPlayer());
            float res = cap.getResolve() + 1;
            cap.addFatigue(-res * cap.getTrueMaxPosture() / 10);
            cap.addBurnout(-res * cap.getTrueMaxSpirit() / 10);
            cap.addWounding(-res * GeneralUtils.getMaxHealthBeforeWounding(e.getPlayer()) / 10);
            cap.setResolve(0);
        }
        ISkillCapability isc = CasterData.getCap(e.getEntityLiving());
        for (Skill s : isc.getEquippedSkills()) {
            if (s != null)
                isc.changeSkillState(s, Skill.STATE.INACTIVE);
        }
    }
}
Also used : ICombatCapability(jackiecrazy.wardance.capability.resources.ICombatCapability) Skill(jackiecrazy.wardance.skill.Skill) ISkillCapability(jackiecrazy.wardance.capability.skill.ISkillCapability) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Aggregations

Skill (jackiecrazy.wardance.skill.Skill)32 ISkillCapability (jackiecrazy.wardance.capability.skill.ISkillCapability)23 SubscribeEvent (net.minecraftforge.eventbus.api.SubscribeEvent)23 LivingEntity (net.minecraft.entity.LivingEntity)21 MatrixStack (com.mojang.blaze3d.matrix.MatrixStack)3 ICombatCapability (jackiecrazy.wardance.capability.resources.ICombatCapability)3 SkillData (jackiecrazy.wardance.skill.SkillData)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Minecraft (net.minecraft.client.Minecraft)3 PlayerEntity (net.minecraft.entity.player.PlayerEntity)3 ResourceLocation (net.minecraft.util.ResourceLocation)3 TranslationTextComponent (net.minecraft.util.text.TranslationTextComponent)3 RenderSystem (com.mojang.blaze3d.systems.RenderSystem)2 WarDance (jackiecrazy.wardance.WarDance)2 CasterData (jackiecrazy.wardance.capability.skill.CasterData)2 CombatChannel (jackiecrazy.wardance.networking.CombatChannel)2 UpdateSkillSelectionPacket (jackiecrazy.wardance.networking.UpdateSkillSelectionPacket)2 Screen (net.minecraft.client.gui.screen.Screen)2 Tessellator (net.minecraft.client.renderer.Tessellator)2