Search in sources :

Example 1 with IKHMob

use of uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob in project Kingdom-Keys-Re-Coded by Wehavecookies56.

the class EntityEvents method onLivingDrops.

@SubscribeEvent
public void onLivingDrops(LivingDropsEvent event) {
    for (int i = 0; i < entityDrops.size(); i++) {
        if (entityDrops.get(i).getDroppedFrom().isInstance(event.getEntity())) {
            addEntityDrop(event, entityDrops.get(i));
        }
    }
    // Remove any summoned keyblades or org weapons on death
    if (event.getEntity() instanceof EntityPlayer) {
        for (int i = 0; i < event.getDrops().size(); i++) {
            if (event.getDrops().get(i).getItem().getItem() instanceof ItemKeyblade && (event.getDrops().get(i).getItem().getItem() != ModItems.WoodenKeyblade && event.getDrops().get(i).getItem().getItem() != ModItems.WoodenStick)) {
                event.getDrops().remove(i);
                event.getEntity().getCapability(ModCapabilities.SUMMON_KEYBLADE, null).setIsKeybladeSummoned(EnumHand.MAIN_HAND, false);
                i = 0;
            }
            if (event.getDrops().get(i).getItem().getItem() == event.getEntity().getCapability(ModCapabilities.ORGANIZATION_XIII, null).currentWeapon()) {
                event.getDrops().remove(i);
                event.getEntity().getCapability(ModCapabilities.ORGANIZATION_XIII, null).setWeaponSummoned(((EntityPlayer) event.getEntity()).getActiveHand(), false);
                i = 0;
            }
        }
    }
    if (!MainConfig.entities.disableDrops) {
        if (event.getSource().getTrueSource() instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
            if (!ItemStack.areItemStacksEqual(player.getHeldItem(player.getActiveHand()), ItemStack.EMPTY)) {
                if (player.getHeldItem(player.getActiveHand()).getItem() instanceof ItemKeyblade) {
                    if (event.getEntity() instanceof EntityMob)
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("recipe"))
                            dropRecipe(event);
                }
            }
            if (!ItemStack.areItemStacksEqual(player.getHeldItem(EnumHand.OFF_HAND), ItemStack.EMPTY)) {
                if (player.getHeldItem(player.getActiveHand()).getItem() instanceof ItemKeyblade) {
                    if (event.getEntity() instanceof EntityMob)
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("recipe"))
                            dropRecipe(event);
                }
            }
            if (!ItemStack.areItemStacksEqual(player.getHeldItem(player.getActiveHand()), ItemStack.EMPTY)) {
                if (player.getHeldItem(player.getActiveHand()).getItem() instanceof ItemRealKeyblade) {
                    if (event.getEntity() instanceof EntityAnimal) {
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("heart"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.Heart), 2);
                    } else if (event.getEntity() instanceof EntityMob) {
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("darkheart")) {
                            if (!(event.getEntityLiving() instanceof IKHMob && ((IKHMob) event.getEntityLiving()).getType() == MobType.HEARTLESS_PUREBLOOD))
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.DarkHeart), 2);
                        }
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("spellorb") && event.getEntity() instanceof EntityWitch) {
                            int rand;
                            rand = Utils.randomWithRange(1, 30);
                            if (rand == 1)
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicFire), 1);
                            else if (rand == 5)
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicBlizzard), 1);
                            else if (rand == 9)
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicThunder), 1);
                            else if (rand == 13)
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicCure), 1);
                            else if (rand == 17) {
                            // event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicGravity), 1);
                            } else if (rand == 21)
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicAero), 1);
                            else if (rand == 25)
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicStop), 1);
                        }
                    } else if (event.getEntity() instanceof EntityAgeable)
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("pureheart"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.PureHeart), 2);
                    if (event.getEntity() instanceof EntityDragon || event.getEntity() instanceof EntityWither) {
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("kingdomhearts"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.KingdomHearts), 1);
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("recipe"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.Recipe), 1);
                    }
                }
            }
            if (!ItemStack.areItemStacksEqual(player.getHeldItem(EnumHand.OFF_HAND), ItemStack.EMPTY)) {
                if (player.getHeldItem(EnumHand.OFF_HAND).getItem() instanceof ItemRealKeyblade) {
                    if (event.getEntity() instanceof EntityAnimal)
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("heart"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.Heart), 2);
                        else if (event.getEntity() instanceof EntityMob) {
                            if (Arrays.asList(MainConfig.entities.dropsList).contains("darkheart"))
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.DarkHeart), 2);
                            if (Arrays.asList(MainConfig.entities.dropsList).contains("spellorb") && event.getEntity() instanceof EntityWitch) {
                                int rand;
                                rand = Utils.randomWithRange(1, 30);
                                if (rand == 1)
                                    event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicFire), 1);
                                else if (rand == 5)
                                    event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicBlizzard), 1);
                                else if (rand == 9)
                                    event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicThunder), 1);
                                else if (rand == 13)
                                    event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicCure), 1);
                                else if (rand == 17) {
                                // event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicGravity), 1);
                                } else if (rand == 21)
                                    event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicAero), 1);
                                else if (rand == 25)
                                    event.getEntityLiving().entityDropItem(new ItemStack(ModItems.LevelUpMagicStop), 1);
                            }
                        } else if (event.getEntity() instanceof EntityAgeable)
                            if (Arrays.asList(MainConfig.entities.dropsList).contains("pureheart"))
                                event.getEntityLiving().entityDropItem(new ItemStack(ModItems.PureHeart), 2);
                    if (event.getEntity() instanceof EntityDragon || event.getEntity() instanceof EntityWither) {
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("kingdomhearts"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.KingdomHearts), 1);
                        if (Arrays.asList(MainConfig.entities.dropsList).contains("recipe"))
                            event.getEntityLiving().entityDropItem(new ItemStack(ModItems.Recipe), 1);
                    }
                }
            }
            ItemStack munny = new ItemStack(ModItems.Munny, 1);
            munny.setTagCompound(new NBTTagCompound());
            ItemStack driveOrb = new ItemStack(ModItems.DriveOrb, 1);
            driveOrb.setTagCompound(new NBTTagCompound());
            ItemStack magicOrb = new ItemStack(ModItems.MagicOrb, 1);
            magicOrb.setTagCompound(new NBTTagCompound());
            ItemStack HPOrb = new ItemStack(ModItems.HpOrb, 1);
            if (event.getEntity() instanceof EntityAnimal) {
                munny.getTagCompound().setInteger("amount", Utils.randomWithRange(1, 20));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("munny"))
                    event.getEntityLiving().entityDropItem(munny, 1);
                driveOrb.getTagCompound().setInteger("amount", 1);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("dporb"))
                    event.getEntityLiving().entityDropItem(driveOrb, 1);
                magicOrb.getTagCompound().setInteger("amount", Utils.randomWithRange(2, 8));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("mporb"))
                    event.getEntityLiving().entityDropItem(magicOrb, 1);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("hporb"))
                    event.getEntityLiving().entityDropItem(HPOrb, 1);
            } else if (event.getEntity() instanceof EntityMob) {
                munny.getTagCompound().setInteger("amount", Utils.randomWithRange(5, 50));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("munny"))
                    event.getEntityLiving().entityDropItem(munny, 1);
                driveOrb.getTagCompound().setInteger("amount", 5);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("dporb"))
                    event.getEntityLiving().entityDropItem(driveOrb, 1);
                magicOrb.getTagCompound().setInteger("amount", Utils.randomWithRange(5, 15));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("mporb"))
                    event.getEntityLiving().entityDropItem(magicOrb, 1);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("hporb"))
                    event.getEntityLiving().entityDropItem(HPOrb, 1);
            } else if (event.getEntity() instanceof EntityAgeable) {
                munny.getTagCompound().setInteger("amount", Utils.randomWithRange(50, 100));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("munny"))
                    event.getEntityLiving().entityDropItem(munny, 1);
                driveOrb.getTagCompound().setInteger("amount", 5);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("dporb"))
                    event.getEntityLiving().entityDropItem(driveOrb, 1);
                magicOrb.getTagCompound().setInteger("amount", Utils.randomWithRange(10, 25));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("mporb"))
                    event.getEntityLiving().entityDropItem(magicOrb, 1);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("hporb"))
                    event.getEntityLiving().entityDropItem(HPOrb, 1);
            } else if (event.getEntity() instanceof EntityDragon || event.getEntity() instanceof EntityWither) {
                munny.getTagCompound().setInteger("amount", Utils.randomWithRange(500, 1000));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("munny"))
                    event.getEntityLiving().entityDropItem(munny, 1);
                driveOrb.getTagCompound().setInteger("amount", Utils.randomWithRange(200, 250));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("dporb"))
                    event.getEntityLiving().entityDropItem(driveOrb, 1);
                magicOrb.getTagCompound().setInteger("amount", Utils.randomWithRange(100, 140));
                if (Arrays.asList(MainConfig.entities.dropsList).contains("mporb"))
                    event.getEntityLiving().entityDropItem(magicOrb, 1);
                if (Arrays.asList(MainConfig.entities.dropsList).contains("hporb"))
                    event.getEntityLiving().entityDropItem(HPOrb, 1);
            }
        }
    }
}
Also used : EntityDragon(net.minecraft.entity.boss.EntityDragon) ItemRealKeyblade(uk.co.wehavecookies56.kk.common.item.base.ItemRealKeyblade) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) ItemKeyblade(uk.co.wehavecookies56.kk.common.item.base.ItemKeyblade) IKHMob(uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob) EntityMob(net.minecraft.entity.monster.EntityMob) EntityPlayer(net.minecraft.entity.player.EntityPlayer) EntityWither(net.minecraft.entity.boss.EntityWither) EntityAnimal(net.minecraft.entity.passive.EntityAnimal) ItemStack(net.minecraft.item.ItemStack) EntityWitch(net.minecraft.entity.monster.EntityWitch) EntityAgeable(net.minecraft.entity.EntityAgeable) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 2 with IKHMob

