# ASM Config - You can disable Patches
# If you encounter any issues please reach out to me

configversion=0

# @Inject ItemSlab.onItemUse(ItemStack EntityPlayer World IIIIFFF)Z
# @Inject ItemSlab.func_150936_a(World IIII EntityPlayer ItemStack)Z
# @Replace BlockSlab.setBlockBoundsForItemRender()V
# @Inject ItemCarvableSlab.onItemUse(ItemStack EntityPlayer World IIIIFFF)Z
# @Inject CTMRenderer.renderInventoryBlock(Block II RenderBlocks)V
verticalSlabPlacement=true

# @Inject LOTRLevelData.save()V
# @Inject LOTRLevelData.load()V
# @Replace LOTRConquestZone.calcTimeStrReduction(J)F
conquestDecay=true

# @Replace LOTRReflection.getHorseInv(EntityHorse)AnimalChest
horseinv=true

# @Inject LOTRConquestGrid.getEffectiveConquestStrength(World LOTRConquestZone)F
# @Inject LOTRBiomeSpawnList$FactionContainer.getConquestEffectIn(World LOTRConquestZone LOTRFaction)LOTRConquestGrid$ConquestEffective
allyConquestSpawns=true

# @Inject LOTRConquestGrid.doRadialConquest(World LOTRConquestZone EntityPlayer LOTRFaction LOTRFaction FF)F
allyKillReduceConquest=true

# @Replace BlockFenceGate.canPlaceBlockAt(World III)Z
fencegatePlacement=true

# @Add BlockTrapdoor.onBlockPlacedBy(World III EntityLivingBase ItemStack)V
# @Replace BlockTrapdoor.onBlockPlaced(World IIIIFFFI)I
trapdoorPlacement=true

# @Inject BlockRotatedPillar.onBlockPlaced(World IIIIFFFI)I
# for classes: BlockNewLog, BlockOldLog, LOTRBlockWoodBase, LOTRBlockWoodBeam
# @Inject getSubBlocks(Item CreativeTabs List)V
# @Add getPickBlock(MovingObjectPosition World III EntityPlayer)ItemStack
# @Replace LOTRFABlockMultiWoodBeam.getBlockName(I)String
barkblocks=true

# @Add FMLHandshakeMessage$ModIdData.syncedconfig
# @Inject FMLHandshakeMessage$ModIdData.fromBytes(ByteBuf)V
# @Inject FMLHandshakeMessage$ModIdData.toBytes(ByteBuf)V
# @Inject FMLHandshakeClientState$WAITINGSERVERCOMPLETE.accept(ChannelHandlerContext FMLHandshakeMessage)FMLHandshakeClientState
syncedconfig=true

# Override locale with code TR to US
fixTurkishLang=true

# Custom Mountspeeds wont work if disabled
initMountspeeds=true

disableStructures=false

conquestClearCommand=true

entityKillCommand=true

entityTpCommand=true

entityEffectCommand=true

entityStackCommand=true

# sync the settings of both Mount and Rider
# majority of injections are same as guardsWanderRange
guardsSyncSettings=true

# @Inject EntityAITarget.isSuitableTarget(EntityLivingBase Z)Z
# @Add LOTRGuiHiredWarrior.sliderWanderRange
# @Inject LOTRGuiHiredWarrior.initGui()V
# @Inject LOTRGuiHiredWarrior.updateScreen()V
# @Add LOTRPacketHiredGui.wanderRange
# @Inject LOTRPacketHiredGui.fromBytes(ByteBuf)V
# @Inject LOTRPacketHiredGui.toBytes(ByteBuf)V
# @Inject LOTRPacketHiredUnitCommand$Handler.onMessage(LOTRPacketHiredUnitCommand MessageContext)IMessage
# @Add LOTRHiredNPCInfo.wanderRange
# @Inject LOTRHiredNPCInfo.<init>
# @Add LOTRHiredNPCInfo.readFromNBT(NBTTagCompound)V
# @Add LOTRHiredNPCInfo.writeToNBT(NBTTagCompound)V
# @Inject LOTRHiredNPCInfo.sendClientPacket(Z)V
# @Inject LOTRHiredNPCInfo.receiveClientPacket(LOTRPacketHiredGui)V
# @Replace LOTRHiredNPCInfo.setGuardMode(Z)V
# @Inject LOTRHiredNPCInfo.setGuardRange(I)V
guardsWanderRange=true