use of uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob in project Kingdom-Keys-Re-Coded by Wehavecookies56.

the class BaseEntityHeartless method onDeath.

@Override
public void onDeath(DamageSource cause) {
    super.onDeath(cause);
    if (this instanceof IKHMob) {
        if (((IKHMob) this).getType() == MobType.HEARTLESS_EMBLEM) {
            if (!world.isRemote) {
                EntityFlyingHeart heart = new EntityFlyingHeart(this.world);
                heart.setPosition(this.posX, this.posY + 1, this.posZ);
                world.spawnEntity(heart);
            }
        }
    }
}
Also used : EntityFlyingHeart(uk.co.wehavecookies56.kk.common.entity.EntityFlyingHeart)

Example 3 with IKHMob

use of uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob in project Kingdom-Keys-Re-Coded by Wehavecookies56.

the class EntityEvents method onHurt.

/* @SubscribeEvent
    public void onLivingUpdate (LivingEvent.LivingUpdateEvent event) {
        if (event.getEntityLiving() instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) event.getEntityLiving();

            if(player.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).getAttributeValue() == 0 && player.isAirBorne){
                player.motionX=0;
                player.motionY=0;
                player.motionZ=0;
            }
        }
    }*/
@SubscribeEvent
public void onHurt(LivingHurtEvent event) {
    if (event.getEntityLiving() instanceof EntityPlayer) {
        PlayerStatsCapability.IPlayerStats STATS = event.getEntity().getCapability(ModCapabilities.PLAYER_STATS, null);
        EntityPlayer player = (EntityPlayer) event.getEntityLiving();
        if (event.getAmount() - STATS.getDefense() <= 0)
            event.setAmount(1);
        else
            event.setAmount((float) (event.getAmount() - (STATS.getDefense() * 0.25)));
        if (event.getSource().getDamageType().equals("lightningBolt"))
            if (EntityThunder.summonLightning)
                event.setCanceled(true);
    }
    if (event.getSource().getTrueSource() instanceof EntityPlayer) {
        EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
        player.getCapability(ModCapabilities.DRIVE_STATE, null).addDP(1);
        PacketDispatcher.sendTo(new SyncDriveData(player.getCapability(ModCapabilities.DRIVE_STATE, null)), (EntityPlayerMP) player);
    }
    if (event.getEntityLiving() instanceof IKHMob) {
        EntityPlayer player = null;
        IKHMob khMob = (IKHMob) event.getEntityLiving();
        if (event.getSource().getImmediateSource() instanceof EntityPlayer) {
            player = (EntityPlayer) event.getSource().getImmediateSource();
        }
        if (player != null) {
            if (khMob.getType() == MobType.HEARTLESS_EMBLEM || khMob.getType() == MobType.HEARTLESS_PUREBLOOD || khMob.getType() == MobType.NOBODY) {
                // If the player has a real weapon in any slot
                if (!(player.getHeldItemMainhand().getItem() instanceof ItemKeyblade || player.getHeldItemMainhand().getItem() instanceof IOrgWeapon || player.getHeldItemOffhand().getItem() instanceof ItemKeyblade || player.getHeldItemOffhand().getItem() instanceof IOrgWeapon)) {
                    event.setCanceled(true);
                }
            // }
            }
        }
    }
    if (event.getSource().getImmediateSource() instanceof EntityPlayer && !event.getSource().damageType.equals(EnumHand.OFF_HAND.name())) {
        EntityPlayer player = (EntityPlayer) event.getSource().getImmediateSource();
        if (event.getSource().getDamageType().equals("thorns"))
            return;
        if (!ItemStack.areItemStacksEqual(player.getHeldItem(player.getActiveHand()), ItemStack.EMPTY)) {
            if (player.getHeldItem(player.getActiveHand()).getItem() instanceof ItemKeyblade || player.getHeldItem(player.getActiveHand()).getItem() instanceof IOrgWeapon) {
                event.setAmount(event.getAmount() - 4 + DamageCalculation.getStrengthDamage(player));
            }
        }
    }
}
Also used : IPlayerStats(uk.co.wehavecookies56.kk.common.capability.PlayerStatsCapability.IPlayerStats) SyncDriveData(uk.co.wehavecookies56.kk.common.network.packet.client.SyncDriveData) PlayerStatsCapability(uk.co.wehavecookies56.kk.common.capability.PlayerStatsCapability) EntityPlayer(net.minecraft.entity.player.EntityPlayer) ItemKeyblade(uk.co.wehavecookies56.kk.common.item.base.ItemKeyblade) IOrgWeapon(uk.co.wehavecookies56.kk.common.item.org.IOrgWeapon) IKHMob(uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 4 with IKHMob

use of uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob in project Kingdom-Keys-Re-Coded by Wehavecookies56.

the class DriveFormWisdom method getXP.

@SubscribeEvent
public static void getXP(LivingDeathEvent event) {
    if (!event.getEntity().world.isRemote && event.getEntity() instanceof IKHMob) {
        if (event.getSource().getTrueSource() instanceof EntityPlayer) {
            EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
            IDriveState DRIVE = player.getCapability(ModCapabilities.DRIVE_STATE, null);
            if (DRIVE.getActiveDriveName().equals(Strings.Form_Wisdom)) {
                DRIVE.setDriveExp(DRIVE.getActiveDriveName(), DRIVE.getDriveExp(DRIVE.getActiveDriveName()) + 1);
                int[] costs = DriveFormRegistry.get(DRIVE.getActiveDriveName()).getExpCosts();
                int actualLevel = DRIVE.getDriveLevel(DRIVE.getActiveDriveName());
                int actualExp = DRIVE.getDriveExp(DRIVE.getActiveDriveName());
                if (costs.length == 7 && actualLevel < 7) {
                    if (actualExp >= costs[actualLevel]) {
                        System.out.println("LEVEL UP");
                        DRIVE.setDriveLevel(DRIVE.getActiveDriveName(), actualLevel + 1);
                        DRIVE.displayLevelUpMessage(player, DRIVE.getActiveDriveName());
                    }
                }
                PacketDispatcher.sendTo(new SyncDriveData(DRIVE), (EntityPlayerMP) player);
            }
        }
    }
}
Also used : SyncDriveData(uk.co.wehavecookies56.kk.common.network.packet.client.SyncDriveData) EntityPlayer(net.minecraft.entity.player.EntityPlayer) IKHMob(uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob) IDriveState(uk.co.wehavecookies56.kk.common.capability.DriveStateCapability.IDriveState) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Aggregations

EntityPlayer (net.minecraft.entity.player.EntityPlayer)3 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)3 IKHMob (uk.co.wehavecookies56.kk.common.entity.mobs.IKHMob)3 ItemKeyblade (uk.co.wehavecookies56.kk.common.item.base.ItemKeyblade)2 SyncDriveData (uk.co.wehavecookies56.kk.common.network.packet.client.SyncDriveData)2 EntityAgeable (net.minecraft.entity.EntityAgeable)1 EntityDragon (net.minecraft.entity.boss.EntityDragon)1 EntityWither (net.minecraft.entity.boss.EntityWither)1 EntityMob (net.minecraft.entity.monster.EntityMob)1 EntityWitch (net.minecraft.entity.monster.EntityWitch)1 EntityAnimal (net.minecraft.entity.passive.EntityAnimal)1 ItemStack (net.minecraft.item.ItemStack)1 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)1 IDriveState (uk.co.wehavecookies56.kk.common.capability.DriveStateCapability.IDriveState)1 PlayerStatsCapability (uk.co.wehavecookies56.kk.common.capability.PlayerStatsCapability)1 IPlayerStats (uk.co.wehavecookies56.kk.common.capability.PlayerStatsCapability.IPlayerStats)1 EntityFlyingHeart (uk.co.wehavecookies56.kk.common.entity.EntityFlyingHeart)1 ItemRealKeyblade (uk.co.wehavecookies56.kk.common.item.base.ItemRealKeyblade)1 IOrgWeapon (uk.co.wehavecookies56.kk.common.item.org.IOrgWeapon)1