# @Add iHiredWarrior.buttonAdvanced
# @Public LOTRHiredNPCInfo.theEntity
# @Add LOTRHiredNPCInfo.ext
# relies on guardsWanderRange
guardsAdvancedSettings=true

# @Inject LOTRTickHandlerClient.onRenderTick(RenderTickEvent)V
# @Inject LOTRModelCompass.render(FF)V
# @Inject LOTRRenderPortal.doRender(Entity DDDFF)V
lotrHudPositions=true

# @Inject LOTREventHandler.onBlockBreak()
fangornTreePenaltyThreshold=true

# @Inject LOTREntityAIAttackOnCollide.continueExecuting()Z
fixSluggishHaradAttack=true

fixQuestofferSync=true

# Fix player targeted orcbombs causing damage inside bannered areas
npcExplosionProtection=true

# berries have a consume speed bonus due to their little saturation increase etc.
# @Replace ItemFood.getMaxItemUseDuration(ItemStack)I
foodConsumeDurations=true

# percent 0 to 100, 0 disables the patch
# @Inject LOTREntityTauredainBlowgunner.attackEntityWithRangedAttack(EntityLivingBase F)V
tauredainPoisonDartChance=10

# @Change Superclass for ItemHoe to ItemTool
# @Inject ItemHoe.<init>(ToolMaterial)V
# @Change Superclass for ItemShears to ItemTool
# @Inject ItemShears.<init>()V
improveBlockBreakSpeeds=true

disableTinCopperSilverGen=false

guardsEquipAllowTermites=true

# @Add LOTREntityAIRangedAttack.hasInit
# @Inject LOTREntityAIRangedAttack.updateTask()V
# @Inject LOTRContainerHiredWarriorInventory.<init>(InventoryPlayer LOTREntityNPC)V
# @Inject LOTRGuiHiredWarriorInventory.drawGuiContainerBackgroundLayer(FII)V
# @Inject LOTRInventoryHiredReplacedItems.setReplacedEquipment(I ItemStack Z)V
# @Replace LOTRInventoryHiredReplacedItems.equipReplacement(I ItemStack)V
guardsEquipRanged=true

# Allowed Ranged Weapon Categories:	 0 = any, 	1 = same,	2 = same or weaker
guardsLockCategoryRanged=0

# Delay Multiplier for different weapon types than their default in percent
guardsAttackDelayFactorRanged=100

# Dynamic instead of weapons default delay, for different weapon types than their default
guardsAttackDelayDynamicRanged=true

# @Add LOTREntityAIRangedAttack.hasInit
# @Add LOTREntityAIRangedAttack.decisionWait
# @Add LOTREntityAIRangedAttack.moveRangeSq
# @Inject LOTREntityAIRangedAttack.updateTask()V
# @Replace LOTREntityAIRangedAttack.shouldExecute()Z
# @Remove LOTREntityAIRangedAttack.continueExecuting()Z
aiRangedImprovements=true

# Whether equipment can be removed when broken
guardsEquipRemoveBroken=true

# Durability multiplier in percent
guardsEquipDurabilityFactor=200

# which weapons are affected by durability? (only if not default)
# 0 = none, 1 = any, 2 = any non default, 3 = spears, axes, plates, firepots and termites
guardsEquipDurabilityMode=3

randomEnchRangedNpcWeapons=true

hiredTransfer=true

loghiredTransfer=true

unitOverview=true

# @Inject EntityPlayer.isCurrentToolAdventureModeExempt(III)Z
adventureModePatches=true

# @Inject LOTRHiredNPCInfo.tryTeleportToHiringPlayer(Z)Z
fixTeleportToHiringPlayer=true

unitOverviewHideMeleeForRangedOnly=true

# @Inject LOTRItemEntDraught.onItemUse(ItemStack EntityPlayer World IIIIFFF)Z
# @Inject LOTRBlockEntJar.onBlockActivated(World III EntityPlayer IFFF)Z
# @Inject LOTRBlockMug.onBlockActivated(World III EntityPlayer IFFF)Z
patchDraughtUse=true

draughtMaxStacksize=4

# @Inject LOTRItemMug.onEaten(ItemStack World EntityPlayer)ItemStack
# @Inject LOTRItemEntDraught.onEaten(ItemStack World EntityPlayer)ItemStack
# 0 = off, percent by which the effects increase when above duration
draughtStackEffectsIncrease=50

# 0 = off, multiplier for other powerfull stews, not absolute
stewMaxStacksize=16

# @Inject FMLIndexedMessageToMessageCodec.decode(ChannelHandlerContext FMLProxyPacket List)V
# 0 = off, 1 = output, 2 = no output
passMissingDiscriminator=1

preloadClasses=true

# @Inject EntityTrackerEntry.sendLocationToAllClients(List)V
# @Inject EntityArrow.onUpdate()V
# @Inject LOTREntityProjectileBase.onUpdate()V
# @Inject LOTREntityProjectileBase.readEntityFromNBT(NBTTagCompound)V
# @Inject LOTREntityProjectileBase.writeEntityToNBT(NBTTagCompound)V
projectilePatches=true

projectilePatchesReqClient=true

alwaysAbsorbPiercingProjectiles=false

# ally npc vs ally npc only
allyProjectilesPassAllies=true

giveManyCommand=true

# @Inject LOTRPlayerData.addAlignment(EntityPlayer AlignmentBonus LOTRFaction List DDD)LOTRAlignmentBonusMap
# @Inject LOTREventHandler.onLivingDeath(LivingDeathEvent)V
hiredsConquerForTheirFaction=true

halfTrollAdditions=true

# @Inject EntityPlayerMP.onUpdate()V
# @Inject WorldClient.removeAllEntities()V
entityTrackerPatches=true

fixGuiGameOver=true

# Turn off if you are not updating metweaks or dont use any metweaks blocks
versionCompat=true

tabListChanges=true

tabListShowMaxPlayers=true

tabListSort=true

# Adds new FastTravel Event and processing
moreEvents=true

# percent, 100 = disable
npcDamageFactorProjectiles=100

# percent, 0 = disable
npcCriticalProjectileChance=0

projectileFlagsHiredsOnly=false

fixServerJoinFreeze=true

etFuturumCompatibility=false

farView=true

lotrEventControl=true

renderPerformance=true

checkOptifine=true

bannerProtectionPatches=true

permNpcAllowDestroyNonLiving=false

# percent, 0 = disable
revengeCamouflageTargetChance=0

logPlayerDeathLocations=true

forceFCV=0

# @Replace isNewYearsDay()Z, isAprilFools()Z, isHalloween()Z and isChristmas()Z in LOTRMod Class
# 0 = Patch disabled, 1 = Patch enabled, 2 = Holidays disabled
lotrHolidays=1

# @Inject LOTREntityRohanBannerBearer.<init>(World)V
mountedBannerBearers=true

# @Inject LOTREntityRangerNorthBannerBearer.<init>(World)V
moreMountedBannerBearers=false

# @Inject Explosion.doExplosionA()V
# @Inject Explosion.doExplosionB(Z)V
# @Inject NetHandlerPlayClient.handleSpawnObject(S0EPacketSpawnObject)V
# @Inject BlockFalling.func_149830_m(World III)V
# @Inject LOTRBlockSlabFalling.tryBlockFall(World III)V
# @Inject WorldServer.newExplosion(Entity DDDFZZ)Explosion
explosionPhysics=true

captainsAttack=false

throwableSpearToggle=true

fellowshipFFPatches=true

fixFireworkLag=true

fixInvisibility=false
