FILES ----- dungeon_worlds.config instance_worlds.config interface.config player.config terrestrial_worlds.config versioning.config [NEW] animations\numerals\numerals1.animation [NEW] animations\numerals\numerals1.frames [NEW] animations\numerals\numerals1.png [NEW] animations\numerals\numerals10.animation [NEW] animations\numerals\numerals10.frames [NEW] animations\numerals\numerals10.png [NEW] animations\numerals\numerals11.animation [NEW] animations\numerals\numerals11.frames [NEW] animations\numerals\numerals11.png [NEW] animations\numerals\numerals12.animation [NEW] animations\numerals\numerals12.frames [NEW] animations\numerals\numerals12.png [NEW] animations\numerals\numerals2.animation [NEW] animations\numerals\numerals2.frames [NEW] animations\numerals\numerals2.png [NEW] animations\numerals\numerals3.animation [NEW] animations\numerals\numerals3.frames [NEW] animations\numerals\numerals3.png [NEW] animations\numerals\numerals4.animation [NEW] animations\numerals\numerals4.frames [NEW] animations\numerals\numerals4.png [NEW] animations\numerals\numerals5.animation [NEW] animations\numerals\numerals5.frames [NEW] animations\numerals\numerals5.png [NEW] animations\numerals\numerals6.animation [NEW] animations\numerals\numerals6.frames [NEW] animations\numerals\numerals6.png [NEW] animations\numerals\numerals7.animation [NEW] animations\numerals\numerals7.frames [NEW] animations\numerals\numerals7.png [NEW] animations\numerals\numerals8.animation [NEW] animations\numerals\numerals8.frames [NEW] animations\numerals\numerals8.png [NEW] animations\numerals\numerals9.animation [NEW] animations\numerals\numerals9.frames [NEW] animations\numerals\numerals9.png behaviors\monsters\boss\kluexboss\windattack.behavior behaviors\monsters\mission\cultistballista.behavior [NEW] behaviors\monsters\mission\helicultist.behavior behaviors\monsters\modular\movement\flywander.behavior [NEW] behaviors\npc\unique\castlearcher.behavior behaviors\npc\unique\cultistinvader.behavior behaviors\sequences\glitchmission\baronstart.behavior cinematics\intro\introstage.cinematic cinematics\intro\introstart.cinematic [NEW] dungeons\floran\floranhutvillage\floranflat2.json [NEW] dungeons\floran\floranhutvillage\floranhut1.json [NEW] dungeons\floran\floranhutvillage\floranhut2.json [NEW] dungeons\floran\floranhutvillage\floranhut3.json [NEW] dungeons\floran\floranhutvillage\floranhut4.json [NEW] dungeons\floran\floranhutvillage\floranhut5.json [NEW] dungeons\floran\floranhutvillage\floranhut6.json [NEW] dungeons\floran\floranhutvillage\floranhut7.json [NEW] dungeons\floran\floranhutvillage\floranhut8.json [NEW] dungeons\floran\floranhutvillage\floranhutvillage.dungeon [NEW] dungeons\floran\floranhutvillage\floranhutvillageendleft1.json [NEW] dungeons\floran\floranhutvillage\floranhutvillageendright1.json [NEW] dungeons\floran\floranhutvillage\humancamp5.json [NEW] dungeons\floran\floranhutvillage\humancamphill1.json [NEW] dungeons\floran\floranhutvillage\humancamplake1.json [NEW] dungeons\floran\floranhutvillage\humancamptoilet1.json [NEW] dungeons\human\humancamp\humancamp.dungeon [NEW] dungeons\human\humancamp\humancamp1.json [NEW] dungeons\human\humancamp\humancamp2.json [NEW] dungeons\human\humancamp\humancamp3.json [NEW] dungeons\human\humancamp\humancamp4.json [NEW] dungeons\human\humancamp\humancamp5.json [NEW] dungeons\human\humancamp\humancampendleft1.json [NEW] dungeons\human\humancamp\humancampendright1.json [NEW] dungeons\human\humancamp\humancamphill1.json [NEW] dungeons\human\humancamp\humancamplake1.json [NEW] dungeons\human\humancamp\humancamptoilet1.json dungeons\hylotl\hylotloceancity\citylayout1.json dungeons\hylotl\hylotloceancity\citylayout2.json dungeons\missions\avianmissions\avianmission1.json dungeons\missions\glitchmissions\glitchmission1.json dungeons\missions\hylotlmissions\hylotlmission1.json [NEW] dungeons\other\arena\arena1.dungeon [NEW] dungeons\other\arena\arena1.json [NEW] dungeons\other\arena\arena2.dungeon [NEW] dungeons\other\arena\arena2.json [NEW] dungeons\other\arena\arena3.dungeon [NEW] dungeons\other\arena\arena3.json interface\confirmation\teleportconfirmation.config interface\escmenu\body.png interface\escmenu\escbutton.png interface\escmenu\escbuttonhover.png [NEW] interface\escmenu\shine.png [NEW] interface\optionsmenu\controlsbutton.png [NEW] interface\optionsmenu\controlsbuttonhover.png interface\optionsmenu\optionsmenu.config interface\title\largecharplatenoplayer.png interface\title\largecharplatenoplayerover.png [NEW] interface\title\shine.png interface\windowconfig\charselection.config items\active\effects\chain.lua items\active\weapons\weapon.lua items\active\weapons\fist\boxingglove.activeitem items\active\weapons\fist\brassknuckles.activeitem items\active\weapons\fist\clawglove.activeitem items\active\weapons\fist\fistweapon.lua items\active\weapons\fist\gauntlet.activeitem items\active\weapons\fist\stunglove.activeitem items\active\weapons\fist\vinefist.activeitem items\active\weapons\melee\meleeweapon.lua items\active\weapons\melee\altabilities\broadsword\bladecharge\bladecharge.altability items\active\weapons\melee\altabilities\broadsword\bladecharge\bladecharge.lua items\active\weapons\melee\altabilities\broadsword\downstab\downstab.altability items\active\weapons\melee\altabilities\broadsword\downstab\downstab.lua items\active\weapons\melee\altabilities\broadsword\giantsword\giantsword.altability items\active\weapons\melee\altabilities\broadsword\giantsword\giantsword.lua items\active\weapons\melee\altabilities\broadsword\parry\parry.altability items\active\weapons\melee\altabilities\broadsword\parry\parry.lua items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.altability items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.lua items\active\weapons\melee\altabilities\broadsword\spinslash\spinslash.altability items\active\weapons\melee\altabilities\broadsword\spinslash\spinslash.lua items\active\weapons\melee\altabilities\broadsword\spinslash\superspinslash.altability items\active\weapons\melee\altabilities\broadsword\spinslash\superspinslash.lua items\active\weapons\melee\altabilities\broadsword\traildash\traildash.altability items\active\weapons\melee\altabilities\broadsword\traildash\traildash.lua items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.altability items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.lua items\active\weapons\melee\altabilities\generic\blinkexplosion\blinkexplosion.altability items\active\weapons\melee\altabilities\generic\blinkexplosion\blinkexplosion.lua items\active\weapons\melee\altabilities\generic\blinkslash\blinkslash.altability items\active\weapons\melee\altabilities\generic\blinkslash\blinkslash.lua items\active\weapons\melee\altabilities\hammer\elementalaura\elementalaura.altability items\active\weapons\melee\altabilities\hammer\elementalaura\elementalaura.lua items\active\weapons\melee\altabilities\hammer\elementalpillar\elementalpillar.altability items\active\weapons\melee\altabilities\hammer\elementalpillar\elementalpillar.lua items\active\weapons\melee\altabilities\hammer\groundslam\groundslam.altability items\active\weapons\melee\altabilities\hammer\groundslam\groundslam.lua items\active\weapons\melee\altabilities\hammer\shockwave\physicalshockwave.altability items\active\weapons\melee\altabilities\hammer\shockwave\shockwave.altability items\active\weapons\melee\altabilities\hammer\shockwave\shockwave.lua items\active\weapons\melee\altabilities\hammer\uppercut\uppercut.altability items\active\weapons\melee\altabilities\hammer\uppercut\uppercut.lua items\active\weapons\melee\altabilities\spear\barrier\barrier.altability items\active\weapons\melee\altabilities\spear\barrier\barrier.lua items\active\weapons\melee\altabilities\spear\charge\charge.altability items\active\weapons\melee\altabilities\spear\charge\charge.lua items\active\weapons\melee\altabilities\spear\elementalspin\elementalspin.altability items\active\weapons\melee\altabilities\spear\elementalspin\elementalspin.lua items\active\weapons\melee\altabilities\spear\flurry\flurry.altability items\active\weapons\melee\altabilities\spear\flurry\flurry.lua items\active\weapons\melee\altabilities\spear\rocketspear\rocketspear.altability items\active\weapons\melee\altabilities\spear\rocketspear\rocketspear.lua items\active\weapons\melee\altabilities\spear\spin\spin.altability items\active\weapons\melee\altabilities\spear\spin\spin.lua items\active\weapons\melee\axe\commonaxe.activeitem items\active\weapons\melee\axe\deadbeataxe.activeitem items\active\weapons\melee\axe\npcaxe.activeitem items\active\weapons\melee\axe\rareaxe.activeitem items\active\weapons\melee\axe\uncommonaxe.activeitem [NEW] items\active\weapons\melee\broadsword\astrosabredeluxe.activeitem [NEW] items\active\weapons\melee\broadsword\astrosabredeluxe.animation [NEW] items\active\weapons\melee\broadsword\astrosabredeluxe.png items\active\weapons\melee\broadsword\commonbroadsword.activeitem items\active\weapons\melee\broadsword\npcbroadsword.activeitem items\active\weapons\melee\broadsword\rarebroadsword.activeitem [NEW] items\active\weapons\melee\broadsword\timepierce.activeitem [NEW] items\active\weapons\melee\broadsword\timepierce.animation [NEW] items\active\weapons\melee\broadsword\timepierce.png items\active\weapons\melee\broadsword\uncommonbroadsword.activeitem [NEW] items\active\weapons\melee\broadsword\swoosh\tearswoosh.png [NEW] items\active\weapons\melee\broadsword\swoosh\timeswoosh.png items\active\weapons\melee\cultistshortsword\npccultistshortsword.activeitem items\active\weapons\melee\dagger\commondagger.activeitem items\active\weapons\melee\dagger\npcdagger.activeitem items\active\weapons\melee\dagger\raredagger.activeitem items\active\weapons\melee\dagger\uncommondagger.activeitem items\active\weapons\melee\hammer\commonhammer.activeitem items\active\weapons\melee\hammer\hammer.lua items\active\weapons\melee\hammer\npchammer.activeitem items\active\weapons\melee\hammer\rarehammer.activeitem items\active\weapons\melee\hammer\uncommonhammer.activeitem items\active\weapons\melee\shortsword\commonshortsword.activeitem items\active\weapons\melee\shortsword\npcshortsword.activeitem items\active\weapons\melee\shortsword\rareshortsword.activeitem items\active\weapons\melee\shortsword\uncommonshortsword.activeitem items\active\weapons\melee\spear\commonspear.activeitem items\active\weapons\melee\spear\npcspear.activeitem items\active\weapons\melee\spear\rarespear.activeitem items\active\weapons\melee\spear\spear.lua items\active\weapons\melee\spear\uncommonspear.activeitem [NEW] items\active\weapons\other\bonegun.png [NEW] items\active\weapons\other\exmachina.activeitem items\active\weapons\other\exmachina.png [NEW] items\active\weapons\other\exmachinaunlit.png [NEW] items\active\weapons\other\fireworkgun.activeitem [NEW] items\active\weapons\other\soulseeker.activeitem [NEW] items\active\weapons\other\soulseeker.animation items\active\weapons\other\soulseeker.png [NEW] items\active\weapons\other\soulseekerfullbright.png [NEW] items\active\weapons\other\arena\bruisersword\bruisersword.activeitem [NEW] items\active\weapons\other\arena\bruisersword\bruisersword.png [NEW] items\active\weapons\other\arena\fightersword\fightersword.activeitem [NEW] items\active\weapons\other\arena\fightersword\fightersword.png [NEW] items\active\weapons\other\arena\firesword\firesword.activeitem [NEW] items\active\weapons\other\arena\firesword\firesword.png [NEW] items\active\weapons\other\arena\flamethrowerblade\flamethrowerblade.activeitem [NEW] items\active\weapons\other\arena\flamethrowerblade\flamethrowerblade.png [NEW] items\active\weapons\other\arena\hunterrifle\hunterrifle.activeitem [NEW] items\active\weapons\other\arena\hunterrifle\hunterrifle.png [NEW] items\active\weapons\other\magnorbs\glove.frames [NEW] items\active\weapons\other\magnorbs\glove.png [NEW] items\active\weapons\other\magnorbs\glovefullbright.png [NEW] items\active\weapons\other\magnorbs\icon.png [NEW] items\active\weapons\other\magnorbs\magnorbs.activeitem [NEW] items\active\weapons\other\magnorbs\magnorbs.animation [NEW] items\active\weapons\other\magnorbs\magnorbs.lua [NEW] items\active\weapons\other\magnorbs\orb.png items\active\weapons\other\nurusspear\nurusspear.activeitem items\active\weapons\other\nurusspear\nurusspear.lua [NEW] items\active\weapons\other\swoosh\default.frames [NEW] items\active\weapons\other\swoosh\soulseekerswoosh.png [NEW] items\active\weapons\pickaxe\backgroundpickslash.altability [NEW] items\active\weapons\pickaxe\backgroundpickslash.lua [NEW] items\active\weapons\pickaxe\energypickaxe.activeitem [NEW] items\active\weapons\pickaxe\energypickaxe.animation [NEW] items\active\weapons\pickaxe\energypickaxehandle.png [NEW] items\active\weapons\pickaxe\energypickaxehead.png [NEW] items\active\weapons\pickaxe\pickaxe.lua [NEW] items\active\weapons\pickaxe\pickslash.lua items\active\weapons\protectorate\brokenprotectoratebroadsword.activeitem items\active\weapons\protectorate\durasteelbroadsword.activeitem items\active\weapons\protectorate\ironbroadsword.activeitem items\active\weapons\protectorate\ironshortsword.activeitem items\active\weapons\protectorate\titaniumspear.activeitem items\active\weapons\protectorate\tungstenhammer.activeitem items\active\weapons\ranged\gun.animation items\active\weapons\ranged\gun.lua items\active\weapons\ranged\altabilities\altfire.lua items\active\weapons\ranged\altabilities\bouncingshot\bouncingshot.altability items\active\weapons\ranged\altabilities\burstshot\burstshot.altability items\active\weapons\ranged\altabilities\burstshot\burstshot.lua items\active\weapons\ranged\altabilities\deathbomb\deathbomb.altability items\active\weapons\ranged\altabilities\explosiveburst\explosiveburst.altability items\active\weapons\ranged\altabilities\explosiveburst\explosiveburst.lua items\active\weapons\ranged\altabilities\explosiveshot\explosiveshot.altability items\active\weapons\ranged\altabilities\flashlight\flashlight.altability items\active\weapons\ranged\altabilities\flashlight\flashlight.lua items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.altability items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.lua items\active\weapons\ranged\altabilities\grenadelauncher\grenadelauncher.altability [NEW] items\active\weapons\ranged\altabilities\guidedrocket\exmachinarocket.altability items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.altability items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.lua items\active\weapons\ranged\altabilities\homingrocket\homingrocket.altability items\active\weapons\ranged\altabilities\homingrocket\homingrocket.lua items\active\weapons\ranged\altabilities\lance\lance.altability items\active\weapons\ranged\altabilities\lance\lance.lua items\active\weapons\ranged\altabilities\markedshot\markedshot.altability items\active\weapons\ranged\altabilities\markedshot\markedshot.lua items\active\weapons\ranged\altabilities\piercingshot\piercingshot.altability items\active\weapons\ranged\altabilities\rocketburst\rocketburst.altability items\active\weapons\ranged\altabilities\rocketburst\rocketburst.lua items\active\weapons\ranged\altabilities\shrapnelbomb\shrapnelbomb.altability [NEW] items\active\weapons\ranged\altabilities\sparkles\sparkles.altability items\active\weapons\ranged\altabilities\spray\spray.altability items\active\weapons\ranged\altabilities\stickyshot\stickyshot.altability items\active\weapons\ranged\assaultrifle\commonassaultrifle.activeitem items\active\weapons\ranged\assaultrifle\npcassaultrifle.activeitem items\active\weapons\ranged\assaultrifle\rareassaultrifle.activeitem items\active\weapons\ranged\assaultrifle\uncommonassaultrifle.activeitem items\active\weapons\ranged\deadbeatassaultrifle\deadbeatassaultrifle.activeitem items\active\weapons\ranged\deadbeatassaultrifle\npcdeadbeatassaultrifle.activeitem items\active\weapons\ranged\flamethrower\flamethrower.activeitem items\active\weapons\ranged\flamethrower\flamethrower.lua items\active\weapons\ranged\floranassaultrifle\floranassaultrifle.activeitem items\active\weapons\ranged\floranassaultrifle\npcfloranassaultrifle.activeitem items\active\weapons\ranged\grenadelauncher\commongrenadelauncher.activeitem items\active\weapons\ranged\grenadelauncher\raregrenadelauncher.activeitem items\active\weapons\ranged\grenadelauncher\uncommongrenadelauncher.activeitem items\active\weapons\ranged\machinepistol\commonmachinepistol.activeitem items\active\weapons\ranged\machinepistol\npcmachinepistol.activeitem items\active\weapons\ranged\machinepistol\raremachinepistol.activeitem items\active\weapons\ranged\machinepistol\uncommonmachinepistol.activeitem items\active\weapons\ranged\pistol\commonpistol.activeitem items\active\weapons\ranged\pistol\npcpistol.activeitem items\active\weapons\ranged\pistol\rarepistol.activeitem items\active\weapons\ranged\pistol\uncommonpistol.activeitem items\active\weapons\ranged\rocketlauncher\commonrocketlauncher.activeitem items\active\weapons\ranged\rocketlauncher\npcrocketlauncher.activeitem items\active\weapons\ranged\rocketlauncher\rarerocketlauncher.activeitem items\active\weapons\ranged\rocketlauncher\uncommonrocketlauncher.activeitem items\active\weapons\ranged\shotgun\commonshotgun.activeitem items\active\weapons\ranged\shotgun\npcshotgun.activeitem items\active\weapons\ranged\shotgun\rareshotgun.activeitem items\active\weapons\ranged\shotgun\uncommonshotgun.activeitem items\active\weapons\ranged\sniperrifle\commonsniperrifle.activeitem items\active\weapons\ranged\sniperrifle\npcsniperrifle.activeitem items\active\weapons\ranged\sniperrifle\raresniperrifle.activeitem items\active\weapons\ranged\sniperrifle\uncommonsniperrifle.activeitem items\active\weapons\tiered\broadsword\apex\apexstarter.activeitem items\active\weapons\tiered\broadsword\apex\apextier10broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier1broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier2broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier3broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier4broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier5broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier6broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier7broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier8broadsword.activeitem items\active\weapons\tiered\broadsword\apex\apextier9broadsword.activeitem items\active\weapons\tiered\broadsword\avian\avianstarter.activeitem items\active\weapons\tiered\broadsword\avian\aviantier10broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier1broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier2broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier3broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier4broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier5broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier6broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier7broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier8broadsword.activeitem items\active\weapons\tiered\broadsword\avian\aviantier9broadsword.activeitem items\active\weapons\tiered\broadsword\floran\floranstarter.activeitem items\active\weapons\tiered\broadsword\floran\florantier10broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier1broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier2broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier3broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier4broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier5broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier6broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier7broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier8broadsword.activeitem items\active\weapons\tiered\broadsword\floran\florantier9broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchstarter.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier10broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier1broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier2broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier3broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier4broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier5broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier6broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier7broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier8broadsword.activeitem items\active\weapons\tiered\broadsword\glitch\glitchtier9broadsword.activeitem items\active\weapons\tiered\broadsword\human\humanstarter.activeitem items\active\weapons\tiered\broadsword\human\humantier10broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier1broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier2broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier3broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier4broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier5broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier6broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier7broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier8broadsword.activeitem items\active\weapons\tiered\broadsword\human\humantier9broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotlstarter.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier10broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier1broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier2broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier3broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier4broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier5broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier6broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier7broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier8broadsword.activeitem items\active\weapons\tiered\broadsword\hylotl\hylotltier9broadsword.activeitem items\active\weapons\tiered\hammer\apex\apextier10hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier1hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier2hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier3hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier4hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier5hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier6hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier7hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier8hammer.activeitem items\active\weapons\tiered\hammer\apex\apextier9hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier10hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier1hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier2hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier3hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier4hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier5hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier6hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier7hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier8hammer.activeitem items\active\weapons\tiered\hammer\avian\aviantier9hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier10hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier1hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier2hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier3hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier4hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier5hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier6hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier7hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier8hammer.activeitem items\active\weapons\tiered\hammer\floran\florantier9hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier10hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier1hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier2hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier3hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier4hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier5hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier6hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier7hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier8hammer.activeitem items\active\weapons\tiered\hammer\glitch\glitchtier9hammer.activeitem items\active\weapons\tiered\hammer\human\humantier10hammer.activeitem items\active\weapons\tiered\hammer\human\humantier1hammer.activeitem items\active\weapons\tiered\hammer\human\humantier2hammer.activeitem items\active\weapons\tiered\hammer\human\humantier3hammer.activeitem items\active\weapons\tiered\hammer\human\humantier4hammer.activeitem items\active\weapons\tiered\hammer\human\humantier5hammer.activeitem items\active\weapons\tiered\hammer\human\humantier6hammer.activeitem items\active\weapons\tiered\hammer\human\humantier7hammer.activeitem items\active\weapons\tiered\hammer\human\humantier8hammer.activeitem items\active\weapons\tiered\hammer\human\humantier9hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier10hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier1hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier2hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier3hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier4hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier5hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier6hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier7hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier8hammer.activeitem items\active\weapons\tiered\hammer\hylotl\hylotltier9hammer.activeitem items\active\weapons\tiered\rifle\novakid\novatier0rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier10rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier1rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier2rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier3rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier4rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier5rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier6rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier7rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier8rifle.activeitem items\active\weapons\tiered\rifle\novakid\novatier9rifle.activeitem items\active\weapons\tiered\spear\apex\apextier10spear.activeitem items\active\weapons\tiered\spear\apex\apextier1spear.activeitem items\active\weapons\tiered\spear\apex\apextier2spear.activeitem items\active\weapons\tiered\spear\apex\apextier3spear.activeitem items\active\weapons\tiered\spear\apex\apextier4spear.activeitem items\active\weapons\tiered\spear\apex\apextier5spear.activeitem items\active\weapons\tiered\spear\apex\apextier6spear.activeitem items\active\weapons\tiered\spear\apex\apextier7spear.activeitem items\active\weapons\tiered\spear\apex\apextier8spear.activeitem items\active\weapons\tiered\spear\apex\apextier9spear.activeitem items\active\weapons\tiered\spear\avian\aviantier10spear.activeitem items\active\weapons\tiered\spear\avian\aviantier1spear.activeitem items\active\weapons\tiered\spear\avian\aviantier2spear.activeitem items\active\weapons\tiered\spear\avian\aviantier3spear.activeitem items\active\weapons\tiered\spear\avian\aviantier4spear.activeitem items\active\weapons\tiered\spear\avian\aviantier5spear.activeitem items\active\weapons\tiered\spear\avian\aviantier6spear.activeitem items\active\weapons\tiered\spear\avian\aviantier7spear.activeitem items\active\weapons\tiered\spear\avian\aviantier8spear.activeitem items\active\weapons\tiered\spear\avian\aviantier9spear.activeitem items\active\weapons\tiered\spear\floran\florantier10spear.activeitem items\active\weapons\tiered\spear\floran\florantier1spear.activeitem items\active\weapons\tiered\spear\floran\florantier2spear.activeitem items\active\weapons\tiered\spear\floran\florantier3spear.activeitem items\active\weapons\tiered\spear\floran\florantier4spear.activeitem items\active\weapons\tiered\spear\floran\florantier5spear.activeitem items\active\weapons\tiered\spear\floran\florantier6spear.activeitem items\active\weapons\tiered\spear\floran\florantier7spear.activeitem items\active\weapons\tiered\spear\floran\florantier8spear.activeitem items\active\weapons\tiered\spear\floran\florantier9spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier10spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier1spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier2spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier3spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier4spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier5spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier6spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier7spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier8spear.activeitem items\active\weapons\tiered\spear\glitch\glitchtier9spear.activeitem items\active\weapons\tiered\spear\human\humantier10spear.activeitem items\active\weapons\tiered\spear\human\humantier1spear.activeitem items\active\weapons\tiered\spear\human\humantier2spear.activeitem items\active\weapons\tiered\spear\human\humantier3spear.activeitem items\active\weapons\tiered\spear\human\humantier4spear.activeitem items\active\weapons\tiered\spear\human\humantier5spear.activeitem items\active\weapons\tiered\spear\human\humantier6spear.activeitem items\active\weapons\tiered\spear\human\humantier7spear.activeitem items\active\weapons\tiered\spear\human\humantier8spear.activeitem items\active\weapons\tiered\spear\human\humantier9spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier10spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier1spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier2spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier3spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier4spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier5spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier6spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier7spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier8spear.activeitem items\active\weapons\tiered\spear\hylotl\hylotltier9spear.activeitem items\active\weapons\whip\energywhip.activeitem items\active\weapons\whip\ropewhip.activeitem items\active\weapons\whip\vinelinkend.png items\active\weapons\whip\vinewhip.activeitem items\active\weapons\whip\whip.lua items\active\weapons\whip\whipcrack.lua items\active\weapons\whip\altabilities\energyorb.altability items\active\weapons\whip\altabilities\energyorb.lua items\buildscripts\buildfist.lua items\buildscripts\buildunrandweapon.lua items\buildscripts\buildweapon.lua items\buildscripts\buildwhip.lua items\generic\unsorted\protectorateflyer\protectorateflyer.item items\generic\unsorted\protectorateflyer\protectorateflyer.png monsters\monster.lua monsters\boss\kluexboss\kluexboss.animation monsters\boss\kluexbossstatue\kluexbossstatue.animation monsters\mission\ballista\ballista.monstertype [NEW] monsters\mission\helicultist\body.monsterpart [NEW] monsters\mission\helicultist\helicultist.animation [NEW] monsters\mission\helicultist\helicultist.frames [NEW] monsters\mission\helicultist\helicultist.monstertype [NEW] monsters\mission\helicultist\helicultist.png monsters\mission\kluexsentry\kluexsentry.animation monsters\mission\kluextotem\kluextotem.animation [NEW] npcs\arena\arenabuiser.npctype [NEW] npcs\arena\arenafighter.npctype [NEW] npcs\arena\arenahunter.npctype [NEW] npcs\arena\arenapyro.npctype [NEW] npcs\arena\arenashooter.npctype [NEW] npcs\mission\castlearcher.npctype npcs\outpost\outpostfloranhunter.npctype npcs\story\baron.npctype [NEW] objects\biome\tentacle\tentacleegg\tentacleegg.frames [NEW] objects\biome\tentacle\tentacleegg\tentacleegg.object [NEW] objects\biome\tentacle\tentacleegg\tentacleegg.png [NEW] objects\biome\tentacle\tentacleegg\tentacleeggicon.png [NEW] objects\generic\sleepingbaggreen\sleepingbaggreen.frames [NEW] objects\generic\sleepingbaggreen\sleepingbaggreen.object [NEW] objects\generic\sleepingbaggreen\sleepingbaggreen.png [NEW] objects\generic\sleepingbaggreen\sleepingbaggreencover.png [NEW] objects\generic\sleepingbaggreen\sleepingbaggreenicon.png [NEW] objects\generic\sleepingbagred\sleepingbagred.frames [NEW] objects\generic\sleepingbagred\sleepingbagred.object [NEW] objects\generic\sleepingbagred\sleepingbagred.png [NEW] objects\generic\sleepingbagred\sleepingbagredcover.png [NEW] objects\generic\sleepingbagred\sleepingbagredicon.png [NEW] objects\generic\tent1blue\tent1blue.frames [NEW] objects\generic\tent1blue\tent1blue.object [NEW] objects\generic\tent1blue\tent1blue.png [NEW] objects\generic\tent1blue\tent1blueicon.png [NEW] objects\generic\tent1blue\tent1bluelit.png [NEW] objects\generic\tent1red\tent1red.frames [NEW] objects\generic\tent1red\tent1red.object [NEW] objects\generic\tent1red\tent1red.png [NEW] objects\generic\tent1red\tent1redicon.png [NEW] objects\generic\tent1red\tent1redlit.png [NEW] objects\generic\tent2yellow\tent2yellow.frames [NEW] objects\generic\tent2yellow\tent2yellow.object [NEW] objects\generic\tent2yellow\tent2yellow.png [NEW] objects\generic\tent2yellow\tent2yellowicon.png [NEW] objects\generic\tent2yellow\tent2yellowlit.png objects\glitch\outhouse\outhousecover.png [NEW] objects\mission\glitchmission\glitchartifactaltar\glitchartifactaltar.animation [NEW] objects\mission\glitchmission\glitchartifactaltar\glitchartifactaltar.frames [NEW] objects\mission\glitchmission\glitchartifactaltar\glitchartifactaltar.lua [NEW] objects\mission\glitchmission\glitchartifactaltar\glitchartifactaltar.object [NEW] objects\mission\glitchmission\glitchartifactaltar\glitchartifactaltar.png [NEW] objects\mission\hylotlmission\hologramprojector\hologramprojector.frames [NEW] objects\mission\hylotlmission\hologramprojector\hologramprojector.object [NEW] objects\mission\hylotlmission\hologramprojector\hologramprojector.png [NEW] objects\mission\hylotlmission\hologramprojector\icon.png objects\protectorate\objects\protectorateclock\protectorateclock.object objects\protectorate\objects\protectoratehologlobe\protectoratehologlobe.object objects\protectorate\objects\protectoratehulagirl\protectoratehulagirl.object objects\protectorate\objects\protectoratesmokegen\protectoratesmokegen.object objects\ship\hylotlteleportertier0\hylotlteleportertier0.object objects\themed\island\hulagirl\hulagirl.object [NEW] particles\soulseeker.particle [NEW] particles\soulseeker2.particle [NEW] particles\numerals\numerals1.particle [NEW] particles\numerals\numerals10.particle [NEW] particles\numerals\numerals11.particle [NEW] particles\numerals\numerals12.particle [NEW] particles\numerals\numerals2.particle [NEW] particles\numerals\numerals3.particle [NEW] particles\numerals\numerals4.particle [NEW] particles\numerals\numerals5.particle [NEW] particles\numerals\numerals6.particle [NEW] particles\numerals\numerals7.particle [NEW] particles\numerals\numerals8.particle [NEW] particles\numerals\numerals9.particle [NEW] projectiles\activeitems\guidedrocket\exmachinarocket.projectile projectiles\activeitems\magnorb\magnorb.png projectiles\boss\kluexboss\floorlava\floorlava.projectile projectiles\boss\kluexboss\iceeruption\iceeruption.projectile projectiles\boss\kluexboss\iceeruption\iceeruptiontele.projectile projectiles\boss\kluexboss\splitplasma\redplasmatorpedo.projectile projectiles\guns\plasmabullets\chainplasma\chainelectricplasma.projectile projectiles\guns\plasmabullets\chainplasma\chainelectricplasma2.projectile projectiles\guns\plasmabullets\chainplasma\chainfireplasma.projectile projectiles\guns\plasmabullets\chainplasma\chainfireplasma2.projectile projectiles\guns\plasmabullets\chainplasma\chainiceplasma.projectile projectiles\guns\plasmabullets\chainplasma\chainiceplasma2.projectile projectiles\guns\plasmabullets\chainplasma\chainpoisonplasma.projectile projectiles\guns\plasmabullets\chainplasma\chainpoisonplasma2.projectile [NEW] projectiles\throwable\fireworkgun\fireworkgun.frames [NEW] projectiles\throwable\fireworkgun\fireworkgun.png [NEW] projectiles\throwable\fireworkgun\fireworkgun.projectile [NEW] projectiles\throwable\fireworkgun2\fireworkgun2.frames [NEW] projectiles\throwable\fireworkgun2\fireworkgun2.png [NEW] projectiles\throwable\fireworkgun2\fireworkgun2.projectile [NEW] projectiles\throwable\molotov\cultistmolotov.projectile projectiles\traps\arenaflame\arenaflame.projectile [NEW] quests\outpost\floranarena1.questtemplate [NEW] quests\outpost\floranarena2.questtemplate [NEW] quests\outpost\floranarena3.questtemplate quests\scripts\tutorial\protectorate.lua sfx\gun\bow_draw1.ogg sfx\gun\bow_draw2.ogg sfx\gun\bow_draw3.ogg sfx\melee\charge_up8.ogg [NEW] sfx\npc\boss\kluexboss_death.ogg [NEW] sfx\npc\boss\kluexboss_iceeruption1.ogg [NEW] sfx\npc\boss\kluexboss_iceeruption2.ogg [NEW] sfx\npc\boss\kluexboss_iceform1.ogg [NEW] sfx\npc\boss\kluexboss_iceform2.ogg [NEW] sfx\npc\boss\kluexboss_lavaplume.ogg [NEW] sfx\npc\boss\kluexboss_phase1.ogg [NEW] sfx\npc\boss\kluexboss_phase2.ogg [NEW] sfx\npc\boss\kluexboss_vortex.ogg [NEW] sfx\npc\boss\kluexboss_vortex_windy.ogg [NEW] sfx\npc\monsters\kluexsentry_windup1.ogg [NEW] sfx\npc\monsters\kluexsentry_windup2.ogg [NEW] sfx\npc\monsters\kluextotem_sleep.ogg [NEW] sfx\npc\monsters\kluextotem_wake1.ogg [NEW] sfx\npc\monsters\kluextotem_wake2.ogg sfx\projectiles\ice_barrier_freeze2.ogg sfx\projectiles\ice_break1.ogg sfx\projectiles\ice_break10.ogg sfx\projectiles\ice_break2.ogg sfx\projectiles\ice_break3.ogg sfx\projectiles\ice_break4.ogg sfx\projectiles\ice_break5.ogg sfx\projectiles\ice_break6.ogg sfx\projectiles\ice_break7.ogg sfx\projectiles\ice_break8.ogg sfx\projectiles\ice_break9.ogg stagehands\mission\glitchmissionmanager.lua stagehands\mission\glitchmissionmanager.stagehand tiles\materials\jellyblock.png tilesets\packed\objects-by-category\decorative.json tilesets\packed\objects-by-category\furniture.json tilesets\packed\objects-by-category\teleporter.json tilesets\packed\objects-by-colonytag\explorer.json tilesets\packed\objects-by-colonytag\human.json tilesets\packed\objects-by-colonytag\hylotl.json tilesets\packed\objects-by-colonytag\misc.json tilesets\packed\objects-by-race\generic.json tilesets\packed\objects-by-race\glitch.json tilesets\packed\objects-by-race\hylotl.json [NEW] tilesets\packed\objects-by-race\tentacle.json tilesets\packed\objects-by-type\loungeable.json treasure\npc.treasurepools [NEW] treasure\missions\outpostarena.treasurepools [NEW] versioning\itemdropentity_2_3.lua [NEW] versioning\objectentity_5_6.lua DIFFS ----- dungeon_worlds.config 34a35,70 > "arena1" : { > "primaryDungeon" : "arena1", > "threatLevel" : 3, > "gravity" : 80, > "worldSize" : [2000, 2000], > "dungeonBaseHeight" : 1000, > "ambientLightLevel" : [200, 200, 200], > "ambientNoises" : "/sfx/environmental/garden_day.ogg", > "musicTrack" : "/music/i-was-the-sun.ogg", > "biome": "forest" > }, > > "arena2" : { > "primaryDungeon" : "arena2", > "threatLevel" : 4, > "gravity" : 80, > "worldSize" : [2000, 2000], > "dungeonBaseHeight" : 1000, > "ambientLightLevel" : [200, 200, 200], > "ambientNoises" : "/sfx/environmental/garden_day.ogg", > "musicTrack" : "/music/i-was-the-sun.ogg", > "biome": "forest" > }, > > "arena3" : { > "primaryDungeon" : "arena3", > "threatLevel" : 5, > "gravity" : 80, > "worldSize" : [2000, 2000], > "dungeonBaseHeight" : 1000, > "ambientLightLevel" : [200, 200, 200], > "ambientNoises" : "/sfx/environmental/garden_day.ogg", > "musicTrack" : "/music/i-was-the-sun.ogg", > "biome": "forest" > }, > instance_worlds.config 860a861,1055 > "arena1" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "arena1", > "seed" : 1234, > "spawningEnabled" : false, > > "skyParameters" : { > "spaceLevel" : 3000, > "ambientLightLevel" : [ 24, 28, 24 ], > "skyType" : "atmospheric", > "skyColoring" : { > "mainColor" : [255, 255, 255], > > "morningColors" : [ [115, 224, 255], [255, 255, 255] ], > "dayColors" : [ [115, 224, 255], [255, 255, 255] ], > "eveningColors" : [ [255, 118, 72], [225, 147, 85] ], > "nightColors" : [ [255, 118, 72], [255, 177, 115] ], > > "morningLightColor" : [200, 200, 200], > "dayLightColor" : [200, 200, 200], > "eveningLightColor" : [150, 150, 150], > "nightLightColor" : [150, 150, 150] > }, > "satellites" : [ { > "pos" : [ 0.310561, 0.35497 ], > "layers" : [ { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/liquids/water.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie3.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/2.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie2.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/20.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" > } ] > } ], > "planet" : { > "pos" : [ 0.00538729, 0.46961 ], > "layers" : [ { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_base.png?hueshift=-80" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_clouds_0.png?hueshift=-70?addmask=/celestial/system/gas_giant/gas_giant_dynamics/3.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_clouds_1.png?hueshift=-77?addmask=/celestial/system/gas_giant/gas_giant_dynamics/28.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/shadows/9.png" > } ] > }, > "horizonImages" : [ ], > "dayLength" : 100000, > "surfaceLevel" : 1200, > "seed" : -5288806180628666923 > } > }, > > "arena2" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "arena2", > "seed" : 1234, > "spawningEnabled" : false, > > "skyParameters" : { > "spaceLevel" : 3000, > "ambientLightLevel" : [ 24, 28, 24 ], > "skyType" : "atmospheric", > "skyColoring" : { > "mainColor" : [255, 255, 255], > > "morningColors" : [ [115, 224, 255], [255, 255, 255] ], > "dayColors" : [ [115, 224, 255], [255, 255, 255] ], > "eveningColors" : [ [255, 118, 72], [225, 147, 85] ], > "nightColors" : [ [255, 118, 72], [255, 177, 115] ], > > "morningLightColor" : [200, 200, 200], > "dayLightColor" : [200, 200, 200], > "eveningLightColor" : [150, 150, 150], > "nightLightColor" : [150, 150, 150] > }, > "satellites" : [ { > "pos" : [ 0.310561, 0.35497 ], > "layers" : [ { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/liquids/water.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie3.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/2.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie2.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/20.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" > } ] > } ], > "planet" : { > "pos" : [ 0.00538729, 0.46961 ], > "layers" : [ { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_base.png?hueshift=-80" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_clouds_0.png?hueshift=-70?addmask=/celestial/system/gas_giant/gas_giant_dynamics/3.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_clouds_1.png?hueshift=-77?addmask=/celestial/system/gas_giant/gas_giant_dynamics/28.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/shadows/9.png" > } ] > }, > "horizonImages" : [ ], > "dayLength" : 100000, > "surfaceLevel" : 1200, > "seed" : -5288806180628666923 > } > }, > > "arena3" : { > "type" : "FloatingDungeon", > "dungeonWorld" : "arena3", > "seed" : 1234, > "spawningEnabled" : false, > > "skyParameters" : { > "spaceLevel" : 3000, > "ambientLightLevel" : [ 24, 28, 24 ], > "skyType" : "atmospheric", > "skyColoring" : { > "mainColor" : [255, 255, 255], > > "morningColors" : [ [115, 224, 255], [255, 255, 255] ], > "dayColors" : [ [115, 224, 255], [255, 255, 255] ], > "eveningColors" : [ [255, 118, 72], [225, 147, 85] ], > "nightColors" : [ [255, 118, 72], [255, 177, 115] ], > > "morningLightColor" : [200, 200, 200], > "dayLightColor" : [200, 200, 200], > "eveningLightColor" : [150, 150, 150], > "nightLightColor" : [150, 150, 150] > }, > "satellites" : [ { > "pos" : [ 0.310561, 0.35497 ], > "layers" : [ { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/liquids/water.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie3.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/2.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie2.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/20.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" > }, { > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" > } ] > } ], > "planet" : { > "pos" : [ 0.00538729, 0.46961 ], > "layers" : [ { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_base.png?hueshift=-80" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_clouds_0.png?hueshift=-70?addmask=/celestial/system/gas_giant/gas_giant_dynamics/3.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/gas_giant_clouds_1.png?hueshift=-77?addmask=/celestial/system/gas_giant/gas_giant_dynamics/28.png+/celestial/system/gas_giant/gas_giant_dynamics/29.png" > }, { > "scale" : 0.15, > "image" : "/celestial/system/gas_giant/shadows/9.png" > } ] > }, > "horizonImages" : [ ], > "dayLength" : 100000, > "surfaceLevel" : 1200, > "seed" : -5288806180628666923 > } > }, > interface.config 304c304 < "portraitOffset" : [25, 25], --- > "portraitOffset" : [10, 25], 313c313 < "portraitOffset" : [28, 28], --- > "portraitOffset" : [19, 28], 318,319c318,319 < "modeNameOffset" : [95, 10], < "modeOffset" : [122, 10], --- > "modeNameOffset" : [80, 10], > "modeOffset" : [94, 10], 323c323 < "playerNameOffset" : [110, 28], --- > "playerNameOffset" : [95, 28], 330c330 < "hoverImage" : "/interface/title/delete/garbage2.png", --- > "hoverImage" : "/interface/title/delete/garbage2Down.png", 333c333 < "offset" : [191, 13] --- > "offset" : [160, 11] 407a408,413 > "bgShine" : { > "type" : "image", > "file" : "/interface/escmenu/shine.png", > "position" : [0, 0], > "zlevel" : -10 > }, 415c421 < "position" : [13, 57], --- > "position" : [18, 170], 422c428 < "position" : [13, 42], --- > "position" : [18, 130], 429c435 < "position" : [13, 27], --- > "position" : [18, 90], 432a439,452 > }, > "lblversion" : { > "type" : "label", > "position" : [108, 50], > "hAnchor" : "mid", > "value" : "Starbound v0.8 Cheerful Giraffe", > "color" : [50, 50, 50] > }, > "lblcopyright" : { > "type" : "label", > "position" : [108, 40], > "hAnchor" : "mid", > "value" : "Chucklefish Games 2016 - Made in London", > "color" : [50, 50, 50] player.config 11c11 < --- > 13a14,15 > "ageItemsEvery" : 10, > 195c197 < --- > 317c319 < /* --- > /* 332c334 < --- > 382c384 < --- > 388c390 < --- > 394c396 < --- > 400c402 < --- > 406c408 < --- > 412c414 < --- > 504c506 < --- > 646c648 < "maxValue" : 105, --- > "maxValue" : 120, 694c696 < --- > terrestrial_worlds.config 357c357 < "dungeons" : [ "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] --- > "dungeons" : [ "floranhutvillage", "humancamp", "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] 385c385 < "dungeons" : [ "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] 448c448 < "dungeons" : [ "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] 476c476 < "dungeons" : [ "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "glitchvillage", "apexresearchlab", "apextestchamber", "apextowerblock", "aviantomb", "aviantower", "avianvillage", "humanbunker", "floranhuntinggrounds", "floranvillagetower" ] 505c505 < "dungeons" : [ "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] 563c563 < "dungeons" : [ "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] 604c604 < "dungeons" : [ "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] 614c614 < "dungeons" : [ "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] 625c625 < "dungeons" : [ "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] 646c646 < "dungeons" : [ "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] --- > "dungeons" : [ "humancamp", "hylotlcity", "glitchsewer", "apexresearchlab", "apextestchamber", "aviantomb", "aviantower", "humanbunker", "floranhuntinggrounds", "glitchcastle", "humanprison", "aviantemple", "avianairship", "floranhell" ] versioning.config 10c10 < "ObjectEntity" : 5, --- > "ObjectEntity" : 6, 12c12 < "ItemDropEntity" : 2, --- > "ItemDropEntity" : 3, behaviors\monsters\boss\kluexboss\windattack.behavior 299a300,307 > }, > { > "title": "playSound", > "type": "action", > "name": "playSound", > "parameters": { > "sound": "windFire" > } behaviors\monsters\mission\cultistballista.behavior 4a5 > "/scripts/behavior.lua", 10d10 < "/scripts/behavior.lua", 23c23,24 < ] --- > ], > "rotationSpeed": 0.05 59,61c60,62 < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "title": "setNumber", > "type": "action", > "name": "setNumber", 63,66c64 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "number": 0 68,103c66,114 < "children": [ < { < "title": "dynamic", < "type": "composite", < "name": "dynamic", < "parameters": {}, < "children": [ < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "distance", < "type": "action", < "name": "distance", < "parameters": { < "from": "self", < "to": "firePosition" < }, < "output": { < "vector": "toFirePosition" < } < }, < { < "title": "breakVector", < "type": "action", < "name": "breakVector", < "parameters": { < "vector": "toFirePosition" --- > "output": { > "number": "angle" > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": -1, > "untilSuccess": false > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "findNpc", > "type": "action", > "name": "findNpc", > "parameters": { > "orderBy": "nearest", > "position": "self", > "range": 8, > "type": "cultistknight", > "orderby": "nearest" > } 105,115c116,198 < "output": { < "x": "fireX" < } < }, < { < "title": "greaterThan", < "type": "action", < "name": "greaterThan", < "parameters": { < "first": "fireX", < "second": 0 --- > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "distance", > "type": "action", > "name": "distance", > "parameters": { > "from": "self", > "to": "firePosition" > }, > "output": { > "vector": "toFirePosition" > } > }, > { > "title": "breakVector", > "type": "action", > "name": "breakVector", > "parameters": { > "vector": "toFirePosition" > }, > "output": { > "x": "fireX" > } > }, > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": "fireX", > "second": 0 > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "move", > "type": "body" > } > }, > { > "title": "move", > "type": "action", > "name": "move", > "parameters": { > "direction": -1, > "run": false > } > } > ] > } > ] 117,126c200 < } < ] < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 --- > ] 128,149c202,222 < "children": [ < { < "title": "findNpc", < "type": "action", < "name": "findNpc", < "parameters": { < "orderBy": "nearest", < "position": "self", < "range": 8, < "type": "cultistknight", < "orderby": "nearest" < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "setNumber", > "type": "action", > "name": "setNumber", > "parameters": { > "number": "angle" > }, > "output": { > "number": "startAngle" > } 151,159c224,230 < "children": [ < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "move", < "type": "body" < } --- > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 161,167c232,286 < { < "title": "move", < "type": "action", < "name": "move", < "parameters": { < "direction": -1, < "run": false --- > "children": [ > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > }, > "output": { > "ratio": "angleFactor" > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "lerp", > "type": "action", > "name": "lerp", > "parameters": { > "max": "startAngle", > "min": 0, > "ratio": "angleFactor" > }, > "output": { > "number": "angle" > } > }, > { > "title": "resetTransformationGroup", > "type": "action", > "name": "resetTransformationGroup", > "parameters": { > "transformationGroup": "cannon" > } > }, > { > "title": "rotateTransformationGroup", > "type": "action", > "name": "rotateTransformationGroup", > "parameters": { > "angle": "angle", > "transformationGroup": "cannon", > "rotationCenter": "" > } > } > ] 168a288,296 > ] > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "idle", > "type": "body" 170,191c298,303 < ] < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "idle", < "type": "body" --- > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 193,200c305,315 < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} < } < ] --- > ] > } > ] > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "idle", > "type": "body" 202,212d316 < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" 214,222c318,323 < "children": [ < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "idle", < "type": "body" < } --- > { > "title": "setNumber", > "type": "action", > "name": "setNumber", > "parameters": { > "number": "angle" 224,269c325,371 < { < "title": "setNumber", < "type": "action", < "name": "setNumber", < "parameters": { < "number": 0 < }, < "output": { < "number": "startAngle" < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "load", < "type": "cannon" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 < } < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": -1, < "success": -1 --- > "output": { > "number": "startAngle" > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "load", > "type": "cannon" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > }, > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "findNpc", > "type": "action", > "name": "findNpc", > "parameters": { > "orderBy": "nearest", > "position": "self", > "range": 8, > "type": "cultistknight", > "orderby": "nearest" > } 271,281c373,380 < "children": [ < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 10 < }, < "output": { < "ratio": "angleFactor" < } --- > { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 1, > "onFail": false, > "onSuccess": true 283c382 < { --- > "child": { 295,297c394,396 < "title": "lerp", < "type": "action", < "name": "lerp", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 299,301c398,401 < "max": "", < "min": "startAngle", < "ratio": "angleFactor" --- > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 303,323c403,649 < "output": { < "number": "angle" < } < }, < { < "title": "resetTransformationGroup", < "type": "action", < "name": "resetTransformationGroup", < "parameters": { < "transformationGroup": "cannon" < } < }, < { < "title": "rotateTransformationGroup", < "type": "action", < "name": "rotateTransformationGroup", < "parameters": { < "angle": "angle", < "transformationGroup": "cannon", < "rotationCenter": "" < } --- > "children": [ > { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": "angle", > "second": "" > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "multiply", > "type": "action", > "name": "multiply", > "parameters": { > "number": "dt", > "factor": "" > }, > "output": { > "result": "rotation" > } > }, > { > "title": "add", > "type": "action", > "name": "add", > "parameters": { > "addend": "rotation", > "number": "angle" > }, > "output": { > "result": "angle" > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "resetTransformationGroup", > "type": "action", > "name": "resetTransformationGroup", > "parameters": { > "transformationGroup": "cannon" > } > }, > { > "title": "rotateTransformationGroup", > "type": "action", > "name": "rotateTransformationGroup", > "parameters": { > "angle": "angle", > "transformationGroup": "cannon", > "rotationCenter": "" > } > } > ] > } > ] > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "vector": "", > "angle": "angle" > }, > "output": { > "vector": "spawnOffset" > } > }, > { > "title": "vecAdd", > "type": "action", > "name": "vecAdd", > "parameters": { > "first": "spawnOffset", > "second": "" > }, > "output": { > "vector": "spawnOffset" > } > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "spawnOffset", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "spawnOffset" > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "vector": [ > 1, > 0 > ], > "angle": "angle" > }, > "output": { > "vector": "aimVector" > } > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "aimVector", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "aimVector" > } > } > ] > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "fire", > "type": "cannon" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.2 > }, > "output": { > "ratio": "angleFactor" > } > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "aimVector": "aimVector", > "angle": 0, > "offset": "spawnOffset", > "position": "self", > "power": 10, > "projectileConfig": {}, > "projectileType": "ironarrow", > "scalePower": true, > "sourceEntity": "self", > "trackSource": false > } > }, > { > "title": "setVelocity", > "type": "action", > "name": "setVelocity", > "parameters": { > "velocity": [ > 20, > 20 > ] > } > } > ] 327c653,678 < ] --- > } > ] > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 329,362c680,702 < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "vecRotate", < "type": "action", < "name": "vecRotate", < "parameters": { < "vector": "", < "angle": "angle" < }, < "output": { < "vector": "spawnOffset" < } < }, < { < "title": "vecAdd", < "type": "action", < "name": "vecAdd", < "parameters": { < "first": "spawnOffset", < "second": "" < }, < "output": { < "vector": "spawnOffset" < } --- > "output": { > "ratio": "angleFactor" > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "lerp", > "type": "action", > "name": "lerp", > "parameters": { > "max": "startAngle", > "min": 0, > "ratio": "angleFactor" 364,377c704,705 < { < "title": "vecMultiply", < "type": "action", < "name": "vecMultiply", < "parameters": { < "first": "spawnOffset", < "second": [ < "facingDirection", < 1 < ] < }, < "output": { < "vector": "spawnOffset" < } --- > "output": { > "number": "angle" 379,389d706 < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" 391,420c708,713 < "children": [ < { < "title": "vecRotate", < "type": "action", < "name": "vecRotate", < "parameters": { < "vector": [ < 1, < 0 < ], < "angle": "angle" < }, < "output": { < "vector": "aimVector" < } < }, < { < "title": "vecMultiply", < "type": "action", < "name": "vecMultiply", < "parameters": { < "first": "aimVector", < "second": [ < "facingDirection", < 1 < ] < }, < "output": { < "vector": "aimVector" < } --- > { > "title": "resetTransformationGroup", > "type": "action", > "name": "resetTransformationGroup", > "parameters": { > "transformationGroup": "cannon" 422,438d714 < ] < }, < { < "title": "setAnimationState", < "type": "action", < "name": "setAnimationState", < "parameters": { < "state": "fire", < "type": "cannon" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.2 440,534c716,723 < "output": { < "ratio": "angleFactor" < } < }, < { < "title": "spawnProjectile", < "type": "action", < "name": "spawnProjectile", < "parameters": { < "aimVector": "aimVector", < "angle": 0, < "offset": "spawnOffset", < "position": "self", < "power": 10, < "projectileConfig": {}, < "projectileType": "ironarrow", < "scalePower": true, < "sourceEntity": "self", < "trackSource": false < } < }, < { < "title": "setVelocity", < "type": "action", < "name": "setVelocity", < "parameters": { < "velocity": [ < 20, < 20 < ] < } < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": -1, < "success": -1 < }, < "children": [ < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 < }, < "output": { < "ratio": "angleFactor" < } < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "lerp", < "type": "action", < "name": "lerp", < "parameters": { < "max": "startAngle", < "min": "", < "ratio": "angleFactor" < }, < "output": { < "number": "angle" < } < }, < { < "title": "resetTransformationGroup", < "type": "action", < "name": "resetTransformationGroup", < "parameters": { < "transformationGroup": "cannon" < } < }, < { < "title": "rotateTransformationGroup", < "type": "action", < "name": "rotateTransformationGroup", < "parameters": { < "angle": "angle", < "transformationGroup": "cannon", < "rotationCenter": "" < } < } < ] --- > { > "title": "rotateTransformationGroup", > "type": "action", > "name": "rotateTransformationGroup", > "parameters": { > "angle": "angle", > "transformationGroup": "cannon", > "rotationCenter": "" 536,542c725,731 < ] < } < ] < } < ] < } < ] --- > } > ] > } > ] > } > ] > } behaviors\monsters\modular\movement\flywander.behavior 7d6 < "/scripts/actions/math.lua", 8a8 > "/scripts/actions/math.lua", 91c91 < "title": "vecMultiply", --- > "title": "boundsCollision", 93c93 < "name": "vecMultiply", --- > "name": "boundsCollision", 95c95 < "first": [ --- > "dirVector": [ 98,118d97 < ], < "second": [ < 2, < 1 < ] < }, < "output": { < "vector": "forwardLine" < } < }, < { < "title": "lineTileCollision", < "type": "action", < "name": "lineTileCollision", < "parameters": { < "position": "self", < "offset": "forwardLine", < "collisionType": [ < "Null", < "Block", < "Dynamic" behaviors\npc\unique\cultistinvader.behavior 2a3 > "description": "", 47,73d47 < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, < "children": [ < { < "title": "NPC Hostile Tracking", < "type": "module", < "name": "hostiletracking", < "parameters": { < "trackingRange": 100 < } < }, < { < "title": "NPC Combat", < "type": "module", < "name": "npccombat", < "parameters": { < "combatParameters": "" < } < } < ] < }, < { 248a223,262 > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "loadUniqueEntity", > "type": "action", > "name": "loadUniqueEntity", > "parameters": { > "uniqueId": "ballistafireposition" > }, > "output": { > "entity": "firePosition" > } > }, > { > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "firePosition", > "xRange": 2, > "position": "self" > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > }, > { 257a272,298 > } > } > ] > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "NPC Hostile Tracking", > "type": "module", > "name": "hostiletracking", > "parameters": { > "trackingRange": 100 > } > }, > { > "title": "NPC Combat", > "type": "module", > "name": "npccombat", > "parameters": { > "combatParameters": "" behaviors\sequences\glitchmission\baronstart.behavior 399c399 < "name": "devstatuegeorge" --- > "name": "bardoor2" cinematics\intro\introstage.cinematic 1877c1877 < "frame" : 2, --- > "frame" : 6, 1913c1913 < "frame" : 8, --- > "frame" : 12, 1949c1949 < "frame" : 16, --- > "frame" : 20, 1985c1985 < "frame" : 20, --- > "frame" : 16, 2021c2021 < "frame" : 10, --- > "frame" : 8, cinematics\intro\introstart.cinematic 161c161 < "frame" : 5, --- > "frame" : 8, dungeons\hylotl\hylotloceancity\citylayout1.json [TMX file differences are left out for huge size.] dungeons\hylotl\hylotloceancity\citylayout2.json [TMX file differences are left out for huge size.] dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] dungeons\missions\glitchmissions\glitchmission1.json [TMX file differences are left out for huge size.] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] interface\confirmation\teleportconfirmation.config 29,30c29,30 < "subtitle" : "Arena Battle : The Golden Trio", < "message" : "\n\nAre you sure you're ready to enter the arena against the Golden Trio? Once inside the only escape is victory.", --- > "subtitle" : "Arena Battle : The Gladiators", > "message" : "\n\nAre you sure you're ready to enter the arena against the trio of Gladiators? Once inside the only escape is victory.", 37,38c37,38 < "subtitle" : "Arena Battle : Pet Tamer Olaf", < "message" : "\n\nAre you sure you're ready to enter the arena against Olaf? Once inside the only escape is victory.", --- > "subtitle" : "Arena Battle : Pet Tamer Volo", > "message" : "\n\nAre you sure you're ready to enter the arena against Volo the pet tamer? Once inside the only escape is victory.", 45,46c45,46 < "subtitle" : "Arena Championship: Fire Knight", < "message" : "\n\nAre you sure you're ready to enter the arena against the Fire Knight? Once inside the only escape is victory.", --- > "subtitle" : "Arena Champion: Templar Inferno", > "message" : "\n\nAre you sure you're ready to enter the arena against the fire knight, Templar Inferno? Once inside the only escape is victory.", interface\optionsmenu\optionsmenu.config 177,178c177,178 < "base" : "/interface/escmenu/escbutton.png", < "hover" : "/interface/escmenu/escbuttonhover.png" --- > "base" : "/interface/optionsmenu/controlsbutton.png", > "hover" : "/interface/optionsmenu/controlsbuttonhover.png" interface\windowconfig\charselection.config 8a9,15 > "bgShine" : { > "type" : "image", > "file" : "/interface/title/shine.png", > "position" : [0, 0], > "zlevel" : -10 > }, > 25c32 < "position" : [-1, 193] --- > "position" : [23, 194] 30c37 < "position" : [-1, 143] --- > "position" : [23, 144] 35c42 < "position" : [-1, 93] --- > "position" : [23, 94] 40c47 < "position" : [-1, 43] --- > "position" : [23, 44] items\active\effects\chain.lua 1a2 > require "/scripts/util.lua" 6,10c7,11 < self.chain = activeItemAnimation.animationParameter("chain") < if self.chain then < -- sb.logInfo("Building drawables for chain %s", self.chain) < local startPosition = vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(self.chain.startOffset)) < local endPosition = vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(self.chain.endOffset)) --- > self.chains = activeItemAnimation.animationParameter("chains") or {} > for _, chain in pairs(self.chains) do > -- sb.logInfo("Building drawables for chain %s", chain) > local startPosition = chain.startPosition or vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(chain.startOffset)) > local endPosition = chain.endPosition or vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(chain.endOffset)) 13c14 < local segmentCount = math.floor((vec2.mag(chainVec) / self.chain.segmentSize) + 0.5) --- > local segmentCount = math.floor((vec2.mag(chainVec) / chain.segmentSize) + 0.5) 17c18 < local segmentOffset = vec2.mul(vec2.norm(chainVec), self.chain.segmentSize) --- > local segmentOffset = vec2.mul(vec2.norm(chainVec), chain.segmentSize) 20,21c21,26 < local image = self.chain.segmentImage < if i == segmentCount and self.chain.endSegmentImage then image = self.chain.endSegmentImage end --- > local image = chain.segmentImage > if i == segmentCount and chain.endSegmentImage then image = chain.endSegmentImage end > if chain.taper then > local taperFactor = 1 - (i / segmentCount) * chain.taper > image = image .. "?scale=1.0=" .. util.round(taperFactor, 5) > end 28c33 < fullbright = self.chain.fullbright or false --- > fullbright = chain.fullbright or false 33d37 < -- sb.logInfo("Drawables are %s", drawables) items\active\weapons\weapon.lua 216c216 < function WeaponAbility:new(abilityConfig, stances) --- > function WeaponAbility:new(abilityConfig) 218c218 < newAbility.stances = stances or {} --- > newAbility.stances = newAbility.stances or {} 231c231,244 < function getAltAbility(elementalType) --- > function getAbility(abilityConfig) > for _, script in ipairs(abilityConfig.scripts) do > require(script) > end > local class = _ENV[abilityConfig.class] > return class:new(abilityConfig) > end > > function getPrimaryAbility() > local primaryAbilityConfig = config.getParameter("primaryAbility") > return getAbility(primaryAbilityConfig) > end > > function getAltAbility() 234,237c247 < for _, script in ipairs(altAbilityConfig.scripts) do < require(script) < end < return setupAltAbility(altAbilityConfig, elementalType) --- > return getAbility(altAbilityConfig) items\active\weapons\fist\boxingglove.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/fist/punch.lua"], > "class" : "Punch", > 44,71d46 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 45, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.25, -0.575], < < "allowRotate" : false, < "allowFlip" : true, < < "frontArmFrame" : "run.2", < "backArmFrame" : "jump.3" < }, < "windup" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.625, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1" 73,99c48,101 < "windup2" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.75, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1", < < "recoil" : true < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [0.125, -0.25], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "rotation", < "backArmFrame" : "rotation" --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 45, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.25, -0.575], > > "allowRotate" : false, > "allowFlip" : true, > > "frontArmFrame" : "run.2", > "backArmFrame" : "jump.3" > }, > "windup" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.625, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1" > }, > "windup2" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.75, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1", > > "recoil" : true > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [0.125, -0.25], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "rotation", > "backArmFrame" : "rotation" > } items\active\weapons\fist\brassknuckles.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/fist/punch.lua"], > "class" : "Punch", > 44,71d46 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 45, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.25, -0.575], < < "allowRotate" : false, < "allowFlip" : true, < < "frontArmFrame" : "run.2", < "backArmFrame" : "jump.3" < }, < "windup" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.625, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1" 73,99c48,101 < "windup2" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.75, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1", < < "recoil" : true < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [0.125, -0.25], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "rotation", < "backArmFrame" : "rotation" --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 45, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.25, -0.575], > > "allowRotate" : false, > "allowFlip" : true, > > "frontArmFrame" : "run.2", > "backArmFrame" : "jump.3" > }, > "windup" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.625, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1" > }, > "windup2" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.75, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1", > > "recoil" : true > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [0.125, -0.25], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "rotation", > "backArmFrame" : "rotation" > } items\active\weapons\fist\clawglove.activeitem 39c39,42 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/fist/punch.lua"], > "class" : "Punch", > 49,76d51 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 45, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.25, -0.575], < < "allowRotate" : false, < "allowFlip" : true, < < "frontArmFrame" : "run.2", < "backArmFrame" : "jump.3" < }, < "windup" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.625, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1" 78,104c53,106 < "windup2" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.75, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1", < < "recoil" : true < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [0.125, -0.25], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "rotation", < "backArmFrame" : "rotation" --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 45, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.25, -0.575], > > "allowRotate" : false, > "allowFlip" : true, > > "frontArmFrame" : "run.2", > "backArmFrame" : "jump.3" > }, > "windup" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.625, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1" > }, > "windup2" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.75, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1", > > "recoil" : true > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [0.125, -0.25], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "rotation", > "backArmFrame" : "rotation" > } items\active\weapons\fist\fistweapon.lua 5d4 < require "/items/active/weapons/fist/punch.lua" 12,13c11,12 < self.primaryAttack = Punch:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(self.primaryAttack) --- > self.primaryAbility = getPrimaryAbility() > self.weapon:addAbility(self.primaryAbility) 61c60 < if self.primaryAttack:canStartAttack() then --- > if self.primaryAbility:canStartAttack() then 66c65 < self.primaryAttack:startAttack() --- > self.primaryAbility:startAttack() 77,78c76,77 < if self.primaryAttack:canStartAttack() then < self.primaryAttack:startAttack() --- > if self.primaryAbility:canStartAttack() then > self.primaryAbility:startAttack() 110c109 < if self.primaryAttack:canStartAttack() then --- > if self.primaryAbility:canStartAttack() then 115c114 < self.primaryAttack:startAttack() --- > self.primaryAbility:startAttack() 143c142 < self.primaryAttack.cooldownTimer = self.comboCooldown --- > self.primaryAbility.cooldownTimer = self.comboCooldown items\active\weapons\fist\gauntlet.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/fist/punch.lua"], > "class" : "Punch", > 44,71d46 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 45, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.25, -0.575], < < "allowRotate" : false, < "allowFlip" : true, < < "frontArmFrame" : "run.2", < "backArmFrame" : "jump.3" < }, < "windup" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.625, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1" 73,99c48,101 < "windup2" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.75, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1", < < "recoil" : true < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [0.125, -0.25], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "rotation", < "backArmFrame" : "rotation" --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 45, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.25, -0.575], > > "allowRotate" : false, > "allowFlip" : true, > > "frontArmFrame" : "run.2", > "backArmFrame" : "jump.3" > }, > "windup" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.625, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1" > }, > "windup2" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.75, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1", > > "recoil" : true > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [0.125, -0.25], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "rotation", > "backArmFrame" : "rotation" > } items\active\weapons\fist\stunglove.activeitem 55c55,58 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/fist/punch.lua"], > "class" : "Punch", > 65,92d67 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 45, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.25, -0.575], < < "allowRotate" : false, < "allowFlip" : true, < < "frontArmFrame" : "run.2", < "backArmFrame" : "jump.3" < }, < "windup" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.625, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1" 94,120c69,122 < "windup2" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.75, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1", < < "recoil" : true < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [0.125, -0.25], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "rotation", < "backArmFrame" : "rotation" --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 45, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.25, -0.575], > > "allowRotate" : false, > "allowFlip" : true, > > "frontArmFrame" : "run.2", > "backArmFrame" : "jump.3" > }, > "windup" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.625, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1" > }, > "windup2" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.75, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1", > > "recoil" : true > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [0.125, -0.25], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "rotation", > "backArmFrame" : "rotation" > } items\active\weapons\fist\vinefist.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/fist/punch.lua"], > "class" : "Punch", > 44,71d46 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 45, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.25, -0.575], < < "allowRotate" : false, < "allowFlip" : true, < < "frontArmFrame" : "run.2", < "backArmFrame" : "jump.3" < }, < "windup" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.625, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1" 73,99c48,101 < "windup2" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [-0.75, -0.125], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "swimIdle.1", < "backArmFrame" : "swim.1", < < "recoil" : true < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponRotationCenter" : [-1.0, 0.0], < "weaponOffset" : [0.125, -0.25], < < "allowRotate" : false, < "allowFlip" : false, < < "frontArmFrame" : "rotation", < "backArmFrame" : "rotation" --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 45, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.25, -0.575], > > "allowRotate" : false, > "allowFlip" : true, > > "frontArmFrame" : "run.2", > "backArmFrame" : "jump.3" > }, > "windup" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.625, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1" > }, > "windup2" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [-0.75, -0.125], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "swimIdle.1", > "backArmFrame" : "swim.1", > > "recoil" : true > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponRotationCenter" : [-1.0, 0.0], > "weaponOffset" : [0.125, -0.25], > > "allowRotate" : false, > "allowFlip" : false, > > "frontArmFrame" : "rotation", > "backArmFrame" : "rotation" > } items\active\weapons\melee\meleeweapon.lua 16,17c16,17 < local primaryAttack = MeleeSlash:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(primaryAttack) --- > local primaryAbility = getPrimaryAbility() > self.weapon:addAbility(primaryAbility) 33c33 < end \ No newline at end of file --- > end items\active\weapons\melee\altabilities\broadsword\bladecharge\bladecharge.altability 52a53 > "class" : "BladeCharge", items\active\weapons\melee\altabilities\broadsword\bladecharge\bladecharge.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local bladeCharge = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > BladeCharge = WeaponAbility:new() 7,8c6,7 < function bladeCharge:init() < bladeCharge:reset() --- > function BladeCharge:init() > BladeCharge:reset() 10,11c9,10 < self.cooldownTimer = 0 < end --- > self.cooldownTimer = 0 > end 13,14c12,13 < function bladeCharge:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function BladeCharge:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 18,20c17,18 < if self.cooldownTimer == 0 and not self.weapon.currentAbility and not status.resourceLocked("energy") and self.fireMode == "alt" then < self:setState(self.windup) < end --- > if self.cooldownTimer == 0 and not self.weapon.currentAbility and not status.resourceLocked("energy") and self.fireMode == "alt" then > self:setState(self.windup) 21a20 > end 23,24c22,23 < function bladeCharge:windup() < self.weapon:setStance(self.stances.windup) --- > function BladeCharge:windup() > self.weapon:setStance(self.stances.windup) 26,27c25,26 < animator.setAnimationState("bladeCharge", "charge") < animator.setParticleEmitterActive("bladeCharge", true) --- > animator.setAnimationState("bladeCharge", "charge") > animator.setParticleEmitterActive("bladeCharge", true) 29,35c28,32 < local chargeTimer = self.chargeTime < while self.fireMode == "alt" do < chargeTimer = math.max(0, chargeTimer - self.dt) < if chargeTimer == 0 then < animator.setGlobalTag("bladeDirectives", "border=3;"..self.chargeBorder..";00000000") < end < coroutine.yield() --- > local chargeTimer = self.chargeTime > while self.fireMode == "alt" do > chargeTimer = math.max(0, chargeTimer - self.dt) > if chargeTimer == 0 then > animator.setGlobalTag("bladeDirectives", "border=3;"..self.chargeBorder..";00000000") 36a34,35 > coroutine.yield() > end 38,40c37,38 < if chargeTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then < self:setState(self.slash) < end --- > if chargeTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then > self:setState(self.slash) 41a40 > end 43,55c42,44 < function bladeCharge:slash() < self.weapon:setStance(self.stances.slash) < self.weapon:updateAim() < < animator.setAnimationState("bladeCharge", "idle") < animator.setParticleEmitterActive("bladeCharge", false) < animator.setAnimationState("swoosh", "fire") < animator.playSound("chargedSwing") < < util.wait(self.stances.slash.duration, function() < local damageArea = partDamageArea("swoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) --- > function BladeCharge:slash() > self.weapon:setStance(self.stances.slash) > self.weapon:updateAim() 57,58c46,49 < self.cooldownTimer = self.cooldownTime < end --- > animator.setAnimationState("bladeCharge", "idle") > animator.setParticleEmitterActive("bladeCharge", false) > animator.setAnimationState("swoosh", "fire") > animator.playSound("chargedSwing") 60,64c51,54 < function bladeCharge:reset() < animator.setGlobalTag("bladeDirectives", "") < animator.setParticleEmitterActive("bladeCharge", false) < animator.setAnimationState("bladeCharge", "idle") < end --- > util.wait(self.stances.slash.duration, function() > local damageArea = partDamageArea("swoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) 66,68c56,63 < function bladeCharge:uninit() < bladeCharge:reset() < end --- > self.cooldownTimer = self.cooldownTime > end > > function BladeCharge:reset() > animator.setGlobalTag("bladeDirectives", "") > animator.setParticleEmitterActive("bladeCharge", false) > animator.setAnimationState("bladeCharge", "idle") > end 70c65,66 < return bladeCharge --- > function BladeCharge:uninit() > self:reset() items\active\weapons\melee\altabilities\broadsword\downstab\downstab.altability 12a13,14 > "class" : "Downstab", > 49c51 < } \ No newline at end of file --- > } items\active\weapons\melee\altabilities\broadsword\downstab\downstab.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local downstab = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Downstab = WeaponAbility:new() 8,10c7,9 < function downstab:init() < self.cooldownTimer = self.cooldownTime < end --- > function Downstab:init() > self.cooldownTimer = self.cooldownTime > end 12,13c11,12 < function downstab:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function Downstab:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 15c14 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 17,22c16,21 < if not self.weapon.currentAbility < and self.cooldownTimer == 0 < and self.fireMode == "alt" < and not mcontroller.onGround() < and not status.statPositive("activeMovementAbilities") < and status.overConsumeResource("energy", self.energyUsage) then --- > if not self.weapon.currentAbility > and self.cooldownTimer == 0 > and self.fireMode == "alt" > and not mcontroller.onGround() > and not status.statPositive("activeMovementAbilities") > and status.overConsumeResource("energy", self.energyUsage) then 24,25c23 < self:setState(self.hold) < end --- > self:setState(self.hold) 26a25 > end 28,29c27,28 < function downstab:hold() < self.weapon:setStance(self.stances.hold) --- > function Downstab:hold() > self.weapon:setStance(self.stances.hold) 31,33c30,32 < mcontroller.controlParameters({ < airForce = self.holdAirControl < }) --- > mcontroller.controlParameters({ > airForce = self.holdAirControl > }) 35c34 < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) --- > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 37c36 < util.wait(self.stances.hold.duration) --- > util.wait(self.stances.hold.duration) 39,43c38,39 < while mcontroller.yVelocity() > self.stabVelocity and not mcontroller.onGround() do < coroutine.yield() < end < < self:setState(self.stab) --- > while mcontroller.yVelocity() > self.stabVelocity and not mcontroller.onGround() do > coroutine.yield() 46,69c42,43 < function downstab:stab() < self.weapon:setStance(self.stances.stab) < self.weapon:updateAim() < < animator.playSound("downstab") < < local energyDepleted = false < local damageListener = damageListener("inflictedHits", function() < mcontroller.setYVelocity(self.bounceYVelocity) < if status.overConsumeResource("energy", self.energyUsage) then < self:setState(self.hold) < else < energyDepleted = true < end < end) < < while self.fireMode == "alt" and not mcontroller.onGround() do < local damageArea = partDamageArea("blade") < self.weapon:setDamage(self.damageConfig, damageArea) < if mcontroller.yVelocity() > 0 then < self:setState(self.hold) < end < < damageListener:update() --- > self:setState(self.stab) > end 71c45,59 < if energyDepleted then return end --- > function Downstab:stab() > self.weapon:setStance(self.stances.stab) > self.weapon:updateAim() > > animator.playSound("downstab") > > local energyDepleted = false > local damageListener = damageListener("inflictedHits", function() > mcontroller.setYVelocity(self.bounceYVelocity) > if status.overConsumeResource("energy", self.energyUsage) then > self:setState(self.hold) > else > energyDepleted = true > end > end) 73c61,65 < coroutine.yield() --- > while self.fireMode == "alt" and not mcontroller.onGround() do > local damageArea = partDamageArea("blade") > self.weapon:setDamage(self.damageConfig, damageArea) > if mcontroller.yVelocity() > 0 then > self:setState(self.hold) 75d66 < end 77,79c68,72 < function downstab:uninit() < status.clearPersistentEffects("movementAbility") < self.cooldownTimer = self.cooldownTime --- > damageListener:update() > > if energyDepleted then return end > > coroutine.yield() 80a74 > end 82c76,78 < return downstab --- > function Downstab:uninit() > status.clearPersistentEffects("movementAbility") > self.cooldownTimer = self.cooldownTime items\active\weapons\melee\altabilities\broadsword\giantsword\giantsword.altability 172a173,174 > "class" : "GiantBladeAttack", > items\active\weapons\melee\altabilities\broadsword\giantsword\giantsword.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local giantBladeAttack = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > GiantBladeAttack = WeaponAbility:new() 7,42c6,39 < function giantBladeAttack:init() < self.cooldownTimer = self.cooldownTime < self:reset() < end < < function giantBladeAttack:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) < < if self.fireMode == "alt" and self.weapon.currentState == nil and self.cooldownTimer == 0 and not status.resourceLocked("energy")then < self:setState(self.windup) < end < end < < function giantBladeAttack:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < animator.setAnimationState("giantBlade", "charge") < animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", true) < animator.playSound(self.weapon.elementalType.."charge") < < local bladeState = "charge" < local chargeTimer = self.chargeTime < while self.fireMode == "alt" do < -- manually update sounds so that we can use elemental variations < local newState = animator.animationState("giantBlade") < if newState ~= bladeState then < if newState == "fullwindup" then < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.playSound(self.weapon.elementalType.."fullwindup") < elseif newState == "full" then < animator.playSound(self.weapon.elementalType.."full", -1) < end < bladeState = newState --- > function GiantBladeAttack:init() > self.cooldownTimer = self.cooldownTime > self:reset() > end > > function GiantBladeAttack:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) > > if self.fireMode == "alt" and self.weapon.currentState == nil and self.cooldownTimer == 0 and not status.resourceLocked("energy")then > self:setState(self.windup) > end > end > > function GiantBladeAttack:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() > > animator.setAnimationState("giantBlade", "charge") > animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", true) > animator.playSound(self.weapon.elementalType.."charge") > > local bladeState = "charge" > local chargeTimer = self.chargeTime > while self.fireMode == "alt" do > -- manually update sounds so that we can use elemental variations > local newState = animator.animationState("giantBlade") > if newState ~= bladeState then > if newState == "fullwindup" then > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.playSound(self.weapon.elementalType.."fullwindup") > elseif newState == "full" then > animator.playSound(self.weapon.elementalType.."full", -1) 44,46c41 < < chargeTimer = math.max(0, chargeTimer - self.dt) < coroutine.yield() --- > bladeState = newState 49,51c44,45 < if chargeTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then < self:setState(self.slash) < end --- > chargeTimer = math.max(0, chargeTimer - self.dt) > coroutine.yield() 54,68c48,49 < function giantBladeAttack:slash() < self.weapon:setStance(self.stances.slash) < self.weapon:updateAim() < < animator.setAnimationState("giantSwoosh", "slash") < animator.playSound("fire") < animator.stopAllSounds(self.weapon.elementalType.."full") < animator.stopAllSounds(self.weapon.elementalType.."charge") < < util.wait(self.stances.slash.duration, function(dt) < local damageArea = partDamageArea("giantswoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) < < self.cooldownTimer = self.cooldownTime --- > if chargeTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then > self:setState(self.slash) 69a51 > end 71,76c53,55 < function giantBladeAttack:reset() < animator.setAnimationState("giantBlade", "idle") < animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", false) < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") < end --- > function GiantBladeAttack:slash() > self.weapon:setStance(self.stances.slash) > self.weapon:updateAim() 78,80c57,75 < function giantBladeAttack:uninit() < self:reset() < end --- > animator.setAnimationState("giantSwoosh", "slash") > animator.playSound("fire") > animator.stopAllSounds(self.weapon.elementalType.."full") > animator.stopAllSounds(self.weapon.elementalType.."charge") > > util.wait(self.stances.slash.duration, function(dt) > local damageArea = partDamageArea("giantswoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > self.cooldownTimer = self.cooldownTime > end > > function GiantBladeAttack:reset() > animator.setAnimationState("giantBlade", "idle") > animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", false) > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") > end 82c77,78 < return giantBladeAttack --- > function GiantBladeAttack:uninit() > self:reset() items\active\weapons\melee\altabilities\broadsword\parry\parry.altability 61a62,63 > "class" : "Parry", > items\active\weapons\melee\altabilities\broadsword\parry\parry.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local parry = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Parry = WeaponAbility:new() 8,9c7,21 < function parry:init() < self.cooldownTimer = 0 --- > function Parry:init() > self.cooldownTimer = 0 > end > > function Parry:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) > > if self.weapon.currentAbility == nil > and fireMode == "alt" > and self.cooldownTimer == 0 > and status.overConsumeResource("energy", self.energyUsage) then > > self:setState(self.parry) 10a23 > end 12,44c25,42 < function parry:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) < < if self.weapon.currentAbility == nil < and fireMode == "alt" < and self.cooldownTimer == 0 < and status.overConsumeResource("energy", self.energyUsage) then < < self:setState(self.parry) < end < end < < function parry:parry() < self.weapon:setStance(self.stances.parry) < self.weapon:updateAim() < < status.setPersistentEffects("broadswordParry", {{stat = "shieldHealth", amount = self.shieldHealth}}) < < local blockPoly = animator.partPoly("parryShield", "shieldPoly") < activeItem.setItemShieldPolys({blockPoly}) < < animator.setAnimationState("parryShield", "active") < animator.playSound("guard") < < local damageListener = damageListener("damageTaken", function(notifications) < for _,notification in pairs(notifications) do < if notification.sourceEntityId ~= -65536 and notification.damage == 0 then < animator.playSound("parry") < animator.setAnimationState("parryShield", "block") < return < end --- > function Parry:parry() > self.weapon:setStance(self.stances.parry) > self.weapon:updateAim() > > status.setPersistentEffects("broadswordParry", {{stat = "shieldHealth", amount = self.shieldHealth}}) > > local blockPoly = animator.partPoly("parryShield", "shieldPoly") > activeItem.setItemShieldPolys({blockPoly}) > > animator.setAnimationState("parryShield", "active") > animator.playSound("guard") > > local damageListener = damageListener("damageTaken", function(notifications) > for _,notification in pairs(notifications) do > if notification.sourceEntityId ~= -65536 and notification.damage == 0 then > animator.playSound("parry") > animator.setAnimationState("parryShield", "block") > return 46,63c44,45 < end) < < util.wait(self.parryTime, function(dt) < --Interrupt when running out of shield stamina < if not status.resourcePositive("shieldStamina") then return true end < < damageListener:update() < end) < < self.cooldownTimer = self.cooldownTime < activeItem.setItemShieldPolys({}) < end < < function parry:reset() < animator.setAnimationState("parryShield", "inactive") < status.clearPersistentEffects("broadswordParry") < activeItem.setItemShieldPolys({}) < end --- > end > end) 65,67c47,62 < function parry:uninit() < self:reset() < end --- > util.wait(self.parryTime, function(dt) > --Interrupt when running out of shield stamina > if not status.resourcePositive("shieldStamina") then return true end > > damageListener:update() > end) > > self.cooldownTimer = self.cooldownTime > activeItem.setItemShieldPolys({}) > end > > function Parry:reset() > animator.setAnimationState("parryShield", "inactive") > status.clearPersistentEffects("broadswordParry") > activeItem.setItemShieldPolys({}) > end 69c64,65 < return parry --- > function Parry:uninit() > self:reset() items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.altability 56a57 > "class" : "RisingSlash", items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local risingSlash = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > RisingSlash = WeaponAbility:new() 7,8c6,7 < function risingSlash:init() < self:reset() --- > function RisingSlash:init() > self:reset() 10,11c9,10 < self.cooldownTimer = 0 < end --- > self.cooldownTimer = 0 > end 13,14c12,13 < function risingSlash:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function RisingSlash:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 18,22c17,21 < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and self.fireMode == "alt" < and not status.statPositive("activeMovementAbilities") < and status.overConsumeResource("energy", self.energyUsage) then --- > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and self.fireMode == "alt" > and not status.statPositive("activeMovementAbilities") > and status.overConsumeResource("energy", self.energyUsage) then 24,25c23 < self:setState(self.windup) < end --- > self:setState(self.windup) 26a25 > end 28,30c27,29 < function risingSlash:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() --- > function RisingSlash:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 32c31 < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) --- > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 34c33 < animator.setGlobalTag("directives", "?flipx") --- > animator.setGlobalTag("directives", "?flipx") 36,38c35,37 < util.wait(self.stances.windup.duration, function() < return status.resourceLocked("energy") < end) --- > util.wait(self.stances.windup.duration, function() > return status.resourceLocked("energy") > end) 40,41c39,40 < self:setState(self.slash) < end --- > self:setState(self.slash) > end 43,55c42,44 < function risingSlash:slash() < self.weapon:setStance(self.stances.slash) < self.weapon:updateAim() < < animator.setAnimationState("risingSwoosh", "slash") < animator.playSound("upswing") < < util.wait(self.stances.slash.duration, function() < mcontroller.controlApproachYVelocity(self.dashSpeed, self.dashControlForce) < < local damageArea = partDamageArea("risingSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) --- > function RisingSlash:slash() > self.weapon:setStance(self.stances.slash) > self.weapon:updateAim() 57,59c46,47 < self.cooldownTimer = self.cooldownTime < self:setState(self.freeze) < end --- > animator.setAnimationState("risingSwoosh", "slash") > animator.playSound("upswing") 61,73c49,50 < function risingSlash:freeze() < self.weapon:setStance(self.stances.freeze) < self.weapon:updateAim() < < util.wait(self.stances.freeze.duration, function() < mcontroller.setVelocity({0,0}) < end) < end < < function risingSlash:reset() < animator.setGlobalTag("directives", "") < status.clearPersistentEffects("movementAbility") < end --- > util.wait(self.stances.slash.duration, function() > mcontroller.controlApproachYVelocity(self.dashSpeed, self.dashControlForce) 75,77c52,72 < function risingSlash:uninit() < self:reset() < end --- > local damageArea = partDamageArea("risingSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > self.cooldownTimer = self.cooldownTime > self:setState(self.freeze) > end > > function RisingSlash:freeze() > self.weapon:setStance(self.stances.freeze) > self.weapon:updateAim() > > util.wait(self.stances.freeze.duration, function() > mcontroller.setVelocity({0,0}) > end) > end > > function RisingSlash:reset() > animator.setGlobalTag("directives", "") > status.clearPersistentEffects("movementAbility") > end 79c74,75 < return risingSlash --- > function RisingSlash:uninit() > self:reset() items\active\weapons\melee\altabilities\broadsword\spinslash\spinslash.altability 55a56,57 > "class" : "SpinSlash", > items\active\weapons\melee\altabilities\broadsword\spinslash\spinslash.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local spinSlash = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > SpinSlash = WeaponAbility:new() 7,10c6,9 < function spinSlash:init() < self.cooldownTimer = self.cooldownTime < self:reset() < end --- > function SpinSlash:init() > self.cooldownTimer = self.cooldownTime > self:reset() > end 12,13c11,12 < function spinSlash:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function SpinSlash:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 15c14 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 17,23c16,21 < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and self.fireMode == "alt" then < < self:setState(self.slash) < end --- > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and self.fireMode == "alt" then > > self:setState(self.slash) 24a23 > end 26,36c25,27 < function spinSlash:slash() < local slash = coroutine.create(self.slashAction) < coroutine.resume(slash, self) < < local movement = function() < mcontroller.controlModifiers({runningSuppressed = true}) < < if self.hover then < mcontroller.controlApproachYVelocity(self.hoverYSpeed, self.hoverForce) < end < end --- > function SpinSlash:slash() > local slash = coroutine.create(self.slashAction) > coroutine.resume(slash, self) 38,41c29,30 < while util.parallel(slash, movement) do < coroutine.yield() < end < end --- > local movement = function() > mcontroller.controlModifiers({runningSuppressed = true}) 43,71c32,33 < function spinSlash:slashAction() < local armRotationOffset = math.random(1, #self.armRotationOffsets) < while self.fireMode == "alt" do < if not status.overConsumeResource("energy", self.energyUsage * (self.stances.windup.duration + self.stances.slash.duration)) then return end < < self.weapon:setStance(self.stances.windup) < self.weapon.relativeArmRotation = self.weapon.relativeArmRotation - util.toRadians(self.armRotationOffsets[armRotationOffset]) < self.weapon:updateAim() < < util.wait(self.stances.windup.duration, function() < return status.resourceLocked("energy") < end) < < self.weapon.aimDirection = -self.weapon.aimDirection < < self.weapon:setStance(self.stances.slash) < self.weapon.relativeArmRotation = self.weapon.relativeArmRotation + util.toRadians(self.armRotationOffsets[armRotationOffset]) < self.weapon:updateAim() < < armRotationOffset = armRotationOffset + 1 < if armRotationOffset > #self.armRotationOffsets then armRotationOffset = 1 end < < animator.setAnimationState("spinSwoosh", "fire", true) < animator.playSound("flail") < < util.wait(self.stances.slash.duration, function() < local damageArea = partDamageArea("spinSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) --- > if self.hover then > mcontroller.controlApproachYVelocity(self.hoverYSpeed, self.hoverForce) 73,74d34 < < self.cooldownTimer = self.cooldownTime 77,78c37,38 < function spinSlash:reset() < animator.setGlobalTag("swooshDirectives", "") --- > while util.parallel(slash, movement) do > coroutine.yield() 79a40,49 > end > > function SpinSlash:slashAction() > local armRotationOffset = math.random(1, #self.armRotationOffsets) > while self.fireMode == "alt" do > if not status.overConsumeResource("energy", self.energyUsage * (self.stances.windup.duration + self.stances.slash.duration)) then return end > > self.weapon:setStance(self.stances.windup) > self.weapon.relativeArmRotation = self.weapon.relativeArmRotation - util.toRadians(self.armRotationOffsets[armRotationOffset]) > self.weapon:updateAim() 81,82c51,70 < function spinSlash:uninit() < self:reset() --- > util.wait(self.stances.windup.duration, function() > return status.resourceLocked("energy") > end) > > self.weapon.aimDirection = -self.weapon.aimDirection > > self.weapon:setStance(self.stances.slash) > self.weapon.relativeArmRotation = self.weapon.relativeArmRotation + util.toRadians(self.armRotationOffsets[armRotationOffset]) > self.weapon:updateAim() > > armRotationOffset = armRotationOffset + 1 > if armRotationOffset > #self.armRotationOffsets then armRotationOffset = 1 end > > animator.setAnimationState("spinSwoosh", "fire", true) > animator.playSound("flail") > > util.wait(self.stances.slash.duration, function() > local damageArea = partDamageArea("spinSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) 85c73,81 < return spinSlash --- > self.cooldownTimer = self.cooldownTime > end > > function SpinSlash:reset() > animator.setGlobalTag("swooshDirectives", "") > end > > function SpinSlash:uninit() > self:reset() items\active\weapons\melee\altabilities\broadsword\spinslash\superspinslash.altability 55a56,57 > "class" : "SuperSpinSlash", > items\active\weapons\melee\altabilities\broadsword\spinslash\superspinslash.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local spinSlash = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > SuperSpinSlash = WeaponAbility:new() 7,10c6,9 < function spinSlash:init() < self.cooldownTimer = self.cooldownTime < self:reset() < end --- > function SuperSpinSlash:init() > self.cooldownTimer = self.cooldownTime > self:reset() > end 12,13c11,12 < function spinSlash:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function SuperSpinSlash:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 15c14 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 17,24c16,22 < if self.weapon.currentAbility == nil < and self.fireMode == "alt" < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and not status.statPositive("activeMovementAbilities") then < < self:setState(self.slash) < end --- > if self.weapon.currentAbility == nil > and self.fireMode == "alt" > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and not status.statPositive("activeMovementAbilities") then > > self:setState(self.slash) 25a24 > end 27,28c26,27 < function spinSlash:slash() < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) --- > function SuperSpinSlash:slash() > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 30,31c29,30 < local slash = coroutine.create(self.slashAction) < coroutine.resume(slash, self) --- > local slash = coroutine.create(self.slashAction) > coroutine.resume(slash, self) 33,34c32,33 < local movement = function() < mcontroller.controlModifiers({runningSuppressed = true}) --- > local movement = function() > mcontroller.controlModifiers({runningSuppressed = true}) 36,38c35,36 < if self.hover then < mcontroller.controlApproachYVelocity(self.hoverYSpeed, self.hoverForce) < end --- > if self.hover then > mcontroller.controlApproachYVelocity(self.hoverYSpeed, self.hoverForce) 39a38 > end 41,43c40,41 < while util.parallel(slash, movement) do < coroutine.yield() < end --- > while util.parallel(slash, movement) do > coroutine.yield() 44a43 > end 46,74c45,48 < function spinSlash:slashAction() < local armRotationOffset = math.random(1, #self.armRotationOffsets) < while self.fireMode == "alt" do < if not status.overConsumeResource("energy", self.energyUsage * (self.stances.windup.duration + self.stances.slash.duration)) then return end < < self.weapon:setStance(self.stances.windup) < self.weapon.relativeArmRotation = self.weapon.relativeArmRotation - util.toRadians(self.armRotationOffsets[armRotationOffset]) < self.weapon:updateAim() < < util.wait(self.stances.windup.duration, function() < return status.resourceLocked("energy") < end) < < self.weapon.aimDirection = -self.weapon.aimDirection < < self.weapon:setStance(self.stances.slash) < self.weapon.relativeArmRotation = self.weapon.relativeArmRotation + util.toRadians(self.armRotationOffsets[armRotationOffset]) < self.weapon:updateAim() < < armRotationOffset = armRotationOffset + 1 < if armRotationOffset > #self.armRotationOffsets then armRotationOffset = 1 end < < animator.setAnimationState("spinSwoosh", "fire", true) < < util.wait(self.stances.slash.duration, function() < local damageArea = partDamageArea("spinSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) < end --- > function SuperSpinSlash:slashAction() > local armRotationOffset = math.random(1, #self.armRotationOffsets) > while self.fireMode == "alt" do > if not status.overConsumeResource("energy", self.energyUsage * (self.stances.windup.duration + self.stances.slash.duration)) then return end 76,77c50,52 < self.cooldownTimer = self.cooldownTime < end --- > self.weapon:setStance(self.stances.windup) > self.weapon.relativeArmRotation = self.weapon.relativeArmRotation - util.toRadians(self.armRotationOffsets[armRotationOffset]) > self.weapon:updateAim() 79,82c54,56 < function spinSlash:reset() < status.clearPersistentEffects("movementAbility") < animator.setGlobalTag("swooshDirectives", "") < end --- > util.wait(self.stances.windup.duration, function() > return status.resourceLocked("energy") > end) 84,85c58,72 < function spinSlash:uninit() < self:reset() --- > self.weapon.aimDirection = -self.weapon.aimDirection > > self.weapon:setStance(self.stances.slash) > self.weapon.relativeArmRotation = self.weapon.relativeArmRotation + util.toRadians(self.armRotationOffsets[armRotationOffset]) > self.weapon:updateAim() > > armRotationOffset = armRotationOffset + 1 > if armRotationOffset > #self.armRotationOffsets then armRotationOffset = 1 end > > animator.setAnimationState("spinSwoosh", "fire", true) > > util.wait(self.stances.slash.duration, function() > local damageArea = partDamageArea("spinSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) 88c75,84 < return spinSlash --- > self.cooldownTimer = self.cooldownTime > end > > function SuperSpinSlash:reset() > status.clearPersistentEffects("movementAbility") > animator.setGlobalTag("swooshDirectives", "") > end > > function SuperSpinSlash:uninit() > self:reset() items\active\weapons\melee\altabilities\broadsword\traildash\traildash.altability 66a67,68 > "class" : "TrailDash", > items\active\weapons\melee\altabilities\broadsword\traildash\traildash.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local trailDash = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > TrailDash = WeaponAbility:new() 7,9c6,8 < function trailDash:init() < self.cooldownTimer = self.cooldownTime < end --- > function TrailDash:init() > self.cooldownTimer = self.cooldownTime > end 11,12c10,11 < function trailDash:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function TrailDash:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 14c13 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 16,21c15,20 < if self.weapon.currentAbility == nil < and self.fireMode == "alt" < and mcontroller.onGround() < and self.cooldownTimer == 0 < and not status.statPositive("activeMovementAbilities") < and status.overConsumeResource("energy", self.energyUsage) then --- > if self.weapon.currentAbility == nil > and self.fireMode == "alt" > and mcontroller.onGround() > and self.cooldownTimer == 0 > and not status.statPositive("activeMovementAbilities") > and status.overConsumeResource("energy", self.energyUsage) then 23,24c22 < self:setState(self.windup) < end --- > self:setState(self.windup) 25a24 > end 27,28c26,27 < function trailDash:windup() < self.weapon:setStance(self.stances.windup) --- > function TrailDash:windup() > self.weapon:setStance(self.stances.windup) 30c29 < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) --- > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 32,33c31,32 < animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", true) < animator.playSound(self.weapon.elementalType.."TrailDashCharge") --- > animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", true) > animator.playSound(self.weapon.elementalType.."TrailDashCharge") 35,37c34,36 < util.wait(self.stances.windup.duration, function(dt) < mcontroller.controlModifiers({jumpingSuppressed = true}) < end) --- > util.wait(self.stances.windup.duration, function(dt) > mcontroller.controlModifiers({jumpingSuppressed = true}) > end) 39,40c38,39 < self:setState(self.dash) < end --- > self:setState(self.dash) > end 42,43c41,42 < function trailDash:dash() < self.weapon:setStance(self.stances.dash) --- > function TrailDash:dash() > self.weapon:setStance(self.stances.dash) 45c44 < animator.playSound(self.weapon.elementalType.."TrailDashFire") --- > animator.playSound(self.weapon.elementalType.."TrailDashFire") 47,48c46,47 < local wasInvulnerable = status.stat("invulnerable") > 0 < status.addEphemeralEffect("invulnerable", self.dashTime) --- > local wasInvulnerable = status.stat("invulnerable") > 0 > status.addEphemeralEffect("invulnerable", self.dashTime) 50,73c49,52 < local position = mcontroller.position() < local params = copy(self.projectileParameters) < params.powerMultiplier = activeItem.ownerPowerMultiplier() < params.power = params.power * config.getParameter("damageLevelMultiplier") < < util.wait(self.dashTime, function(dt) < if not mcontroller.onGround() then < if not wasInvulnerable then status.removeEphemeralEffect("invulnerable") end < return true < end < < mcontroller.setVelocity({self.weapon.aimDirection * self.dashSpeed, -200}) < mcontroller.controlMove(self.weapon.aimDirection) < < local direction = vec2.norm(world.distance(mcontroller.position(), position)) < while world.magnitude(mcontroller.position(), position) >= self.trailInterval do < position = vec2.add(position, vec2.mul(direction, self.trailInterval)) < world.spawnProjectile(self.projectileType, vec2.add(position, self.projectileOffset), activeItem.ownerEntityId(), {-mcontroller.facingDirection(),0}, false, params) < end < < local damageArea = partDamageArea("blade") < self.weapon:setDamage(self.damageConfig, damageArea) < end) < animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", false) --- > local position = mcontroller.position() > local params = copy(self.projectileParameters) > params.powerMultiplier = activeItem.ownerPowerMultiplier() > params.power = params.power * config.getParameter("damageLevelMultiplier") 75,79c54,58 < mcontroller.setVelocity({0,0}) < end < < function trailDash:uninit() < status.clearPersistentEffects("movementAbility") --- > util.wait(self.dashTime, function(dt) > if not mcontroller.onGround() then > if not wasInvulnerable then status.removeEphemeralEffect("invulnerable") end > return true > end 81c60,61 < animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", false) --- > mcontroller.setVelocity({self.weapon.aimDirection * self.dashSpeed, -200}) > mcontroller.controlMove(self.weapon.aimDirection) 83,84c63,66 < if self.weapon.currentState == self.dash then < mcontroller.setVelocity({0,0}) --- > local direction = vec2.norm(world.distance(mcontroller.position(), position)) > while world.magnitude(mcontroller.position(), position) >= self.trailInterval do > position = vec2.add(position, vec2.mul(direction, self.trailInterval)) > world.spawnProjectile(self.projectileType, vec2.add(position, self.projectileOffset), activeItem.ownerEntityId(), {-mcontroller.facingDirection(),0}, false, params) 86d67 < end 88c69,84 < return trailDash --- > local damageArea = partDamageArea("blade") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", false) > > mcontroller.setVelocity({0,0}) > end > > function TrailDash:uninit() > status.clearPersistentEffects("movementAbility") > > animator.setParticleEmitterActive(self.weapon.elementalType.."SwordCharge", false) > > if self.weapon.currentState == self.dash then > mcontroller.setVelocity({0,0}) > end items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.altability 16a17 > "class" : "TravelingSlash", 59c60 < } \ No newline at end of file --- > } items\active\weapons\melee\altabilities\broadsword\travelingslash\travelingslash.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local travelingSlash = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > TravelingSlash = WeaponAbility:new() 7,9c6,8 < function travelingSlash:init() < self.cooldownTimer = self.cooldownTime < end --- > function TravelingSlash:init() > self.cooldownTimer = self.cooldownTime > end 11,12c10,11 < function travelingSlash:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function TravelingSlash:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 14c13 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 16,18c15,16 < if self.weapon.currentAbility == nil and self.fireMode == "alt" and self.cooldownTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then < self:setState(self.windup) < end --- > if self.weapon.currentAbility == nil and self.fireMode == "alt" and self.cooldownTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then > self:setState(self.windup) 19a18 > end 21,23c20,22 < function travelingSlash:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() --- > function TravelingSlash:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 25c24 < util.wait(self.stances.windup.duration) --- > util.wait(self.stances.windup.duration) 27,28c26,27 < self:setState(self.fire) < end --- > self:setState(self.fire) > end 30,40c29,31 < function travelingSlash:fire() < self.weapon:setStance(self.stances.fire) < self.weapon:updateAim() < < local position = vec2.add(mcontroller.position(), self.projectileOffset) < local aimVector = {mcontroller.facingDirection(), 0} < local params = { < powerMultiplier = activeItem.ownerPowerMultiplier(), < power = self:damageAmount() < } < world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) --- > function TravelingSlash:fire() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() 42c33,39 < animator.playSound(self.weapon.elementalType.."TravelSlash") --- > local position = vec2.add(mcontroller.position(), self.projectileOffset) > local aimVector = {mcontroller.facingDirection(), 0} > local params = { > powerMultiplier = activeItem.ownerPowerMultiplier(), > power = self:damageAmount() > } > world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) 44,46c41 < util.wait(self.stances.fire.duration) < self.cooldownTimer = self.cooldownTime < end --- > animator.playSound(self.weapon.elementalType.."TravelSlash") 48,50c43,45 < function travelingSlash:damageAmount() < return self.baseDamage * config.getParameter("damageLevelMultiplier") < end --- > util.wait(self.stances.fire.duration) > self.cooldownTimer = self.cooldownTime > end 52,53c47,49 < function travelingSlash:uninit() < end --- > function TravelingSlash:damageAmount() > return self.baseDamage * config.getParameter("damageLevelMultiplier") > end 55c51 < return travelingSlash --- > function TravelingSlash:uninit() items\active\weapons\melee\altabilities\generic\blinkexplosion\blinkexplosion.altability 40a41,42 > "class" : "BlinkExplosion", > 74c76 < } \ No newline at end of file --- > } items\active\weapons\melee\altabilities\generic\blinkexplosion\blinkexplosion.lua 6,7c6 < function setupAltAbility(altAbilityConfig) < local blinkExplosion = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > BlinkExplosion = WeaponAbility:new() 9,11c8,10 < function blinkExplosion:init() < self.cooldownTimer = self.cooldownTime < end --- > function BlinkExplosion:init() > self.cooldownTimer = self.cooldownTime > end 13,14c12,13 < function blinkExplosion:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function BlinkExplosion:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 18,26c17,24 < if self.weapon.currentAbility == nil < and fireMode == "alt" < and self.cooldownTimer == 0 < and mcontroller.onGround() < and not status.statPositive("activeMovementAbilities") < and not status.resourceLocked("energy") then < < self:setState(self.charge) < end --- > if self.weapon.currentAbility == nil > and fireMode == "alt" > and self.cooldownTimer == 0 > and mcontroller.onGround() > and not status.statPositive("activeMovementAbilities") > and not status.resourceLocked("energy") then > > self:setState(self.charge) 27a26 > end 29,41c28,30 < function blinkExplosion:charge() < self.weapon.aimAngle = 0 < self.weapon:setStance(self.stances.charge) < < status.setPersistentEffects("blinkexplosionability", { { stat = "invulnerable", amount = 1.0}, {stat = "activeMovementAbilities", amount = 1}, self.weapon.elementalType.."charge" }) < animator.setAnimationState("blinkCharge", "charge") < < util.wait(self.stances.charge.duration, function(dt) < mcontroller.controlModifiers({ movementSuppressed = true }) < < -- Interrupt wait if we run out of energy < return status.resourceLocked("energy") < end) --- > function BlinkExplosion:charge() > self.weapon.aimAngle = 0 > self.weapon:setStance(self.stances.charge) 43,46c32,33 < if status.overConsumeResource("energy", self.energyUsage) then < self:setState(self.blink) < end < end --- > status.setPersistentEffects("blinkexplosionability", { { stat = "invulnerable", amount = 1.0}, {stat = "activeMovementAbilities", amount = 1}, self.weapon.elementalType.."charge" }) > animator.setAnimationState("blinkCharge", "charge") 48,66c35,36 < function blinkExplosion:blink() < status.setPersistentEffects("blinkexplosionability", { { stat = "invulnerable", amount = 1.0}, {stat = "activeMovementAbilities", amount = 1} }) < status.addEphemeralEffect("blink") < < -- wait until a certain point in the blink animation < util.wait(0.25, function(dt) < mcontroller.controlModifiers({ movementSuppressed = true }) < end) < < -- explode < local params = { < powerMultiplier = activeItem.ownerPowerMultiplier(), < power = self.baseDamage * config.getParameter("damageLevelMultiplier") < } < world.spawnProjectile(self.projectileType, mcontroller.position(), activeItem.ownerEntityId(), {0,0}, false, params) < < -- move to blink position < local blinkPosition = self:findBlinkPosition() < mcontroller.setPosition(blinkPosition) --- > util.wait(self.stances.charge.duration, function(dt) > mcontroller.controlModifiers({ movementSuppressed = true }) 68,69c38,40 < self.cooldownTimer = self.cooldownTime < end --- > -- Interrupt wait if we run out of energy > return status.resourceLocked("energy") > end) 71,72c42,43 < function blinkExplosion:reset() < status.setPersistentEffects("blinkexplosionability", {}) --- > if status.overConsumeResource("energy", self.energyUsage) then > self:setState(self.blink) 73a45 > end 75,77c47,49 < function blinkExplosion:uninit() < self:reset() < end --- > function BlinkExplosion:blink() > status.setPersistentEffects("blinkexplosionability", { { stat = "invulnerable", amount = 1.0}, {stat = "activeMovementAbilities", amount = 1} }) > status.addEphemeralEffect("blink") 79,80c51,54 < function blinkExplosion:findBlinkPosition() < local position = mcontroller.position() --- > -- wait until a certain point in the blink animation > util.wait(0.25, function(dt) > mcontroller.controlModifiers({ movementSuppressed = true }) > end) 82,86c56,61 < local direction = mcontroller.facingDirection() < for i = 0, self.maxDistance do < if direction > 0 then < position[1] = math.ceil(position[1]) < end --- > -- explode > local params = { > powerMultiplier = activeItem.ownerPowerMultiplier(), > power = self.baseDamage * config.getParameter("damageLevelMultiplier") > } > world.spawnProjectile(self.projectileType, mcontroller.position(), activeItem.ownerEntityId(), {0,0}, false, params) 88,98c63,93 < local yDirs = {0, 1, -1} < local lastPosition = position[1] < for _,yDir in ipairs(yDirs) do < local bounds = rect.translate(mcontroller.boundBox(), {position[1] + direction, position[2] + yDir}) < if not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then < position = {position[1] + direction, position[2] + yDir} < break < end < end < if position[1] == lastPosition or i == self.maxDistance then < return position --- > -- move to blink position > local blinkPosition = self:findBlinkPosition() > mcontroller.setPosition(blinkPosition) > > self.cooldownTimer = self.cooldownTime > end > > function BlinkExplosion:reset() > status.setPersistentEffects("blinkexplosionability", {}) > end > > function BlinkExplosion:uninit() > self:reset() > end > > function BlinkExplosion:findBlinkPosition() > local position = mcontroller.position() > > local direction = mcontroller.facingDirection() > for i = 0, self.maxDistance do > if direction > 0 then > position[1] = math.ceil(position[1]) > end > > local yDirs = {0, 1, -1} > local lastPosition = position[1] > for _,yDir in ipairs(yDirs) do > local bounds = rect.translate(mcontroller.boundBox(), {position[1] + direction, position[2] + yDir}) > if not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then > position = {position[1] + direction, position[2] + yDir} > break 101c96,98 < return mcontroller.position() --- > if position[1] == lastPosition or i == self.maxDistance then > return position > end 103,104c100 < < return blinkExplosion --- > return mcontroller.position() items\active\weapons\melee\altabilities\generic\blinkslash\blinkslash.altability 52a53 > "class" : "BlinkSlash", items\active\weapons\melee\altabilities\generic\blinkslash\blinkslash.lua 6,7c6 < function setupAltAbility(altAbilityConfig) < local blinkSlash = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > BlinkSlash = WeaponAbility:new() 9,10c8,9 < function blinkSlash:init() < self:reset() --- > function BlinkSlash:init() > self:reset() 12,13c11,12 < self.cooldownTimer = 0 < end --- > self.cooldownTimer = 0 > end 15,16c14,15 < function blinkSlash:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function BlinkSlash:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 18c17 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 20,25c19,24 < if self.weapon.currentAbility == nil < and self.fireMode == "alt" < and mcontroller.onGround() < and self.cooldownTimer == 0 < and not status.statPositive("activeMovementAbilities") < and status.overConsumeResource("energy", self.energyUsage) then --- > if self.weapon.currentAbility == nil > and self.fireMode == "alt" > and mcontroller.onGround() > and self.cooldownTimer == 0 > and not status.statPositive("activeMovementAbilities") > and status.overConsumeResource("energy", self.energyUsage) then 27,28c26 < self:setState(self.windup) < end --- > self:setState(self.windup) 29a28 > end 31,45c30,32 < function blinkSlash:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) < < util.wait(self.stances.windup.duration) < < self.blinkPosition = self:findBlinkPosition() < if self.blinkPosition then < self:setState(self.slash) < else < self.cooldownTimer = self.cooldownTime < end < end --- > function BlinkSlash:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 47,62c34 < function blinkSlash:slash() < local suppressMove = function() < mcontroller.controlModifiers({movementSuppressed = true}) < mcontroller.controlParameters({ < gravityEnabled = false < }) < mcontroller.setVelocity({0,0}) < end < < local slash = coroutine.create(self.slashAction) < coroutine.resume(slash, self) < < while util.parallel(suppressMove, slash) do < coroutine.yield() < end < end --- > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 64,88c36 < function blinkSlash:slashAction() < status.addEphemeralEffect("blink") < util.wait(0.25) < < local fromPosition = mcontroller.position() < mcontroller.setPosition(self.blinkPosition) < self.weapon.aimDirection = -self.weapon.aimDirection < self.weapon:setStance(self.stances.slash) < self.weapon:updateAim() < < util.wait(0.1) < < animator.setAnimationState("blinkSwoosh", "fire") < animator.playSound("fire") < < util.wait(self.stances.slash.duration, function() < local damageArea = partDamageArea("blinkSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) < < status.removeEphemeralEffect("blink") < status.addEphemeralEffect("blink") < util.wait(0.25) < mcontroller.setPosition(fromPosition) < self.weapon.aimDirection = -self.weapon.aimDirection --- > util.wait(self.stances.windup.duration) 89a38,41 > self.blinkPosition = self:findBlinkPosition() > if self.blinkPosition then > self:setState(self.slash) > else 91a44 > end 93,107c46,105 < function blinkSlash:reset() < status.clearPersistentEffects("movementAbility") < animator.setGlobalTag("directives", "") < end < < function blinkSlash:uninit() < self:reset() < end < < function blinkSlash:findBlinkPosition() < local searchPosition = vec2.add(mcontroller.position(), {self.blinkDistance * mcontroller.facingDirection(), 0}) < local groundPosition = findGroundPosition(searchPosition, -self.blinkYTolerance, self.blinkYTolerance, false, {"Null", "Block", "Dynamic", "Platform"}) < if groundPosition and (not self.requireLineOfSight or not world.lineTileCollision(mcontroller.position(), groundPosition, {"Null", "Block", "Dynamic"})) then < return groundPosition < end --- > function BlinkSlash:slash() > local suppressMove = function() > mcontroller.controlModifiers({movementSuppressed = true}) > mcontroller.controlParameters({ > gravityEnabled = false > }) > mcontroller.setVelocity({0,0}) > end > > local slash = coroutine.create(self.slashAction) > coroutine.resume(slash, self) > > while util.parallel(suppressMove, slash) do > coroutine.yield() > end > end > > function BlinkSlash:slashAction() > status.addEphemeralEffect("blink") > util.wait(0.25) > > local fromPosition = mcontroller.position() > mcontroller.setPosition(self.blinkPosition) > self.weapon.aimDirection = -self.weapon.aimDirection > self.weapon:setStance(self.stances.slash) > self.weapon:updateAim() > > util.wait(0.1) > > animator.setAnimationState("blinkSwoosh", "fire") > animator.playSound("fire") > > util.wait(self.stances.slash.duration, function() > local damageArea = partDamageArea("blinkSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > status.removeEphemeralEffect("blink") > status.addEphemeralEffect("blink") > util.wait(0.25) > mcontroller.setPosition(fromPosition) > self.weapon.aimDirection = -self.weapon.aimDirection > > self.cooldownTimer = self.cooldownTime > end > > function BlinkSlash:reset() > status.clearPersistentEffects("movementAbility") > animator.setGlobalTag("directives", "") > end > > function BlinkSlash:uninit() > self:reset() > end > > function BlinkSlash:findBlinkPosition() > local searchPosition = vec2.add(mcontroller.position(), {self.blinkDistance * mcontroller.facingDirection(), 0}) > local groundPosition = findGroundPosition(searchPosition, -self.blinkYTolerance, self.blinkYTolerance, false, {"Null", "Block", "Dynamic", "Platform"}) > if groundPosition and (not self.requireLineOfSight or not world.lineTileCollision(mcontroller.position(), groundPosition, {"Null", "Block", "Dynamic"})) then > return groundPosition 109,110d106 < < return blinkSlash items\active\weapons\melee\altabilities\hammer\elementalaura\elementalaura.altability 87a88 > "class" : "ElementalAura", items\active\weapons\melee\altabilities\hammer\elementalaura\elementalaura.lua 6,7c6 < function setupAltAbility(altAbilityConfig) < local elementalAura = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > ElementalAura = WeaponAbility:new() 9,13c8,12 < function elementalAura:init() < self:reset() < self.cooldownTimer = self.cooldownTime < self.activeTimer = 0 < end --- > function ElementalAura:init() > self:reset() > self.cooldownTimer = self.cooldownTime > self.activeTimer = 0 > end 15,16c14,15 < function elementalAura:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function ElementalAura:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 18c17 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 20,24c19,23 < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and self.fireMode == "alt" < and not status.resourceLocked("energy") < and status.resource("energy") >= self.energyUsage * (self.minChargeTime / self.chargeTime) then --- > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and self.fireMode == "alt" > and not status.resourceLocked("energy") > and status.resource("energy") >= self.energyUsage * (self.minChargeTime / self.chargeTime) then 26,27c25,26 < self:setState(self.windup) < end --- > self:setState(self.windup) > end 29,35c28,33 < if self.active then < self.activeTimer = math.max(0, self.activeTimer - self.dt) < if self.activeTimer > 0 then < self.weapon:setOwnerDamage(self.damageConfig, self.damagePoly) < else < self:deactivate() < end --- > if self.active then > self.activeTimer = math.max(0, self.activeTimer - self.dt) > if self.activeTimer > 0 then > self.weapon:setOwnerDamage(self.damageConfig, self.damagePoly) > else > self:deactivate() 37a36 > end 39,60c38,41 < -- Attack state: windup < function elementalAura:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", true) < animator.playSound(self.weapon.elementalType.."charge") < < local wasFull = false < local chargeTimer = 0 < while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do < chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) < < if chargeTimer == self.chargeTime and not wasFull then < wasFull = true < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.playSound(self.weapon.elementalType.."full", -1) < end < < local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) < self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) < self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) --- > -- Attack state: windup > function ElementalAura:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 62,63c43,49 < coroutine.yield() < end --- > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", true) > animator.playSound(self.weapon.elementalType.."charge") > > local wasFull = false > local chargeTimer = 0 > while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do > chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) 65,71c51,54 < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") < < if chargeTimer > self.minChargeTime then < self.activeTimer = self.duration * (chargeTimer / self.chargeTime) < self:setState(self.fire) --- > if chargeTimer == self.chargeTime and not wasFull then > wasFull = true > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.playSound(self.weapon.elementalType.."full", -1) 73d55 < end 75,77c57,59 < -- Attack state: fire < function elementalAura:fire() < self.weapon:setStance(self.stances.fire) --- > local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) > self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) > self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) 79c61,62 < self:activate() --- > coroutine.yield() > end 81c64,66 < util.wait(self.stances.fire.duration) --- > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") 83c68,70 < self.cooldownTimer = self.cooldownTime --- > if chargeTimer > self.minChargeTime then > self.activeTimer = self.duration * (chargeTimer / self.chargeTime) > self:setState(self.fire) 84a72 > end 86,93c74,76 < function elementalAura:activate() < status.setPersistentEffects("elementalAura", { self.weapon.elementalType.."aura" }) < animator.playSound(self.weapon.elementalType.."activate") < if not self.active then < animator.playSound(self.weapon.elementalType.."active", -1) < end < self.active = true < end --- > -- Attack state: fire > function ElementalAura:fire() > self.weapon:setStance(self.stances.fire) 95,100c78 < function elementalAura:deactivate() < status.setPersistentEffects("elementalAura", { }) < animator.stopAllSounds(self.weapon.elementalType.."active") < animator.playSound(self.weapon.elementalType.."deactivate") < self.active = false < end --- > self:activate() 102,109c80,89 < function elementalAura:reset() < if self.weapon.currentAbility ~= self then < status.setPersistentEffects("elementalAura", { }) < animator.stopAllSounds(self.weapon.elementalType.."active") < end < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") --- > util.wait(self.stances.fire.duration) > > self.cooldownTimer = self.cooldownTime > end > > function ElementalAura:activate() > status.setPersistentEffects("elementalAura", { self.weapon.elementalType.."aura" }) > animator.playSound(self.weapon.elementalType.."activate") > if not self.active then > animator.playSound(self.weapon.elementalType.."active", -1) 110a91,99 > self.active = true > end > > function ElementalAura:deactivate() > status.setPersistentEffects("elementalAura", { }) > animator.stopAllSounds(self.weapon.elementalType.."active") > animator.playSound(self.weapon.elementalType.."deactivate") > self.active = false > end 112,113c101,104 < function elementalAura:uninit(final) < self:reset() --- > function ElementalAura:reset() > if self.weapon.currentAbility ~= self then > status.setPersistentEffects("elementalAura", { }) > animator.stopAllSounds(self.weapon.elementalType.."active") 114a106,109 > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") > end 116c111,112 < return elementalAura --- > function ElementalAura:uninit(final) > self:reset() items\active\weapons\melee\altabilities\hammer\elementalpillar\elementalpillar.altability 70a71 > "class" : "ElementalPillar", items\active\weapons\melee\altabilities\hammer\elementalpillar\elementalpillar.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local elementalPillar = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > ElementalPillar = WeaponAbility:new() 8,9c7,8 < function elementalPillar:init() < end --- > function ElementalPillar:init() > end 11,12c10,11 < function elementalPillar:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function ElementalPillar:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 14,16c13,14 < if self.weapon.currentAbility == nil and self.fireMode == "alt" and mcontroller.onGround() and not status.resourceLocked("energy") then < self:setState(self.windup) < end --- > if self.weapon.currentAbility == nil and self.fireMode == "alt" and mcontroller.onGround() and not status.resourceLocked("energy") then > self:setState(self.windup) 17a16 > end 19,36c18,21 < -- Attack state: windup < function elementalPillar:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", true) < animator.playSound(self.weapon.elementalType.."charge") < < local wasFull = false < local chargeTimer = 0 < while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do < chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) < < if chargeTimer == self.chargeTime and not wasFull then < wasFull = true < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.playSound(self.weapon.elementalType.."full", -1) < end --- > -- Attack state: windup > function ElementalPillar:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 38,48c23,24 < local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) < self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) < self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) < < mcontroller.controlModifiers({ < jumpingSuppressed = true, < runningSuppressed = true < }) < < coroutine.yield() < end --- > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", true) > animator.playSound(self.weapon.elementalType.."charge") 50,51c26,29 < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") --- > local wasFull = false > local chargeTimer = 0 > while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do > chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) 53,54c31,34 < if chargeTimer > self.minChargeTime then < self:setState(self.fire, chargeTimer / self.chargeTime) --- > if chargeTimer == self.chargeTime and not wasFull then > wasFull = true > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.playSound(self.weapon.elementalType.."full", -1) 56,76d35 < end < < -- Attack state: fire < function elementalPillar:fire(charge) < self.weapon:setStance(self.stances.fire) < < self:fireElementalPillar(charge) < animator.playSound("fire") < < util.wait(self.stances.fire.duration) < end < < function elementalPillar:reset() < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") < end < < function elementalPillar:uninit() < self:reset() < end 78,92c37,90 < -- Helper functions < function elementalPillar:fireElementalPillar(charge) < local impactPosition = self:impactPosition() < < if impactPosition then < local projectileParameters = copy(self.projectileParameters) < projectileParameters.powerMultiplier = activeItem.ownerPowerMultiplier() < projectileParameters.power = projectileParameters.power * config.getParameter("damageLevelMultiplier") < projectileParameters.actionOnTimeout = { < { < action = "projectile", < inheritDamageFactor = 1, < type = self.projectileType, < config = { } < } --- > local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) > self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) > self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) > > mcontroller.controlModifiers({ > jumpingSuppressed = true, > runningSuppressed = true > }) > > coroutine.yield() > end > > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") > > if chargeTimer > self.minChargeTime then > self:setState(self.fire, chargeTimer / self.chargeTime) > end > end > > -- Attack state: fire > function ElementalPillar:fire(charge) > self.weapon:setStance(self.stances.fire) > > self:fireElementalPillar(charge) > animator.playSound("fire") > > util.wait(self.stances.fire.duration) > end > > function ElementalPillar:reset() > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") > end > > function ElementalPillar:uninit() > self:reset() > end > > -- Helper functions > function ElementalPillar:fireElementalPillar(charge) > local impactPosition = self:impactPosition() > > if impactPosition then > local projectileParameters = copy(self.projectileParameters) > projectileParameters.powerMultiplier = activeItem.ownerPowerMultiplier() > projectileParameters.power = projectileParameters.power * config.getParameter("damageLevelMultiplier") > projectileParameters.actionOnTimeout = { > { > action = "projectile", > inheritDamageFactor = 1, > type = self.projectileType, > config = { } 94,105c92,103 < local projectileCount = math.floor(charge * self.pillarMaxHeight) < animator.playSound(self.weapon.elementalType.."impact") < local dir = mcontroller.facingDirection() < for i = 0, (projectileCount - 1) do < projectileParameters.timeToLive = i * 0.02 < projectileParameters.actionOnTimeout[1].config.timeToLive = self.pillarDuration - (2 * projectileParameters.timeToLive) < local position = vec2.add(impactPosition, {0, i}) < if not world.pointTileCollision(position, {"Null", "Block", "Dynamic"}) then < world.spawnProjectile("pillarspawner", position, activeItem.ownerEntityId(), {dir, 0}, false, projectileParameters) < else < return < end --- > } > local projectileCount = math.floor(charge * self.pillarMaxHeight) > animator.playSound(self.weapon.elementalType.."impact") > local dir = mcontroller.facingDirection() > for i = 0, (projectileCount - 1) do > projectileParameters.timeToLive = i * 0.02 > projectileParameters.actionOnTimeout[1].config.timeToLive = self.pillarDuration - (2 * projectileParameters.timeToLive) > local position = vec2.add(impactPosition, {0, i}) > if not world.pointTileCollision(position, {"Null", "Block", "Dynamic"}) then > world.spawnProjectile("pillarspawner", position, activeItem.ownerEntityId(), {dir, 0}, false, projectileParameters) > else > return 108a107 > end 110,118c109,116 < function elementalPillar:impactPosition() < local dir = mcontroller.facingDirection() < local startLine = vec2.add(mcontroller.position(), {dir * self.pillarBaseDistance, self.pillarVerticalTolerance[1]}) < local endLine = vec2.add(mcontroller.position(), {dir * self.pillarBaseDistance, self.pillarVerticalTolerance[2]}) < < local blocks = world.collisionBlocksAlongLine(startLine, endLine, {"Null", "Block", "Dynamic"}) < if #blocks > 0 then < return vec2.add(blocks[#blocks], {0.5, 1.5}) < end --- > function ElementalPillar:impactPosition() > local dir = mcontroller.facingDirection() > local startLine = vec2.add(mcontroller.position(), {dir * self.pillarBaseDistance, self.pillarVerticalTolerance[1]}) > local endLine = vec2.add(mcontroller.position(), {dir * self.pillarBaseDistance, self.pillarVerticalTolerance[2]}) > > local blocks = world.collisionBlocksAlongLine(startLine, endLine, {"Null", "Block", "Dynamic"}) > if #blocks > 0 then > return vec2.add(blocks[#blocks], {0.5, 1.5}) 120,121d117 < < return elementalPillar items\active\weapons\melee\altabilities\hammer\groundslam\groundslam.altability 22a23,24 > "class" : "GroundSlam", > 67c69 < } \ No newline at end of file --- > } items\active\weapons\melee\altabilities\hammer\groundslam\groundslam.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local groundSlam = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > GroundSlam = WeaponAbility:new() 8,10c7,23 < function groundSlam:init() < self:reset() < self.cooldownTimer = self.cooldownTime --- > function GroundSlam:init() > self:reset() > self.cooldownTimer = self.cooldownTime > end > > function GroundSlam:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) > > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and self.fireMode == "alt" > and not mcontroller.onGround() > and status.overConsumeResource("energy", self.energyUsage) then > > self:setState(self.windup) 11a25 > end 13,14c27,29 < function groundSlam:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function GroundSlam:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 16c31 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 18,22c33 < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and self.fireMode == "alt" < and not mcontroller.onGround() < and status.overConsumeResource("energy", self.energyUsage) then --- > util.wait(self.stances.windup.duration) 24,25c35,36 < self:setState(self.windup) < end --- > if not mcontroller.onGround() then > self:setState(self.slam) 26a38 > end 28,30c40,44 < function groundSlam:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() --- > function GroundSlam:slam() > local preSlamPosition = self:slamPosition() > self.weapon:setStance(self.stances.slam) > self.weapon:updateAim() > local postSlamPosition = self:slamPosition() 32c46,51 < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) --- > animator.playSound("groundSlamFall") > > status.setPersistentEffects("groundSlam", { > {stat = "fallDamageMultiplier", effectiveMultiplier = 0}, > {stat = "invulnerable", amount = 1} > }) 34c53,60 < util.wait(self.stances.windup.duration) --- > local lastSlamPosition = self:slamPosition() > util.wait(self.maxSlamTime, function(dt) > mcontroller.setYVelocity(self.slamSpeed) > local newSlamPosition = self:slamPosition() > if world.lineTileCollision(lastSlamPosition, newSlamPosition) then > local params = copy(self.projectileParameters) > params.powerMultiplier = activeItem.ownerPowerMultiplier() > params.power = params.power * config.getParameter("damageLevelMultiplier") 36,37c62,63 < if not mcontroller.onGround() then < self:setState(self.slam) --- > world.spawnProjectile(self.projectileType, lastSlamPosition, activeItem.ownerEntityId(), {0,0}, false, params) > return true 39c65 < end --- > lastSlamPosition = newSlamPosition 41,72c67 < function groundSlam:slam() < local preSlamPosition = self:slamPosition() < self.weapon:setStance(self.stances.slam) < self.weapon:updateAim() < local postSlamPosition = self:slamPosition() < < animator.playSound("groundSlamFall") < < status.setPersistentEffects("groundSlam", { < {stat = "fallDamageMultiplier", effectiveMultiplier = 0}, < {stat = "invulnerable", amount = 1} < }) < < local lastSlamPosition = self:slamPosition() < util.wait(self.maxSlamTime, function(dt) < mcontroller.setYVelocity(self.slamSpeed) < local newSlamPosition = self:slamPosition() < if world.lineTileCollision(lastSlamPosition, newSlamPosition) then < local params = copy(self.projectileParameters) < params.powerMultiplier = activeItem.ownerPowerMultiplier() < params.power = params.power * config.getParameter("damageLevelMultiplier") < < world.spawnProjectile(self.projectileType, lastSlamPosition, activeItem.ownerEntityId(), {0,0}, false, params) < return true < end < lastSlamPosition = newSlamPosition < < if mcontroller.onGround() then return true end < < local damageArea = partDamageArea("blade") < self.weapon:setDamage(self.damageConfig, damageArea) < end) --- > if mcontroller.onGround() then return true end 74c69,71 < self.cooldownTimer = self.cooldownTime --- > local damageArea = partDamageArea("blade") > self.weapon:setDamage(self.damageConfig, damageArea) > end) 76,77c73 < util.wait(self.winddownTime) < end --- > self.cooldownTimer = self.cooldownTime 79,81c75,76 < function groundSlam:slamPosition() < return vec2.add(activeItem.handPosition(animator.partPoint("blade", "groundSlamPoint")), mcontroller.position()) < end --- > util.wait(self.winddownTime) > end 83,87c78,80 < function groundSlam:reset() < status.clearPersistentEffects("movementAbility") < status.clearPersistentEffects("groundSlam") < animator.setGlobalTag("directives", "") < end --- > function GroundSlam:slamPosition() > return vec2.add(activeItem.handPosition(animator.partPoint("blade", "groundSlamPoint")), mcontroller.position()) > end 89,91c82,86 < function groundSlam:uninit() < self:reset() < end --- > function GroundSlam:reset() > status.clearPersistentEffects("movementAbility") > status.clearPersistentEffects("groundSlam") > animator.setGlobalTag("directives", "") > end 93c88,89 < return groundSlam --- > function GroundSlam:uninit() > self:reset() items\active\weapons\melee\altabilities\hammer\shockwave\physicalshockwave.altability 21a22 > "class" : "ShockWave", 66c67 < } \ No newline at end of file --- > } items\active\weapons\melee\altabilities\hammer\shockwave\shockwave.altability 69a70 > "class" : "ShockWave", items\active\weapons\melee\altabilities\hammer\shockwave\shockwave.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local shockWave = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > ShockWave = WeaponAbility:new() 8,9c7,8 < function shockWave:init() < end --- > function ShockWave:init() > end 11,12c10,11 < function shockWave:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function ShockWave:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 14,16c13,14 < if self.weapon.currentAbility == nil and self.fireMode == "alt" and mcontroller.onGround() and not status.resourceLocked("energy") then < self:setState(self.windup) < end --- > if self.weapon.currentAbility == nil and self.fireMode == "alt" and mcontroller.onGround() and not status.resourceLocked("energy") then > self:setState(self.windup) 17a16 > end 19,36c18,21 < -- Attack state: windup < function shockWave:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", true) < animator.playSound(self.weapon.elementalType.."charge") < < local wasFull = false < local chargeTimer = 0 < while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do < chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) < < if chargeTimer == self.chargeTime and not wasFull then < wasFull = true < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.playSound(self.weapon.elementalType.."full", -1) < end --- > -- Attack state: windup > function ShockWave:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 38,45c23,24 < local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) < self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) < self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) < < mcontroller.controlModifiers({ < jumpingSuppressed = true, < runningSuppressed = true < }) --- > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", true) > animator.playSound(self.weapon.elementalType.."charge") 47c26,34 < coroutine.yield() --- > local wasFull = false > local chargeTimer = 0 > while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do > chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) > > if chargeTimer == self.chargeTime and not wasFull then > wasFull = true > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.playSound(self.weapon.elementalType.."full", -1) 50,51c37,39 < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") --- > local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) > self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) > self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) 53,55c41,46 < if chargeTimer > self.minChargeTime then < self:setState(self.fire, chargeTimer / self.chargeTime) < end --- > mcontroller.controlModifiers({ > jumpingSuppressed = true, > runningSuppressed = true > }) > > coroutine.yield() 58,108c49,53 < -- Attack state: fire < function shockWave:fire(charge) < self.weapon:setStance(self.stances.fire) < < self:fireShockwave(charge) < animator.playSound("fire") < < util.wait(self.stances.fire.duration) < end < < function shockWave:reset() < animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) < animator.stopAllSounds(self.weapon.elementalType.."charge") < animator.stopAllSounds(self.weapon.elementalType.."full") < end < < function shockWave:uninit() < self:reset() < end < < -- Helper functions < function shockWave:fireShockwave(charge) < local impact, impactHeight = self:impactPosition() < < if impact then < self.weapon.weaponOffset = {0, impactHeight + self.impactWeaponOffset} < < local charge = math.floor(charge * self.maxDistance) < local directions = {1} < if self.bothDirections then directions[2] = -1 end < local positions = self:shockwaveProjectilePositions(impact, charge, directions) < if #positions > 0 then < animator.playSound(self.weapon.elementalType.."impact") < local params = copy(self.projectileParameters) < params.powerMultiplier = activeItem.ownerPowerMultiplier() < params.power = params.power * config.getParameter("damageLevelMultiplier") < params.actionOnReap = { < { < action = "projectile", < inheritDamageFactor = 1, < type = self.projectileType < } < } < for i,position in pairs(positions) do < local xDistance = world.distance(position, impact)[1] < local dir = util.toDirection(xDistance) < params.timeToLive = (math.floor(math.abs(xDistance))) * 0.025 < world.spawnProjectile("shockwavespawner", position, activeItem.ownerEntityId(), {dir,0}, false, params) < end < end < end --- > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") > > if chargeTimer > self.minChargeTime then > self:setState(self.fire, chargeTimer / self.chargeTime) 109a55 > end 111,118c57,105 < function shockWave:impactPosition() < local dir = mcontroller.facingDirection() < local startLine = vec2.add(mcontroller.position(), vec2.mul(self.impactLine[1], {dir, 1})) < local endLine = vec2.add(mcontroller.position(), vec2.mul(self.impactLine[2], {dir, 1})) < < local blocks = world.collisionBlocksAlongLine(startLine, endLine, {"Null", "Block"}) < if #blocks > 0 then < return vec2.add(blocks[1], {0.5, 0.5}), endLine[2] - blocks[1][2] + 1 --- > -- Attack state: fire > function ShockWave:fire(charge) > self.weapon:setStance(self.stances.fire) > > self:fireShockwave(charge) > animator.playSound("fire") > > util.wait(self.stances.fire.duration) > end > > function ShockWave:reset() > animator.setParticleEmitterActive(self.weapon.elementalType.."Charge", false) > animator.stopAllSounds(self.weapon.elementalType.."charge") > animator.stopAllSounds(self.weapon.elementalType.."full") > end > > function ShockWave:uninit() > self:reset() > end > > -- Helper functions > function ShockWave:fireShockwave(charge) > local impact, impactHeight = self:impactPosition() > > if impact then > self.weapon.weaponOffset = {0, impactHeight + self.impactWeaponOffset} > > local charge = math.floor(charge * self.maxDistance) > local directions = {1} > if self.bothDirections then directions[2] = -1 end > local positions = self:shockwaveProjectilePositions(impact, charge, directions) > if #positions > 0 then > animator.playSound(self.weapon.elementalType.."impact") > local params = copy(self.projectileParameters) > params.powerMultiplier = activeItem.ownerPowerMultiplier() > params.power = params.power * config.getParameter("damageLevelMultiplier") > params.actionOnReap = { > { > action = "projectile", > inheritDamageFactor = 1, > type = self.projectileType > } > } > for i,position in pairs(positions) do > local xDistance = world.distance(position, impact)[1] > local dir = util.toDirection(xDistance) > params.timeToLive = (math.floor(math.abs(xDistance))) * 0.025 > world.spawnProjectile("shockwavespawner", position, activeItem.ownerEntityId(), {dir,0}, false, params) > end 120a108 > end 122,140c110,138 < function shockWave:shockwaveProjectilePositions(impactPosition, maxDistance, directions) < local positions = {} < < for _,direction in pairs(directions) do < direction = direction * mcontroller.facingDirection() < local position = copy(impactPosition) < for i = 0, maxDistance do < local continue = false < for _,yDir in ipairs({0, -1, 1}) do < local wavePosition = {position[1] + direction * i, position[2] + 0.5 + yDir + self.shockwaveHeight} < local groundPosition = {position[1] + direction * i, position[2] + yDir} < local bounds = rect.translate(self.shockWaveBounds, wavePosition) < < if world.pointTileCollision(groundPosition, {"Null", "Block", "Dynamic"}) and not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then < table.insert(positions, wavePosition) < position[2] = position[2] + yDir < continue = true < break < end --- > function ShockWave:impactPosition() > local dir = mcontroller.facingDirection() > local startLine = vec2.add(mcontroller.position(), vec2.mul(self.impactLine[1], {dir, 1})) > local endLine = vec2.add(mcontroller.position(), vec2.mul(self.impactLine[2], {dir, 1})) > > local blocks = world.collisionBlocksAlongLine(startLine, endLine, {"Null", "Block"}) > if #blocks > 0 then > return vec2.add(blocks[1], {0.5, 0.5}), endLine[2] - blocks[1][2] + 1 > end > end > > function ShockWave:shockwaveProjectilePositions(impactPosition, maxDistance, directions) > local positions = {} > > for _,direction in pairs(directions) do > direction = direction * mcontroller.facingDirection() > local position = copy(impactPosition) > for i = 0, maxDistance do > local continue = false > for _,yDir in ipairs({0, -1, 1}) do > local wavePosition = {position[1] + direction * i, position[2] + 0.5 + yDir + self.shockwaveHeight} > local groundPosition = {position[1] + direction * i, position[2] + yDir} > local bounds = rect.translate(self.shockWaveBounds, wavePosition) > > if world.pointTileCollision(groundPosition, {"Null", "Block", "Dynamic"}) and not world.rectTileCollision(bounds, {"Null", "Block", "Dynamic"}) then > table.insert(positions, wavePosition) > position[2] = position[2] + yDir > continue = true > break 142d139 < if not continue then break end 143a141 > if not continue then break end 145,146d142 < < return positions 149c145 < return shockWave --- > return positions items\active\weapons\melee\altabilities\hammer\uppercut\uppercut.altability 56a57,58 > "class" : "Uppercut", > items\active\weapons\melee\altabilities\hammer\uppercut\uppercut.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local uppercut = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Uppercut = WeaponAbility:new() 8,11c7,10 < function uppercut:init() < self:reset() < self.cooldownTimer = 0 < end --- > function Uppercut:init() > self:reset() > self.cooldownTimer = 0 > end 13,14c12,13 < function uppercut:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function Uppercut:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 18,22c17,21 < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and self.fireMode == "alt" < and not status.resourceLocked("energy") < and status.resource("energy") >= self.energyUsage * (self.minChargeTime / self.chargeTime) then --- > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and self.fireMode == "alt" > and not status.resourceLocked("energy") > and status.resource("energy") >= self.energyUsage * (self.minChargeTime / self.chargeTime) then 24,25c23 < self:setState(self.windup) < end --- > self:setState(self.windup) 26a25 > end 28,53c27,29 < function uppercut:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < animator.setGlobalTag("directives", "?flipx") < < local chargeTimer = 0 < while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do < chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) < < local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) < self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) < self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) < < mcontroller.controlModifiers({ < runningSuppressed = true, < jumpingSuppressed = true < }) < < coroutine.yield() < end < < if chargeTimer >= self.minChargeTime then < self:setState(self.fire, chargeTimer / self.chargeTime) < end < end --- > function Uppercut:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 55,75c31,44 < function uppercut:fire(charge) < self.weapon:setStance(self.stances.fire) < self.weapon:updateAim() < < animator.setAnimationState("uppercutSwoosh", "fire") < animator.playSound("uppercut") < < self.damageConfig.knockback = vec2.mul(self.knockback, charge) < < util.wait(self.stances.fire.duration, function(dt) < mcontroller.controlModifiers({ < runningSuppressed = true, < jumpingSuppressed = true < }) < < local damageArea = partDamageArea("uppercutSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) < < self.cooldownTimer = self.cooldownTime < end --- > animator.setGlobalTag("directives", "?flipx") > > local chargeTimer = 0 > while self.fireMode == "alt" and (chargeTimer == self.chargeTime or status.overConsumeResource("energy", (self.energyUsage / self.chargeTime) * self.dt)) do > chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) > > local chargeRatio = math.sin(chargeTimer / self.chargeTime * 1.57) > self.weapon.relativeArmRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.armRotation, self.stances.windup.endArmRotation})) > self.weapon.relativeWeaponRotation = util.toRadians(util.lerp(chargeRatio, {self.stances.windup.weaponRotation, self.stances.windup.endWeaponRotation})) > > mcontroller.controlModifiers({ > runningSuppressed = true, > jumpingSuppressed = true > }) 77,78c46 < function uppercut:reset() < animator.setGlobalTag("directives", "") --- > coroutine.yield() 81,82c49,50 < function uppercut:uninit() < self:reset() --- > if chargeTimer >= self.minChargeTime then > self:setState(self.fire, chargeTimer / self.chargeTime) 83a52,78 > end > > function Uppercut:fire(charge) > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() > > animator.setAnimationState("uppercutSwoosh", "fire") > animator.playSound("uppercut") > > self.damageConfig.knockback = vec2.mul(self.knockback, charge) > > util.wait(self.stances.fire.duration, function(dt) > mcontroller.controlModifiers({ > runningSuppressed = true, > jumpingSuppressed = true > }) > > local damageArea = partDamageArea("uppercutSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > self.cooldownTimer = self.cooldownTime > end > > function Uppercut:reset() > animator.setGlobalTag("directives", "") > end 85c80,81 < return uppercut --- > function Uppercut:uninit() > self:reset() items\active\weapons\melee\altabilities\spear\barrier\barrier.altability 75a76 > "class" : "Barrier", items\active\weapons\melee\altabilities\spear\barrier\barrier.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local barrier = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Barrier = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) 7,9c6,38 < function barrier:init() < self:reset() < end --- > function Barrier:init() > self:reset() > end > > function Barrier:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > if self.weapon.currentAbility == nil and self.fireMode == "alt" and not status.resourceLocked("energy") then > self:setState(self.hold) > end > end > > function Barrier:hold() > self.weapon:setStance(self.stances.hold) > self.weapon:updateAim() > > animator.setAnimationState("orbGlow", "idle") > animator.setLightActive("orbLight", true) > animator.playSound(self.weapon.elementalType.."Active", -1) > > local lastProjectilePosition = self:projectileSource() > while self.fireMode == "alt" and not status.resourceLocked("energy") do > local projectileSource = self:projectileSource() > local minDistance = world.magnitude(mcontroller.position(), projectileSource) - self.projectileInterval > > local params = copy(self.projectileParameters) > params.powerMultiplier = activeItem.ownerPowerMultiplier() > params.power = params.power * config.getParameter("damageLevelMultiplier") > > -- spawn barrier projectiles in a line between the last projectile position and the current aim position > local dir = vec2.mul(vec2.norm(world.distance(projectileSource, lastProjectilePosition)), self.projectileInterval) > local steps = math.floor(world.magnitude(projectileSource, lastProjectilePosition)) > for step = 1, steps do > local position, aimVector = self:projectilePositionAndAim(lastProjectilePosition, vec2.add(lastProjectilePosition, vec2.mul(dir, step))) 11,16c40,41 < function barrier:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < if self.weapon.currentAbility == nil and self.fireMode == "alt" and not status.resourceLocked("energy") then < self:setState(self.hold) < end < end --- > if world.magnitude(position, mcontroller.position()) >= minDistance and not world.lineTileCollision(position, mcontroller.position()) then > if not status.overConsumeResource("energy", self.energyUsage) then break end 18,46c43,44 < function barrier:hold() < self.weapon:setStance(self.stances.hold) < self.weapon:updateAim() < < animator.setAnimationState("orbGlow", "idle") < animator.setLightActive("orbLight", true) < animator.playSound(self.weapon.elementalType.."Active", -1) < < local lastProjectilePosition = self:projectileSource() < while self.fireMode == "alt" and not status.resourceLocked("energy") do < local projectileSource = self:projectileSource() < local minDistance = world.magnitude(mcontroller.position(), projectileSource) - self.projectileInterval < < local params = copy(self.projectileParameters) < params.powerMultiplier = activeItem.ownerPowerMultiplier() < params.power = params.power * config.getParameter("damageLevelMultiplier") < < -- spawn barrier projectiles in a line between the last projectile position and the current aim position < local dir = vec2.mul(vec2.norm(world.distance(projectileSource, lastProjectilePosition)), self.projectileInterval) < local steps = math.floor(world.magnitude(projectileSource, lastProjectilePosition)) < for step = 1, steps do < local position, aimVector = self:projectilePositionAndAim(lastProjectilePosition, vec2.add(lastProjectilePosition, vec2.mul(dir, step))) < < if world.magnitude(position, mcontroller.position()) >= minDistance and not world.lineTileCollision(position, mcontroller.position()) then < if not status.overConsumeResource("energy", self.energyUsage) then break end < < world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) < animator.setAnimationState("orbGlow", "glow") < end --- > world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) > animator.setAnimationState("orbGlow", "glow") 48,51d45 < if steps > 0 then < lastProjectilePosition = vec2.add(lastProjectilePosition, vec2.mul(dir, steps)) < end < coroutine.yield() 52a47,50 > if steps > 0 then > lastProjectilePosition = vec2.add(lastProjectilePosition, vec2.mul(dir, steps)) > end > coroutine.yield() 53a52 > end 55,59c54,58 < function barrier:reset() < animator.setAnimationState("orbGlow", "off") < animator.setLightActive("orbLight", false) < animator.stopAllSounds(self.weapon.elementalType.."Active") < end --- > function Barrier:reset() > animator.setAnimationState("orbGlow", "off") > animator.setLightActive("orbLight", false) > animator.stopAllSounds(self.weapon.elementalType.."Active") > end 61,63c60,62 < function barrier:uninit() < self:reset() < end --- > function Barrier:uninit() > self:reset() > end 65,67c64,66 < function barrier:projectileSource() < return vec2.add(mcontroller.position(), activeItem.handPosition(animator.partPoint("glowingOrb", "projectileSource"))) < end --- > function Barrier:projectileSource() > return vec2.add(mcontroller.position(), activeItem.handPosition(animator.partPoint("glowingOrb", "projectileSource"))) > end 69,79c68,71 < -- returns the aim vector perpendicular to the distance between the passed in vectors < function barrier:projectilePositionAndAim(from, to) < local direction = vec2.norm(world.distance(to, from)) < local mid = {(from[1] + to[1]) / 2, (from[2] + to[2]) / 2} < < local toOwner = world.distance(mid, world.entityPosition(activeItem.ownerEntityId())) < < -- out of the two possible perpendicular vectors, pick the one pointing horizontally away from the player < local perp1 = {direction[2], -direction[1]} < local perp2 = {-direction[2], direction[1]} < direction = vec2.dot(perp1, toOwner) > 0 and perp1 or perp2 --- > -- returns the aim vector perpendicular to the distance between the passed in vectors > function Barrier:projectilePositionAndAim(from, to) > local direction = vec2.norm(world.distance(to, from)) > local mid = {(from[1] + to[1]) / 2, (from[2] + to[2]) / 2} 81,82c73,78 < return mid, direction < end --- > local toOwner = world.distance(mid, world.entityPosition(activeItem.ownerEntityId())) > > -- out of the two possible perpendicular vectors, pick the one pointing horizontally away from the player > local perp1 = {direction[2], -direction[1]} > local perp2 = {-direction[2], direction[1]} > direction = vec2.dot(perp1, toOwner) > 0 and perp1 or perp2 84c80 < return barrier --- > return mid, direction items\active\weapons\melee\altabilities\spear\charge\charge.altability 65a66,67 > "class" : "Charge", > items\active\weapons\melee\altabilities\spear\charge\charge.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local charge = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Charge = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) 7,8c6,107 < function charge:init() < self:reset() --- > function Charge:init() > self:reset() > end > > function Charge:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > if self.weapon.currentAbility == nil and self.fireMode == "alt" and not status.resourceLocked("energy") then > self:setState(self.charge) > end > end > > function Charge:charge() > self.weapon:setStance(self.stances.charge) > self.weapon:updateAim() > > animator.setAnimationState("dashSwoosh", "charge") > > local chargeTimer = 0 > local chargeLevel = 0 > while self.fireMode == "alt" and (chargeLevel == self.chargeLevels or status.overConsumeResource("energy", (self.maxEnergyUsage / self.chargeTime) * self.dt)) do > chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) > chargeLevel = self:setChargeLevel(chargeTimer, chargeLevel) > coroutine.yield() > end > > if chargeTimer > self.minChargeTime then > self:setState(self.dash, chargeTimer / self.chargeTime) > end > end > > function Charge:dash(charge) > self.weapon:setStance(self.stances.dash) > self.weapon:updateAim() > > self:setLightning(3, self.dashLightning[1], self.dashLightning[2], self.dashLightning[3], self.dashLightning[4], 8) > > animator.burstParticleEmitter(self.weapon.elementalType .. "swoosh") > animator.setAnimationState("swoosh", "fire") > animator.setAnimationState("dashSwoosh", "full") > animator.playSound("fire") > > util.wait(self.maxDashTime * charge, function(dt) > local aimDirection = {mcontroller.facingDirection() * math.cos(self.weapon.aimAngle), math.sin(self.weapon.aimAngle)} > mcontroller.controlApproachVelocity(vec2.mul(aimDirection, self.dashMaxSpeed), self.dashControlForce) > mcontroller.controlParameters({ > airFriction = 0, > groundFriction = 0, > liquidFriction = 0, > gravityEnabled = false > }) > > local damageArea = partDamageArea("dashSwoosh") > self.damageConfig.baseDamage = self.baseDps * self.chargeTime * charge > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > -- freeze in mid air for a short amount of time > util.wait(self.freezeTime, function(dt) > mcontroller.controlParameters({ > gravityEnabled = false > }) > mcontroller.setVelocity({0,0}) > end) > end > > function Charge:reset() > activeItem.setScriptedAnimationParameter("lightning", {}) > animator.setAnimationState("dashSwoosh", "idle") > end > > function Charge:uninit() > self:reset() > if self.weapon.currentState == self.dash then > mcontroller.setVelocity({0,0}) > end > end > > function Charge:setChargeLevel(chargeTimer, currentLevel) > local level = math.min(self.chargeLevels, math.ceil(chargeTimer / self.chargeTime * self.chargeLevels)) > if currentLevel < level then > local lightningCharge = self.lightningChargeLevels[level] > self:setLightning(3, lightningCharge[1], lightningCharge[2], lightningCharge[3], lightningCharge[4], 2.75 + level) > end > return level > end > > function Charge:setLightning(amount, width, forks, branching, color, length) > local lightning = {} > for i = 1, amount do > local bolt = { > minDisplacement = 0.125, > forks = forks, > forkAngleRange = 0.75, > width = width, > color = color, > endPointDisplacement = -branching + (i * 2 * branching) > } > bolt.startLine = vec2.rotate(vec2.add(self.weapon.weaponOffset, {0, 4.0}), self.weapon.relativeWeaponRotation) > bolt.endLine = vec2.rotate(vec2.add(self.weapon.weaponOffset, {0, 4.0 - length}), self.weapon.relativeWeaponRotation) > bolt.displacement = vec2.mag(vec2.sub(bolt.endLine, bolt.startLine)) / 4 > table.insert(lightning, bolt) 10,113c109 < < function charge:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < if self.weapon.currentAbility == nil and self.fireMode == "alt" and not status.resourceLocked("energy") then < self:setState(self.charge) < end < end < < function charge:charge() < self.weapon:setStance(self.stances.charge) < self.weapon:updateAim() < < animator.setAnimationState("dashSwoosh", "charge") < < local chargeTimer = 0 < local chargeLevel = 0 < while self.fireMode == "alt" and (chargeLevel == self.chargeLevels or status.overConsumeResource("energy", (self.maxEnergyUsage / self.chargeTime) * self.dt)) do < chargeTimer = math.min(self.chargeTime, chargeTimer + self.dt) < chargeLevel = self:setChargeLevel(chargeTimer, chargeLevel) < coroutine.yield() < end < < if chargeTimer > self.minChargeTime then < self:setState(self.dash, chargeTimer / self.chargeTime) < end < end < < function charge:dash(charge) < self.weapon:setStance(self.stances.dash) < self.weapon:updateAim() < < self:setLightning(3, self.dashLightning[1], self.dashLightning[2], self.dashLightning[3], self.dashLightning[4], 8) < < animator.burstParticleEmitter(self.weapon.elementalType .. "swoosh") < animator.setAnimationState("swoosh", "fire") < animator.setAnimationState("dashSwoosh", "full") < animator.playSound("fire") < < util.wait(self.maxDashTime * charge, function(dt) < local aimDirection = {mcontroller.facingDirection() * math.cos(self.weapon.aimAngle), math.sin(self.weapon.aimAngle)} < mcontroller.controlApproachVelocity(vec2.mul(aimDirection, self.dashMaxSpeed), self.dashControlForce) < mcontroller.controlParameters({ < airFriction = 0, < groundFriction = 0, < liquidFriction = 0, < gravityEnabled = false < }) < < local damageArea = partDamageArea("dashSwoosh") < self.damageConfig.baseDamage = self.baseDps * self.chargeTime * charge < self.weapon:setDamage(self.damageConfig, damageArea) < end) < < -- freeze in mid air for a short amount of time < util.wait(self.freezeTime, function(dt) < mcontroller.controlParameters({ < gravityEnabled = false < }) < mcontroller.setVelocity({0,0}) < end) < end < < function charge:reset() < activeItem.setScriptedAnimationParameter("lightning", {}) < animator.setAnimationState("dashSwoosh", "idle") < end < < function charge:uninit() < self:reset() < if self.weapon.currentState == self.dash then < mcontroller.setVelocity({0,0}) < end < end < < function charge:setChargeLevel(chargeTimer, currentLevel) < local level = math.min(self.chargeLevels, math.ceil(chargeTimer / self.chargeTime * self.chargeLevels)) < if currentLevel < level then < local lightningCharge = self.lightningChargeLevels[level] < self:setLightning(3, lightningCharge[1], lightningCharge[2], lightningCharge[3], lightningCharge[4], 2.75 + level) < end < return level < end < < function charge:setLightning(amount, width, forks, branching, color, length) < local lightning = {} < for i = 1, amount do < local bolt = { < minDisplacement = 0.125, < forks = forks, < forkAngleRange = 0.75, < width = width, < color = color, < endPointDisplacement = -branching + (i * 2 * branching) < } < bolt.startLine = vec2.rotate(vec2.add(self.weapon.weaponOffset, {0, 4.0}), self.weapon.relativeWeaponRotation) < bolt.endLine = vec2.rotate(vec2.add(self.weapon.weaponOffset, {0, 4.0 - length}), self.weapon.relativeWeaponRotation) < bolt.displacement = vec2.mag(vec2.sub(bolt.endLine, bolt.startLine)) / 4 < table.insert(lightning, bolt) < end < activeItem.setScriptedAnimationParameter("lightning", lightning) < end < < return charge --- > activeItem.setScriptedAnimationParameter("lightning", lightning) items\active\weapons\melee\altabilities\spear\elementalspin\elementalspin.altability 113a114 > "class" : "ElementalSpin", items\active\weapons\melee\altabilities\spear\elementalspin\elementalspin.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local elementalSpin = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > ElementalSpin = WeaponAbility:new() 8,11c7,10 < function elementalSpin:init() < self:reset() < self.cooldownTimer = self.cooldownTime < end --- > function ElementalSpin:init() > self:reset() > self.cooldownTimer = self.cooldownTime > end 13,14c12,13 < function elementalSpin:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function ElementalSpin:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 18,20c17,18 < if self.weapon.currentAbility == nil and self.cooldownTimer == 0 and fireMode == "alt" and not status.resourceLocked("energy") then < self:setState(self.windup) < end --- > if self.weapon.currentAbility == nil and self.cooldownTimer == 0 and fireMode == "alt" and not status.resourceLocked("energy") then > self:setState(self.windup) 21a20 > end 23,44c22,24 < function elementalSpin:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() < < animator.setAnimationState("spinSwoosh", "spin") < animator.setParticleEmitterActive(self.weapon.elementalType.."Spin", true) < self.weapon.aimAngle = 0 < activeItem.setOutsideOfHand(true) < < animator.playSound(self.weapon.elementalType.."Spin", -1) < < local duration = self.stances.windup.duration < while self.fireMode == "alt" or duration > 0 do < duration = math.max(0, duration - self.dt) < self.weapon.relativeWeaponRotation = self.weapon.relativeWeaponRotation + util.toRadians(self.spinRate * self.dt) < < if status.overConsumeResource("energy", self.energyUsage * self.dt) then < local damageArea = partDamageArea("spinSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < elseif duration == 0 then < break < end --- > function ElementalSpin:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 46,47c26,29 < coroutine.yield() < end --- > animator.setAnimationState("spinSwoosh", "spin") > animator.setParticleEmitterActive(self.weapon.elementalType.."Spin", true) > self.weapon.aimAngle = 0 > activeItem.setOutsideOfHand(true) 49c31 < animator.stopAllSounds(self.weapon.elementalType.."Spin") --- > animator.playSound(self.weapon.elementalType.."Spin", -1) 51,52c33,42 < if status.overConsumeResource("energy", self.projectileEnergyCost) then < self:setState(self.fire) --- > local duration = self.stances.windup.duration > while self.fireMode == "alt" or duration > 0 do > duration = math.max(0, duration - self.dt) > self.weapon.relativeWeaponRotation = self.weapon.relativeWeaponRotation + util.toRadians(self.spinRate * self.dt) > > if status.overConsumeResource("energy", self.energyUsage * self.dt) then > local damageArea = partDamageArea("spinSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > elseif duration == 0 then > break 55c45 < self.cooldownTimer = self.cooldownTime --- > coroutine.yield() 58,70c48 < function elementalSpin:fire() < self.weapon:setStance(self.stances.fire) < self.weapon:updateAim() < < animator.setParticleEmitterActive(self.weapon.elementalType.."Spin", false) < animator.setAnimationState("spinSwoosh", "idle") < animator.playSound(self.weapon.elementalType.."SpinFire") < < local position = vec2.add(mcontroller.position(), activeItem.handPosition()) < local params = copy(self.projectileParameters) < params.powerMultiplier = activeItem.ownerPowerMultiplier() < params.power = params.power * config.getParameter("damageLevelMultiplier") < world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), {self.weapon.aimDirection, 0}, false, params) --- > animator.stopAllSounds(self.weapon.elementalType.."Spin") 72c50,51 < util.wait(self.stances.fire.duration) --- > if status.overConsumeResource("energy", self.projectileEnergyCost) then > self:setState(self.fire) 75,80c54,55 < function elementalSpin:reset() < animator.setAnimationState("spinSwoosh", "idle") < animator.setParticleEmitterActive(self.weapon.elementalType.."Spin", false) < activeItem.setOutsideOfHand(false) < animator.stopAllSounds(self.weapon.elementalType.."Spin") < end --- > self.cooldownTimer = self.cooldownTime > end 82,84c57,79 < function elementalSpin:uninit() < self:reset() < end --- > function ElementalSpin:fire() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() > > animator.setParticleEmitterActive(self.weapon.elementalType.."Spin", false) > animator.setAnimationState("spinSwoosh", "idle") > animator.playSound(self.weapon.elementalType.."SpinFire") > > local position = vec2.add(mcontroller.position(), activeItem.handPosition()) > local params = copy(self.projectileParameters) > params.powerMultiplier = activeItem.ownerPowerMultiplier() > params.power = params.power * config.getParameter("damageLevelMultiplier") > world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), {self.weapon.aimDirection, 0}, false, params) > > util.wait(self.stances.fire.duration) > end > > function ElementalSpin:reset() > animator.setAnimationState("spinSwoosh", "idle") > animator.setParticleEmitterActive(self.weapon.elementalType.."Spin", false) > activeItem.setOutsideOfHand(false) > animator.stopAllSounds(self.weapon.elementalType.."Spin") > end 86,87c81,83 < return elementalSpin < end \ No newline at end of file --- > function ElementalSpin:uninit() > self:reset() > end items\active\weapons\melee\altabilities\spear\flurry\flurry.altability 12a13 > "class" : "Flurry", 54c55 < } \ No newline at end of file --- > } items\active\weapons\melee\altabilities\spear\flurry\flurry.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local flurry = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Flurry = WeaponAbility:new() 7,9c6,21 < function flurry:init() < self.cooldownTimer = self.cooldownTime < self:reset() --- > function Flurry:init() > self.cooldownTimer = self.cooldownTime > self:reset() > end > > function Flurry:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) > > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and self.fireMode == "alt" then > > self:setState(self.swing) 10a23 > end 12,55c25,53 < function flurry:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) < < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and self.fireMode == "alt" then < < self:setState(self.swing) < end < end < < function flurry:swing() < local cooldownTime = self.maxCooldownTime < local currentRotationOffset = 1 < while self.fireMode == "alt" do < if not status.overConsumeResource("energy", self.energyUsage) then break end < < self.weapon:setStance(self.stances.swing) < self.weapon.relativeWeaponRotation = util.toRadians(self.stances.swing.weaponRotation + self.cycleRotationOffsets[currentRotationOffset]) < self.weapon.relativeArmRotation = util.toRadians(self.stances.swing.armRotation + self.cycleRotationOffsets[currentRotationOffset]) < self.weapon:updateAim() < < animator.setAnimationState("swoosh", "fire") < animator.playSound("flurry") < util.wait(self.stances.swing.duration, function(dt) < local damageArea = partDamageArea("swoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < end) < < -- allow changing aim during cooldown < self.weapon:setStance(self.stances.idle) < util.wait(cooldownTime - self.stances.swing.duration, function(dt) < return self.fireMode ~= "alt" < end) < < cooldownTime = math.max(self.minCooldownTime, cooldownTime - self.cooldownSwingReduction) < < currentRotationOffset = currentRotationOffset + 1 < if currentRotationOffset > #self.cycleRotationOffsets then < currentRotationOffset = 1 < end --- > function Flurry:swing() > local cooldownTime = self.maxCooldownTime > local currentRotationOffset = 1 > while self.fireMode == "alt" do > if not status.overConsumeResource("energy", self.energyUsage) then break end > > self.weapon:setStance(self.stances.swing) > self.weapon.relativeWeaponRotation = util.toRadians(self.stances.swing.weaponRotation + self.cycleRotationOffsets[currentRotationOffset]) > self.weapon.relativeArmRotation = util.toRadians(self.stances.swing.armRotation + self.cycleRotationOffsets[currentRotationOffset]) > self.weapon:updateAim() > > animator.setAnimationState("swoosh", "fire") > animator.playSound("flurry") > util.wait(self.stances.swing.duration, function(dt) > local damageArea = partDamageArea("swoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > -- allow changing aim during cooldown > self.weapon:setStance(self.stances.idle) > util.wait(cooldownTime - self.stances.swing.duration, function(dt) > return self.fireMode ~= "alt" > end) > > cooldownTime = math.max(self.minCooldownTime, cooldownTime - self.cooldownSwingReduction) > > currentRotationOffset = currentRotationOffset + 1 > if currentRotationOffset > #self.cycleRotationOffsets then > currentRotationOffset = 1 57,60d54 < self.cooldownTimer = self.cooldownTime < end < < function flurry:reset() 61a56,57 > self.cooldownTimer = self.cooldownTime > end 63,65c59,60 < function flurry:uninit() < self:reset() < end --- > function Flurry:reset() > end 67c62,63 < return flurry --- > function Flurry:uninit() > self:reset() items\active\weapons\melee\altabilities\spear\rocketspear\rocketspear.altability 78a79 > "class" : "RocketSpear", items\active\weapons\melee\altabilities\spear\rocketspear\rocketspear.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local rocketSpear = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > RocketSpear = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) 7,8c6,7 < function rocketSpear:init() < self:reset() --- > function RocketSpear:init() > self:reset() 10,11c9,10 < self.cooldownTimer = self.cooldownTime < end --- > self.cooldownTimer = self.cooldownTime > end 13,14c12,13 < function rocketSpear:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function RocketSpear:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 18,22c17,21 < if self.weapon.currentAbility == nil < and self.fireMode == "alt" < and self.cooldownTimer == 0 < and not status.statPositive("activeMovementAbilities") < and not status.resourceLocked("energy") then --- > if self.weapon.currentAbility == nil > and self.fireMode == "alt" > and self.cooldownTimer == 0 > and not status.statPositive("activeMovementAbilities") > and not status.resourceLocked("energy") then 24,25c23 < self:setState(self.windup) < end --- > self:setState(self.windup) 26a25 > end 28,30c27,29 < function rocketSpear:windup() < self.weapon:setStance(self.stances.windup) < self.weapon:updateAim() --- > function RocketSpear:windup() > self.weapon:setStance(self.stances.windup) > self.weapon:updateAim() 32c31 < status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) --- > status.setPersistentEffects("movementAbility", {{stat = "activeMovementAbilities", amount = 1}}) 34c33 < animator.setAnimationState("chargeSwoosh", "charge") --- > animator.setAnimationState("chargeSwoosh", "charge") 36c35 < util.wait(self.stances.windup.duration) --- > util.wait(self.stances.windup.duration) 38,39c37,47 < self:setState(self.fire) < end --- > self:setState(self.fire) > end > > function RocketSpear:fire() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() > > animator.setAnimationState("chargeSwoosh", "full") > animator.playSound("fire") > animator.playSound(self.weapon.elementalType.."Start") > animator.playSound(self.weapon.elementalType.."Blast", -1) 41,42c49,54 < function rocketSpear:fire() < self.weapon:setStance(self.stances.fire) --- > local params = copy(self.projectileParameters) > params.power = self.baseDps * self.fireTime * config.getParameter("damageLevelMultiplier") > params.powerMultiplier = activeItem.ownerPowerMultiplier() > > local fireTimer = 0 > while self.fireMode == "alt" and status.overConsumeResource("energy", self.energyUsage * self.dt) do 45,69c57,58 < animator.setAnimationState("chargeSwoosh", "full") < animator.playSound("fire") < animator.playSound(self.weapon.elementalType.."Start") < animator.playSound(self.weapon.elementalType.."Blast", -1) < < local params = copy(self.projectileParameters) < params.power = self.baseDps * self.fireTime * config.getParameter("damageLevelMultiplier") < params.powerMultiplier = activeItem.ownerPowerMultiplier() < < local fireTimer = 0 < while self.fireMode == "alt" and status.overConsumeResource("energy", self.energyUsage * self.dt) do < self.weapon:updateAim() < < local boostAngle = mcontroller.facingDirection() == 1 and self.weapon.aimAngle + math.pi or -self.weapon.aimAngle < mcontroller.controlApproachVelocityAlongAngle(boostAngle, self.boostSpeed, self.boostForce, true) < < fireTimer = math.max(0, fireTimer - self.dt) < if fireTimer == 0 then < fireTimer = self.fireTime < local position = vec2.add(mcontroller.position(), activeItem.handPosition(animator.partPoint("chargeSwoosh", "projectileSource"))) < local aim = self.weapon.aimAngle + util.randomInRange({-self.inaccuracy, self.inaccuracy}) < if not world.lineTileCollision(mcontroller.position(), position) then < world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), {mcontroller.facingDirection() * math.cos(aim), math.sin(aim)}, false, params) < end < end --- > local boostAngle = mcontroller.facingDirection() == 1 and self.weapon.aimAngle + math.pi or -self.weapon.aimAngle > mcontroller.controlApproachVelocityAlongAngle(boostAngle, self.boostSpeed, self.boostForce, true) 71c60,67 < coroutine.yield() --- > fireTimer = math.max(0, fireTimer - self.dt) > if fireTimer == 0 then > fireTimer = self.fireTime > local position = vec2.add(mcontroller.position(), activeItem.handPosition(animator.partPoint("chargeSwoosh", "projectileSource"))) > local aim = self.weapon.aimAngle + util.randomInRange({-self.inaccuracy, self.inaccuracy}) > if not world.lineTileCollision(mcontroller.position(), position) then > world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), {mcontroller.facingDirection() * math.cos(aim), math.sin(aim)}, false, params) > end 74,77c70 < animator.stopAllSounds(self.weapon.elementalType.."Start") < animator.stopAllSounds(self.weapon.elementalType.."Blast") < animator.playSound(self.weapon.elementalType.."End") < self.cooldownTimer = self.cooldownTime --- > coroutine.yield() 80,88c73,83 < function rocketSpear:reset() < status.clearPersistentEffects("movementAbility") < animator.setAnimationState("chargeSwoosh", "idle") < animator.stopAllSounds(self.weapon.elementalType.."Blast") < end < < function rocketSpear:uninit() < self:reset() < end --- > animator.stopAllSounds(self.weapon.elementalType.."Start") > animator.stopAllSounds(self.weapon.elementalType.."Blast") > animator.playSound(self.weapon.elementalType.."End") > self.cooldownTimer = self.cooldownTime > end > > function RocketSpear:reset() > status.clearPersistentEffects("movementAbility") > animator.setAnimationState("chargeSwoosh", "idle") > animator.stopAllSounds(self.weapon.elementalType.."Blast") > end 90c85,86 < return rocketSpear --- > function RocketSpear:uninit() > self:reset() items\active\weapons\melee\altabilities\spear\spin\spin.altability 53a54,55 > "class" : "Spin", > items\active\weapons\melee\altabilities\spear\spin\spin.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local spin = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Spin = WeaponAbility:new() 7,9c6,21 < function spin:init() < self.cooldownTimer = self.cooldownTime < self:reset() --- > function Spin:init() > self.cooldownTimer = self.cooldownTime > self:reset() > end > > function Spin:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) > > if self.weapon.currentAbility == nil > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and self.fireMode == "alt" then > > self:setState(self.spin) 10a23 > end 12,13c25,37 < function spin:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function Spin:spin() > self.weapon:setStance(self.stances.spin) > self.weapon:updateAim() > > animator.setAnimationState("spinSwoosh", "spin") > self.weapon.aimAngle = 0 > activeItem.setOutsideOfHand(true) > > while self.fireMode == "alt" and status.overConsumeResource("energy", self.energyUsage * self.dt) do > self.weapon.relativeWeaponRotation = self.weapon.relativeWeaponRotation + util.toRadians(self.spinRate * self.dt) > local damageArea = partDamageArea("spinSwoosh") > self.weapon:setDamage(self.damageConfig, damageArea) > mcontroller.controlModifiers({runningSuppressed=true}) 15,51c39 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) < < if self.weapon.currentAbility == nil < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and self.fireMode == "alt" then < < self:setState(self.spin) < end < end < < function spin:spin() < self.weapon:setStance(self.stances.spin) < self.weapon:updateAim() < < animator.setAnimationState("spinSwoosh", "spin") < self.weapon.aimAngle = 0 < activeItem.setOutsideOfHand(true) < < while self.fireMode == "alt" and status.overConsumeResource("energy", self.energyUsage * self.dt) do < self.weapon.relativeWeaponRotation = self.weapon.relativeWeaponRotation + util.toRadians(self.spinRate * self.dt) < local damageArea = partDamageArea("spinSwoosh") < self.weapon:setDamage(self.damageConfig, damageArea) < mcontroller.controlModifiers({runningSuppressed=true}) < < coroutine.yield() < end < self.cooldownTimer = self.cooldownTime < end < < function spin:reset() < animator.setAnimationState("spinSwoosh", "idle") < activeItem.setOutsideOfHand(false) < end < < function spin:uninit() < self:reset() --- > coroutine.yield() 52a41,42 > self.cooldownTimer = self.cooldownTime > end 54,55c44,51 < return spin < end \ No newline at end of file --- > function Spin:reset() > animator.setAnimationState("spinSwoosh", "idle") > activeItem.setOutsideOfHand(false) > end > > function Spin:uninit() > self:reset() > end items\active\weapons\melee\axe\commonaxe.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,54d34 < } < }, < "fireSounds" : [ "/sfx/melee/swing_axe.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.0], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.5], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false 56,64c36,65 < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -45, < "weaponOffset" : [0.25, 2.75], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.0], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.5], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -45, > "weaponOffset" : [0.25, 2.75], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > } 66a68 > "fireSounds" : [ "/sfx/melee/swing_axe.ogg" ], items\active\weapons\melee\axe\deadbeataxe.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,54d34 < } < }, < "fireSounds" : [ "/sfx/melee/swing_axe.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.0], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "duration" : 0.3, < "armRotation" : 90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.5], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false 56,64c36,65 < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -45, < "weaponOffset" : [0.25, 2.75], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.0], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.3, > "armRotation" : 90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.5], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -45, > "weaponOffset" : [0.25, 2.75], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > } 66a68 > "fireSounds" : [ "/sfx/melee/swing_axe.ogg" ], 87d88 < items\active\weapons\melee\axe\npcaxe.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,55d34 < } < }, < "fireSounds" : [ "/sfx/melee/swing_axe.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.0], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "hold" : true, < "duration" : 0.45, < "armRotation" : 90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.5], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : true 57,65c36,66 < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -45, < "weaponOffset" : [0.25, 2.75], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.0], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "hold" : true, > "duration" : 0.45, > "armRotation" : 90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.5], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : true > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -45, > "weaponOffset" : [0.25, 2.75], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > } 67a69 > "fireSounds" : [ "/sfx/melee/swing_axe.ogg" ], items\active\weapons\melee\axe\rareaxe.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,43d34 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.0], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : true 45,63c36,65 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.5], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -45, < "weaponOffset" : [0.25, 2.75], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.0], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.5], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -45, > "weaponOffset" : [0.25, 2.75], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > } items\active\weapons\melee\axe\uncommonaxe.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,43d34 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.0], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : true 45,63c36,65 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : 0, < "weaponOffset" : [0.25, 2.5], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -45, < "weaponOffset" : [0.25, 2.75], < "twoHanded" : false, < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.0], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : 0, > "weaponOffset" : [0.25, 2.5], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -45, > "weaponOffset" : [0.25, 2.75], > "twoHanded" : false, > > "allowFlip" : true, > "allowRotate" : false > } items\active\weapons\melee\broadsword\commonbroadsword.activeitem 20c20,23 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 29,38d31 < } < }, < "fireSounds" : [ "/sfx/melee/swing_broadsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 40,65c33,66 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 67a69 > "fireSounds" : [ "/sfx/melee/swing_broadsword.ogg" ], items\active\weapons\melee\broadsword\npcbroadsword.activeitem 20c20,23 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 29,38d31 < } < }, < "fireSounds" : [ "/sfx/melee/swing_broadsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 40,66c33,67 < "windup" : { < "hold" : true, < "duration" : 0.45, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "hold" : true, > "duration" : 0.45, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 68a70 > "fireSounds" : [ "/sfx/melee/swing_broadsword.ogg" ], items\active\weapons\melee\broadsword\rarebroadsword.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,57d33 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 59,66c35,68 < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 69c71 < --- > items\active\weapons\melee\broadsword\uncommonbroadsword.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,57d33 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 59,66c35,68 < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 69c71 < --- > items\active\weapons\melee\cultistshortsword\npccultistshortsword.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,52d33 < } < }, < "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "hold" : true, < "duration" : 0.35, < "armRotation" : -15, < "weaponRotation" : -60, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 54,61c35,62 < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "hold" : true, > "duration" : 0.35, > "armRotation" : -15, > "weaponRotation" : -60, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } 63a65 > "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], items\active\weapons\melee\dagger\commondagger.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,51d33 < } < }, < "fireSounds" : [ "/sfx/melee/swing_dagger.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "duration" : 0.05, < "armRotation" : -20, < "weaponRotation" : -20, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : false 53,60c35,61 < "fire" : { < "duration" : 0.2, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -20, > "weaponRotation" : -20, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.2, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } 62a64 > "fireSounds" : [ "/sfx/melee/swing_dagger.ogg" ], items\active\weapons\melee\dagger\npcdagger.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,52d33 < } < }, < "fireSounds" : [ "/sfx/melee/swing_dagger.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "hold" : true, < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -20, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 54,61c35,62 < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "hold" : true, > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -20, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } 63a65 > "fireSounds" : [ "/sfx/melee/swing_dagger.ogg" ], items\active\weapons\melee\dagger\raredagger.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,42d34 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 44,60c36,62 < "windup" : { < "duration" : 0.05, < "armRotation" : -20, < "weaponRotation" : -20, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : false < }, < "fire" : { < "duration" : 0.2, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -20, > "weaponRotation" : -20, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.2, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } items\active\weapons\melee\dagger\uncommondagger.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,42d34 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 44,60c36,62 < "windup" : { < "duration" : 0.05, < "armRotation" : -20, < "weaponRotation" : -20, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : false < }, < "fire" : { < "duration" : 0.2, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -20, > "weaponRotation" : -20, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.2, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } items\active\weapons\melee\hammer\commonhammer.activeitem 20c20,23 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 29,81c32,82 < "smashMomentum" : [0, -45] < }, < "fireSounds" : [ "/sfx/melee/swing_hammer.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 83a85 > "fireSounds" : [ "/sfx/melee/swing_hammer.ogg" ], items\active\weapons\melee\hammer\hammer.lua 18,19c18,19 < local primaryAttack = HammerSmash:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(primaryAttack) --- > local primaryAbility = getPrimaryAbility() > self.weapon:addAbility(primaryAbility) 123c123 < end \ No newline at end of file --- > end items\active\weapons\melee\hammer\npchammer.activeitem 20c20,23 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 29,81c32,82 < "smashMomentum" : [0, -45] < }, < "fireSounds" : [ "/sfx/melee/swing_hammer.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.45, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.4, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.45, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.4, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 83a85 > "fireSounds" : [ "/sfx/melee/swing_hammer.ogg" ], items\active\weapons\melee\hammer\rarehammer.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 31,82c34,84 < "smashMomentum" : [0, -45] < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\melee\hammer\uncommonhammer.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 31,82c34,84 < "smashMomentum" : [0, -45] < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\melee\shortsword\commonshortsword.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,51d33 < } < }, < "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "duration" : 0.05, < "armRotation" : -15, < "weaponRotation" : -60, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : false 53,60c35,61 < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -15, > "weaponRotation" : -60, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } 62a64 > "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], items\active\weapons\melee\shortsword\npcshortsword.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 31,52d33 < } < }, < "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "hold" : true, < "duration" : 0.35, < "armRotation" : -15, < "weaponRotation" : -60, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 54,61c35,62 < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "hold" : true, > "duration" : 0.35, > "armRotation" : -15, > "weaponRotation" : -60, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } 63a65 > "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], items\active\weapons\melee\shortsword\rareshortsword.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,42d34 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 44,60c36,62 < "windup" : { < "duration" : 0.05, < "armRotation" : -15, < "weaponRotation" : -60, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -15, > "weaponRotation" : -60, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } items\active\weapons\melee\shortsword\uncommonshortsword.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 32,42d34 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : true 44,60c36,62 < "windup" : { < "duration" : 0.05, < "armRotation" : -15, < "weaponRotation" : -60, < "weaponOffset" : [0, 2.25], < < "allowFlip" : true, < "allowRotate" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 2.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -15, > "weaponRotation" : -60, > "weaponOffset" : [0, 2.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 2.5], > > "allowFlip" : true, > "allowRotate" : false > } items\active\weapons\melee\spear\commonspear.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 36,48d38 < } < }, < "fireSounds" : [ "/sfx/melee/swing_spear.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true 50,77c40,78 < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } 79a81 > "fireSounds" : [ "/sfx/melee/swing_spear.ogg" ], items\active\weapons\melee\spear\npcspear.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 37,49d39 < } < }, < "fireSounds" : [ "/sfx/melee/swing_spear.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true 51,79c41,80 < "windup" : { < "hold" : true, < "duration" : 0.55, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "hold" : true, > "duration" : 0.55, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } 81a83 > "fireSounds" : [ "/sfx/melee/swing_spear.ogg" ], items\active\weapons\melee\spear\rarespear.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 37,68d39 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 70,77c41,79 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\melee\spear\spear.lua 16,17c16,17 < local primaryAttack = SpearStab:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(primaryAttack) --- > local primaryAbility = getPrimaryAbility() > self.weapon:addAbility(primaryAbility) 65c65 < end \ No newline at end of file --- > end items\active\weapons\melee\spear\uncommonspear.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 37,68d39 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 70,77c41,79 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\other\nurusspear\nurusspear.activeitem 23c23,26 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "NuruSpearAttack", > 31,43d33 < } < }, < "fireSounds" : [ "/sfx/melee/swing_spear.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true 45,63c35,64 < "windup" : { < "duration" : 1.0, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : false, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 1.0, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : false, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > } 65,66c66,68 < } < } \ No newline at end of file --- > }, > "fireSounds" : [ "/sfx/melee/swing_spear.ogg" ] > } items\active\weapons\other\nurusspear\nurusspear.lua 10,11c10,11 < local primaryAttack = NuruSpearAttack:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(primaryAttack) --- > local primaryAbility = NuruSpearAttack:new(config.getParameter("primaryAbility"), config.getParameter("stances")) > self.weapon:addAbility(primaryAbility) 84c84 < end \ No newline at end of file --- > end items\active\weapons\protectorate\brokenprotectoratebroadsword.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 43,52d45 < } < }, < "fireSounds" : [ "/sfx/melee/swing_broadsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 54,79c47,80 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 81a83 > "fireSounds" : [ "/sfx/melee/swing_broadsword.ogg" ], items\active\weapons\protectorate\durasteelbroadsword.activeitem 31c31,34 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 40,57d42 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true 59,75c44,77 < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\protectorate\ironbroadsword.activeitem 31c31,34 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 40,57d42 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true 59,75c44,77 < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\protectorate\ironshortsword.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 41,61d43 < } < }, < "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [0, 1.25], < < "allowFlip" : true, < "allowRotate" : true < }, < "windup" : { < "duration" : 0.05, < "armRotation" : -15, < "weaponRotation" : -60, < "weaponOffset" : [0, 1.25], < < "allowFlip" : true, < "allowRotate" : false 63,70c45,71 < "fire" : { < "duration" : 0.4, < "armRotation" : -135, < "weaponRotation" : 40, < "weaponOffset" : [0, 1.5], < < "allowFlip" : true, < "allowRotate" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [0, 1.25], > > "allowFlip" : true, > "allowRotate" : true > }, > "windup" : { > "duration" : 0.05, > "armRotation" : -15, > "weaponRotation" : -60, > "weaponOffset" : [0, 1.25], > > "allowFlip" : true, > "allowRotate" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -135, > "weaponRotation" : 40, > "weaponOffset" : [0, 1.5], > > "allowFlip" : true, > "allowRotate" : false > } 72a74 > "fireSounds" : [ "/sfx/melee/swing_shortsword.ogg" ], items\active\weapons\protectorate\titaniumspear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\protectorate\tungstenhammer.activeitem 31c31,34 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 40,91c43,93 < "smashMomentum" : [0, -45] < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\ranged\gun.animation 58,62d57 < "off" : { < "properties" : { < "image" : "" < } < }, 87d81 < "emissionRate" : 10.0, items\active\weapons\ranged\gun.lua 5d4 < require "/items/active/weapons/ranged/gunfire.lua" 16,17c15,16 < local primaryAttack = GunFire:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(primaryAttack) --- > local primaryAbility = getPrimaryAbility() > self.weapon:addAbility(primaryAbility) items\active\weapons\ranged\altabilities\altfire.lua 4,6c4 < function setupAltAbility(altAbilityConfig, elementalType) < local primary = config.getParameter("primaryAttack") < local altFireAttack = GunFire:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) --- > AltFireAttack = GunFire:new() 8,36c6,24 < function altFireAttack:init() < self.cooldownTimer = self.fireTime < end < < function altFireAttack:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) < < if self.fireMode == "alt" < and not self.weapon.currentAbility < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then < < if self.fireType == "auto" and status.overConsumeResource("energy", self:energyPerShot()) then < self:setState(self.auto) < elseif self.fireType == "burst" then < self:setState(self.burst) < end < end < end < < function altFireAttack:muzzleFlash() < if not self.hidePrimaryMuzzleFlash then < animator.setPartTag("muzzleFlash", "variant", math.random(1, 3)) < animator.setAnimationState("firing", "fire") < animator.setLightActive("muzzleFlash", true) < end --- > function AltFireAttack:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return GunFire.new(self, sb.jsonMerge(primary, abilityConfig)) > end > > function AltFireAttack:init() > self.cooldownTimer = self.fireTime > end > > function AltFireAttack:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) > > if self.fireMode == "alt" > and not self.weapon.currentAbility > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then 38,39c26,29 < if self.useParticleEmitter == nil or self.useParticleEmitter then < animator.burstParticleEmitter("altMuzzleFlash", true) --- > if self.fireType == "auto" and status.overConsumeResource("energy", self:energyPerShot()) then > self:setState(self.auto) > elseif self.fireType == "burst" then > self:setState(self.burst) 40a31,32 > end > end 42,46c34,42 < if self.usePrimaryFireSound then < animator.playSound("fire") < else < animator.playSound("altFire") < end --- > function AltFireAttack:muzzleFlash() > if not self.hidePrimaryMuzzleFlash then > animator.setPartTag("muzzleFlash", "variant", math.random(1, 3)) > animator.setAnimationState("firing", "fire") > animator.setLightActive("muzzleFlash", true) > end > > if self.useParticleEmitter == nil or self.useParticleEmitter then > animator.burstParticleEmitter("altMuzzleFlash", true) 49,54c45,48 < function altFireAttack:firePosition() < if self.firePositionPart then < return vec2.add(mcontroller.position(), activeItem.handPosition(animator.partPoint(self.firePositionPart, "firePosition"))) < else < return GunFire.firePosition(self) < end --- > if self.usePrimaryFireSound then > animator.playSound("fire") > else > animator.playSound("altFire") 55a50 > end 57c52,57 < return altFireAttack --- > function AltFireAttack:firePosition() > if self.firePositionPart then > return vec2.add(mcontroller.position(), activeItem.handPosition(animator.partPoint(self.firePositionPart, "firePosition"))) > else > return GunFire.firePosition(self) > end items\active\weapons\ranged\altabilities\bouncingshot\bouncingshot.altability 28a29 > "class" : "AltFireAttack", items\active\weapons\ranged\altabilities\burstshot\burstshot.altability 60a61 > "class" : "BurstShot", items\active\weapons\ranged\altabilities\burstshot\burstshot.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local burstShot = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > BurstShot = WeaponAbility:new() 7,8c6,7 < function burstShot:init() < self:reset() --- > function BurstShot:init() > self:reset() 10,11c9,10 < self.cooldownTimer = 0 < end --- > self.cooldownTimer = 0 > end 13,14c12,13 < function burstShot:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function BurstShot:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 16c15 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 18,22c17,21 < if self.weapon.currentAbility == nil < and self.fireMode == "alt" < and self.cooldownTimer == 0 < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) < and status.overConsumeResource("energy", self.energyUsage) then --- > if self.weapon.currentAbility == nil > and self.fireMode == "alt" > and self.cooldownTimer == 0 > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) > and status.overConsumeResource("energy", self.energyUsage) then 24,25c23 < self:setState(self.fire) < end --- > self:setState(self.fire) 26a25 > end 28,39c27,29 < function burstShot:fire() < self.weapon:setStance(self.stances.fire) < self.weapon:updateAim() < < animator.setAnimationState("burstShotFire", "fire") < animator.burstParticleEmitter("burstShotSmoke") < animator.playSound("burstshot") < < util.wait(self.stances.fire.duration, function() < local damageArea = partDamageArea("burstShotExplosion") < self.weapon:setDamage(self.damageConfig, damageArea) < end) --- > function BurstShot:fire() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() 41,42c31,33 < self.cooldownTimer = self.cooldownTime < end --- > animator.setAnimationState("burstShotFire", "fire") > animator.burstParticleEmitter("burstShotSmoke") > animator.playSound("burstshot") 44,46c35,38 < function burstShot:firePosition() < return vec2.add(mcontroller.position(), activeItem.handPosition(self.weapon.muzzleOffset)) < end --- > util.wait(self.stances.fire.duration, function() > local damageArea = partDamageArea("burstShotExplosion") > self.weapon:setDamage(self.damageConfig, damageArea) > end) 48,50c40,41 < function burstShot:reset() < animator.setAnimationState("burstShotFire", "idle") < end --- > self.cooldownTimer = self.cooldownTime > end 52,54c43,49 < function burstShot:uninit() < self:reset() < end --- > function BurstShot:firePosition() > return vec2.add(mcontroller.position(), activeItem.handPosition(self.weapon.muzzleOffset)) > end > > function BurstShot:reset() > animator.setAnimationState("burstShotFire", "idle") > end 56c51,52 < return burstShot --- > function BurstShot:uninit() > self:reset() items\active\weapons\ranged\altabilities\deathbomb\deathbomb.altability 20a21 > "class" : "AltFireAttack", items\active\weapons\ranged\altabilities\explosiveburst\explosiveburst.altability 26a27,28 > "class" : "ExplosiveBurst", > items\active\weapons\ranged\altabilities\explosiveburst\explosiveburst.lua 5,7c5 < function setupAltAbility(altAbilityConfig) < local primary = config.getParameter("primaryAttack") < local explosiveBurst = GunFire:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) --- > ExplosiveBurst = GunFire:new() 9,28c7,30 < function explosiveBurst:init() < self.cooldownTimer = self.fireTime < end < < function explosiveBurst:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) < < if self.fireMode == "alt" < and not self.weapon.currentAbility < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then < < if self.fireType == "auto" and status.overConsumeResource("energy", self:energyPerShot()) then < self:setState(self.auto) < elseif self.fireType == "burst" then < self:setState(self.burst) < end --- > function ExplosiveBurst:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return GunFire.new(self, sb.jsonMerge(primary, abilityConfig)) > end > > function ExplosiveBurst:init() > self.cooldownTimer = self.fireTime > end > > function ExplosiveBurst:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) > > if self.fireMode == "alt" > and not self.weapon.currentAbility > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then > > if self.fireType == "auto" and status.overConsumeResource("energy", self:energyPerShot()) then > self:setState(self.auto) > elseif self.fireType == "burst" then > self:setState(self.burst) 30a33 > end 32,36c35,36 < function explosiveBurst:burst() < self.aimDistance = world.magnitude(activeItem.ownerAimPosition(), self:firePosition()) < < return GunFire.burst(self) < end --- > function ExplosiveBurst:burst() > self.aimDistance = world.magnitude(activeItem.ownerAimPosition(), self:firePosition()) 38,41c38,39 < function explosiveBurst:fireProjectile(...) < local min = math.max(self.minDistance, self.aimDistance * 0.9) / self.projectileParameters.speed < local max = math.max(self.minDistance, self.aimDistance * 1.1) / self.projectileParameters.speed < self.projectileParameters.timeToLive = {min, max} --- > return GunFire.burst(self) > end 43c41,53 < GunFire.fireProjectile(self, ...) --- > function ExplosiveBurst:fireProjectile(...) > local min = math.max(self.minDistance, self.aimDistance * 0.9) / self.projectileParameters.speed > local max = math.max(self.minDistance, self.aimDistance * 1.1) / self.projectileParameters.speed > self.projectileParameters.timeToLive = {min, max} > > GunFire.fireProjectile(self, ...) > end > > function ExplosiveBurst:muzzleFlash() > if not self.hidePrimaryMuzzleFlash then > animator.setPartTag("muzzleFlash", "variant", math.random(1, 3)) > animator.setAnimationState("firing", "fire") > animator.setLightActive("muzzleFlash", true) 45,61c55,57 < < function explosiveBurst:muzzleFlash() < if not self.hidePrimaryMuzzleFlash then < animator.setPartTag("muzzleFlash", "variant", math.random(1, 3)) < animator.setAnimationState("firing", "fire") < animator.setLightActive("muzzleFlash", true) < end < < if self.useParticleEmitter == nil or self.useParticleEmitter then < animator.burstParticleEmitter("altMuzzleFlash", true) < end < < if self.usePrimaryFireSound then < animator.playSound("fire") < else < animator.playSound("altFire") < end --- > > if self.useParticleEmitter == nil or self.useParticleEmitter then > animator.burstParticleEmitter("altMuzzleFlash", true) 64c60,64 < return explosiveBurst --- > if self.usePrimaryFireSound then > animator.playSound("fire") > else > animator.playSound("altFire") > end items\active\weapons\ranged\altabilities\explosiveshot\explosiveshot.altability 28a29 > "class" : "AltFireAttack", items\active\weapons\ranged\altabilities\flashlight\flashlight.altability 39c39,40 < "scripts" : ["/items/active/weapons/ranged/altabilities/flashlight/flashlight.lua"] --- > "scripts" : ["/items/active/weapons/ranged/altabilities/flashlight/flashlight.lua"], > "class" : "Flashlight" items\active\weapons\ranged\altabilities\flashlight\flashlight.lua 1,2c1 < function setupAltAbility(altAbilityConfig) < local flashlight = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > Flashlight = WeaponAbility:new() 4,5c3,14 < function flashlight:init() < self:reset() --- > function Flashlight:init() > self:reset() > end > > function Flashlight:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > if self.fireMode == "alt" and self.lastFireMode ~= "alt" then > self.active = not self.active > animator.setLightActive("flashlight", self.active) > animator.setLightActive("flashlightSpread", self.active) > animator.playSound("flashlight") 6a16,17 > self.lastFireMode = fireMode > end 8,31c19,27 < function flashlight:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < if self.fireMode == "alt" and self.lastFireMode ~= "alt" then < self.active = not self.active < animator.setLightActive("flashlight", self.active) < animator.setLightActive("flashlightSpread", self.active) < animator.playSound("flashlight") < end < self.lastFireMode = fireMode < end < < function flashlight:reset() < animator.setLightActive("flashlight", false) < animator.setLightActive("flashlightSpread", false) < self.active = false < end < < function flashlight:uninit() < self:reset() < end < < return flashlight < end \ No newline at end of file --- > function Flashlight:reset() > animator.setLightActive("flashlight", false) > animator.setLightActive("flashlightSpread", false) > self.active = false > end > > function Flashlight:uninit() > self:reset() > end items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.altability 13a14 > "class" : "FuelAirTrail", 36c37 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\fuelairtrail\fuelairtrail.lua 5,6c5 < function setupAltAbility(altAbilityConfig) < local fuelAirTrail = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > FuelAirTrail = WeaponAbility:new() 8,10c7,9 < function fuelAirTrail:init() < self.cooldownTimer = 0 < end --- > function FuelAirTrail:init() > self.cooldownTimer = 0 > end 12,13c11,12 < function fuelAirTrail:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function FuelAirTrail:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 15c14 < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) 17,22c16,21 < if self.fireMode == "alt" < and not self.weapon.currentAbility < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) < and not world.liquidAt(self:firePosition()) then --- > if self.fireMode == "alt" > and not self.weapon.currentAbility > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) > and not world.liquidAt(self:firePosition()) then 24,25c23 < self:setState(self.fire) < end --- > self:setState(self.fire) 26a25 > end 28,36c27,29 < function fuelAirTrail:fire() < self.weapon:setStance(self.stances.fire) < self.weapon:updateAim() < < local pParams = copy(self.projectileParameters) < pParams.power = pParams.power * root.evalFunction("weaponDamageLevelMultiplier", config.getParameter("level", 1)) < pParams.powerMultiplier = activeItem.ownerPowerMultiplier() < < self:spawnProjectile(self:firePosition(), pParams) --- > function FuelAirTrail:fire() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() 38c31,33 < animator.playSound("trailLoop", -1) --- > local pParams = copy(self.projectileParameters) > pParams.power = pParams.power * root.evalFunction("weaponDamageLevelMultiplier", config.getParameter("level", 1)) > pParams.powerMultiplier = activeItem.ownerPowerMultiplier() 40,42c35 < -- lay trail < while self.fireMode == "alt" and not status.resourceLocked("energy") do < if not world.entityExists(self.lastProjectileId) then break end --- > self:spawnProjectile(self:firePosition(), pParams) 44,49c37 < if world.liquidAt(self:firePosition()) then return true end < < local lastPosition = world.entityPosition(self.lastProjectileId) < local delta = world.distance(self:firePosition(), lastPosition) < if vec2.mag(delta) >= self.projectileFrequency then < local nextPosition = vec2.add(lastPosition, vec2.mul(vec2.norm(delta), self.projectileFrequency)) --- > animator.playSound("trailLoop", -1) 51c39,41 < if world.pointTileCollision(nextPosition) then break end --- > -- lay trail > while self.fireMode == "alt" and not status.resourceLocked("energy") do > if not world.entityExists(self.lastProjectileId) then break end 53,54c43,48 < self:spawnProjectile(nextPosition, pParams) < end --- > if world.liquidAt(self:firePosition()) then return true end > > local lastPosition = world.entityPosition(self.lastProjectileId) > local delta = world.distance(self:firePosition(), lastPosition) > if vec2.mag(delta) >= self.projectileFrequency then > local nextPosition = vec2.add(lastPosition, vec2.mul(vec2.norm(delta), self.projectileFrequency)) 56,57c50 < coroutine.yield() < end --- > if world.pointTileCollision(nextPosition) then break end 59,63c52 < -- ignite trail < if self.lastProjectileId and world.entityExists(self.lastProjectileId) then < world.callScriptedEntity(self.lastProjectileId, "ignite") < self.lastProjectileId = nil < animator.playSound("trailIgnite") --- > self:spawnProjectile(nextPosition, pParams) 66,72c55 < animator.stopAllSounds("trailLoop") < < self.cooldownTimer = self.cooldown < end < < function fuelAirTrail:reset() < animator.stopAllSounds("trailLoop") --- > coroutine.yield() 75,104c58,100 < function fuelAirTrail:uninit(unequipped) < self:reset() < end < < function fuelAirTrail:firePosition() < return vec2.add(mcontroller.position(), activeItem.handPosition(self.weapon.muzzleOffset)) < end < < function fuelAirTrail:aimVector(inaccuracy) < local aimVector = vec2.rotate({1, 0}, self.weapon.aimAngle) < aimVector[1] = aimVector[1] * self.weapon.aimDirection < return aimVector < end < < function fuelAirTrail:spawnProjectile(position, params) < params.chainProjectile = self.lastProjectileId < local projectileId = world.spawnProjectile( < self.projectileType, < position, < activeItem.ownerEntityId(), < self:aimVector(), < false, < params < ) < if projectileId then < status.overConsumeResource("energy", self.energyUsage) < self.lastProjectileId = projectileId < end < < return projectileId --- > -- ignite trail > if self.lastProjectileId and world.entityExists(self.lastProjectileId) then > world.callScriptedEntity(self.lastProjectileId, "ignite") > self.lastProjectileId = nil > animator.playSound("trailIgnite") > end > > animator.stopAllSounds("trailLoop") > > self.cooldownTimer = self.cooldown > end > > function FuelAirTrail:reset() > animator.stopAllSounds("trailLoop") > end > > function FuelAirTrail:uninit(unequipped) > self:reset() > end > > function FuelAirTrail:firePosition() > return vec2.add(mcontroller.position(), activeItem.handPosition(self.weapon.muzzleOffset)) > end > > function FuelAirTrail:aimVector(inaccuracy) > local aimVector = vec2.rotate({1, 0}, self.weapon.aimAngle) > aimVector[1] = aimVector[1] * self.weapon.aimDirection > return aimVector > end > > function FuelAirTrail:spawnProjectile(position, params) > params.chainProjectile = self.lastProjectileId > local projectileId = world.spawnProjectile( > self.projectileType, > position, > activeItem.ownerEntityId(), > self:aimVector(), > false, > params > ) > if projectileId then > status.overConsumeResource("energy", self.energyUsage) > self.lastProjectileId = projectileId 107c103 < return fuelAirTrail --- > return projectileId items\active\weapons\ranged\altabilities\grenadelauncher\grenadelauncher.altability 36a37 > "class" : "AltFireAttack", items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.altability 7,8c7 < "rotationGroup" : "weapon", < "emissionRate" : 8, --- > "transformationGroups" : ["muzzle"], 10c9 < "offsetRegion" : [0.0, 0.0, 0.0, 0.0], --- > "burstCount" : 3, 12,14c11 < { "particle" : "rocketbarrelpuff", "offset" : [0, 0.5] }, < { "particle" : "rocketbarrelpuff", "offset" : [0, 0.5] }, < { "particle" : "rocketbarrelpuff", "offset" : [0, 0.5] } --- > { "particle" : "rocketbarrelpuff" } 30a28 > "class" : "GuidedRocket", 67c65 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.lua 4,6c4 < function setupAltAbility(altAbilityConfig, elementalType) < local primary = config.getParameter("primaryAttack") < local guidedRocket = GunFire:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) --- > GuidedRocket = GunFire:new() 8,12c6,23 < function guidedRocket:init() < self:reset() < < self.rocketIds = {} < self.cooldownTimer = self.fireTime --- > function GuidedRocket:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return GunFire.new(self, sb.jsonMerge(primary, abilityConfig)) > end > > function GuidedRocket:init() > self:reset() > > self.rocketIds = {} > self.cooldownTimer = self.fireTime > end > > function GuidedRocket:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.rocketIds = util.filter(self.rocketIds, world.entityExists) > for _,rocketId in pairs(self.rocketIds) do > world.callScriptedEntity(rocketId, "setTarget", activeItem.ownerAimPosition()) 15,16c26 < function guidedRocket:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 18,31c28,33 < self.rocketIds = util.filter(self.rocketIds, world.entityExists) < for _,rocketId in pairs(self.rocketIds) do < world.callScriptedEntity(rocketId, "setTarget", activeItem.ownerAimPosition()) < end < < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) < < if self.fireMode == "alt" < and not self.weapon.currentAbility < and self.cooldownTimer == 0 < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) < and status.overConsumeResource("energy", self:energyPerShot()) then < self:setState(self.fire) < end --- > if self.fireMode == "alt" > and not self.weapon.currentAbility > and self.cooldownTimer == 0 > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) > and status.overConsumeResource("energy", self:energyPerShot()) then > self:setState(self.fire) 32a35 > end 34,39c37,38 < function guidedRocket:fire() < table.insert(self.rocketIds, self:fireProjectile()) < < animator.setAnimationState("firing", "fire") < animator.burstParticleEmitter("altMuzzleFlash") < animator.playSound(self.weapon.elementalType.."Guided") --- > function GuidedRocket:fire() > table.insert(self.rocketIds, self:fireProjectile()) 41,43c40,42 < self.cooldownTimer = self.fireTime < self:setState(self.cooldown) < end --- > animator.setAnimationState("firing", "fire") > animator.burstParticleEmitter("altMuzzleFlash") > animator.playSound(self.weapon.elementalType.."Guided") 45,46c44,46 < function guidedRocket:reset() < end --- > self.cooldownTimer = self.fireTime > self:setState(self.cooldown) > end 48c48 < return guidedRocket --- > function GuidedRocket:reset() items\active\weapons\ranged\altabilities\homingrocket\homingrocket.altability 7,8c7 < "rotationGroup" : "weapon", < "emissionRate" : 8, --- > "transformationGroups" : ["muzzle"], 10c9 < "offsetRegion" : [0.0, 0.0, 0.0, 0.0], --- > "burstCount" : 3, 12,14c11 < { "particle" : "rocketbarrelpuff", "offset" : [0, 0.5] }, < { "particle" : "rocketbarrelpuff", "offset" : [0, 0.5] }, < { "particle" : "rocketbarrelpuff", "offset" : [0, 0.5] } --- > { "particle" : "rocketbarrelpuff" } 30a28 > "class" : "HomingRocketAttack", 37c35 < --- > 64c62 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\homingrocket\homingrocket.lua 4,12c4 < function setupAltAbility(altAbilityConfig) < local primary = config.getParameter("primaryAttack") < local homingRocketAttack = GunFire:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) < < function homingRocketAttack:init() < self.cooldownTimer = 0 < self.activeRockets = {} < self.newRockets = {} < end --- > HomingRocketAttack = GunFire:new() 14,15c6,9 < function homingRocketAttack:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function HomingRocketAttack:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return GunFire.new(self, sb.jsonMerge(primary, abilityConfig)) > end 17c11,15 < self:updateRockets(dt) --- > function HomingRocketAttack:init() > self.cooldownTimer = 0 > self.activeRockets = {} > self.newRockets = {} > end 19c17,18 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > function HomingRocketAttack:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 21,25c20 < if self.fireMode == "alt" < and not self.weapon.currentAbility < and self.cooldownTimer == 0 < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) < and status.overConsumeResource("energy", self:energyPerShot()) then --- > self:updateRockets(dt) 27,29c22 < self:setState(self.fire) < end < end --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 31,41c24,28 < function homingRocketAttack:fire() < self.weapon:setStance(self.stances.fire) < self.weapon:updateAim() < < local projectileId = self:fireProjectile() < self.newRockets[projectileId] = self.rocketWindupTime < < animator.setPartTag("muzzleFlash", "variant", math.random(1, 3)) < animator.setAnimationState("firing", "fire") < animator.burstParticleEmitter("altMuzzleFlash", true) < animator.playSound("altFire") --- > if self.fireMode == "alt" > and not self.weapon.currentAbility > and self.cooldownTimer == 0 > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) > and status.overConsumeResource("energy", self:energyPerShot()) then 43c30 < self:setState(self.cooldown) --- > self:setState(self.fire) 44a32 > end 46,47c34,36 < function homingRocketAttack:reset() < end --- > function HomingRocketAttack:fire() > self.weapon:setStance(self.stances.fire) > self.weapon:updateAim() 49,50c38,39 < function homingRocketAttack:uninit(unequipped) < self:reset() --- > local projectileId = self:fireProjectile() > self.newRockets[projectileId] = self.rocketWindupTime 52,56c41,58 < if unequipped then < for _,rocketPair in pairs(self.activeRockets) do < if world.entityExists(rocketPair[2]) then < world.callScriptedEntity(rocketPair[2], "setTarget", nil) < end --- > animator.setPartTag("muzzleFlash", "variant", math.random(1, 3)) > animator.setAnimationState("firing", "fire") > animator.burstParticleEmitter("altMuzzleFlash", true) > animator.playSound("altFire") > > self:setState(self.cooldown) > end > > function HomingRocketAttack:reset() > end > > function HomingRocketAttack:uninit(unequipped) > self:reset() > > if unequipped then > for _,rocketPair in pairs(self.activeRockets) do > if world.entityExists(rocketPair[2]) then > world.callScriptedEntity(rocketPair[2], "setTarget", nil) 59a62 > end 61,73c64,71 < function homingRocketAttack:updateRockets(dt) < -- Windup time for new rockets < for rocketId,timer in pairs(self.newRockets) do < self.newRockets[rocketId] = math.max(0, timer - dt) < if timer == 0 then < if world.entityExists(rocketId) then < if self:findTarget(rocketId) then < animator.playSound("targetAcquired") < self.newRockets[rocketId] = nil < else < self.newRockets[rocketId] = 0.2 < end < else --- > function HomingRocketAttack:updateRockets(dt) > -- Windup time for new rockets > for rocketId,timer in pairs(self.newRockets) do > self.newRockets[rocketId] = math.max(0, timer - dt) > if timer == 0 then > if world.entityExists(rocketId) then > if self:findTarget(rocketId) then > animator.playSound("targetAcquired") 74a73,74 > else > self.newRockets[rocketId] = 0.2 75a76,77 > else > self.newRockets[rocketId] = nil 78,84d79 < < -- Update active rocket list < self.activeRockets = util.filter(self.activeRockets, function(rocketPair) < return world.entityExists(rocketPair[1]) and world.entityExists(rocketPair[2]) < end) < local targets = util.map(self.activeRockets, function(v) return v[2] end) < activeItem.setScriptedAnimationParameter("targets", targets) 87,99c82,98 < function homingRocketAttack:findTarget(rocketId) < local nearEntities = world.entityQuery(world.entityPosition(rocketId), self.queryRange, { < includedTypes = {"npc", "monster", "player"}, < order = "nearest" < }) < nearEntities = util.filter(nearEntities, function(entityId) < if world.lineTileCollision(world.entityPosition(rocketId), world.entityPosition(entityId)) then < return false < end < < if not world.entityCanDamage(activeItem.ownerEntityId(), entityId) then < return false < end --- > -- Update active rocket list > self.activeRockets = util.filter(self.activeRockets, function(rocketPair) > return world.entityExists(rocketPair[1]) and world.entityExists(rocketPair[2]) > end) > local targets = util.map(self.activeRockets, function(v) return v[2] end) > activeItem.setScriptedAnimationParameter("targets", targets) > end > > function HomingRocketAttack:findTarget(rocketId) > local nearEntities = world.entityQuery(world.entityPosition(rocketId), self.queryRange, { > includedTypes = {"npc", "monster", "player"}, > order = "nearest" > }) > nearEntities = util.filter(nearEntities, function(entityId) > if world.lineTileCollision(world.entityPosition(rocketId), world.entityPosition(entityId)) then > return false > end 101,107c100,101 < return true < end) < local targetId = nearEntities[1] < if targetId then < world.callScriptedEntity(rocketId, "setTarget", targetId) < table.insert(self.activeRockets, {rocketId, targetId}) < return true --- > if not world.entityCanDamage(activeItem.ownerEntityId(), entityId) then > return false 109,110d102 < return false < end 112c104,112 < return homingRocketAttack --- > return true > end) > local targetId = nearEntities[1] > if targetId then > world.callScriptedEntity(rocketId, "setTarget", targetId) > table.insert(self.activeRockets, {rocketId, targetId}) > return true > end > return false items\active\weapons\ranged\altabilities\lance\lance.altability 135a136,137 > "class" : "LanceAttack", > items\active\weapons\ranged\altabilities\lance\lance.lua 4,6c4 < function setupAltAbility(altAbilityConfig, elementalType) < local primary = config.getParameter("primaryAttack") < local lanceAttack = WeaponAbility:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) --- > LanceAttack = WeaponAbility:new() 8,15c6,9 < function lanceAttack:init() < self.cooldownTimer = 0 < end < < function lanceAttack:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > function LanceAttack:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return WeaponAbility.new(self, sb.jsonMerge(primary, abilityConfig)) > end 17,21c11,13 < if not self.weapon.currentAbility < and self.fireMode == "alt" < and self.cooldownTimer == 0 < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) < and status.overConsumeResource("energy", self.energyUsage) then --- > function LanceAttack:init() > self.cooldownTimer = 0 > end 23,25c15,16 < self:setState(self.fire) < end < end --- > function LanceAttack:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 27,36c18 < function lanceAttack:fire() < self.weapon:setStance(self.stances.fire) < animator.setLightActive(self.weapon.elementalType.."flash", true) < animator.playSound(self.weapon.elementalType.."lancefire") < animator.setAnimationState("lance", "fire") < < util.wait(self.stances.fire.duration, function() < local damageArea = partDamageArea("lance") < self.weapon:setDamage(self.damageConfig, damageArea) < end) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 38,40c20,24 < animator.setLightActive(self.weapon.elementalType.."flash", false) < self.cooldownTimer = self.cooldownTime < end --- > if not self.weapon.currentAbility > and self.fireMode == "alt" > and self.cooldownTimer == 0 > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) > and status.overConsumeResource("energy", self.energyUsage) then 42,43c26 < function lanceAttack:firePosition() < return vec2.add(mcontroller.position(), activeItem.handPosition(self.weapon.muzzleOffset)) --- > self:setState(self.fire) 44a28 > end 46,48c30,47 < function lanceAttack:uninit() < < end --- > function LanceAttack:fire() > self.weapon:setStance(self.stances.fire) > animator.setLightActive(self.weapon.elementalType.."flash", true) > animator.playSound(self.weapon.elementalType.."lancefire") > animator.setAnimationState("lance", "fire") > > util.wait(self.stances.fire.duration, function() > local damageArea = partDamageArea("lance") > self.weapon:setDamage(self.damageConfig, damageArea) > end) > > animator.setLightActive(self.weapon.elementalType.."flash", false) > self.cooldownTimer = self.cooldownTime > end > > function LanceAttack:firePosition() > return vec2.add(mcontroller.position(), activeItem.handPosition(self.weapon.muzzleOffset)) > end 50c49,50 < return lanceAttack --- > function LanceAttack:uninit() > items\active\weapons\ranged\altabilities\markedshot\markedshot.altability 24a25 > "class" : "MarkedShot", 50c51 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\markedshot\markedshot.lua 4,6c4 < function setupAltAbility(altAbilityConfig) < local primary = config.getParameter("primaryAttack") < local markedShot = GunFire:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) --- > MarkedShot = GunFire:new() 8,9c6,9 < function markedShot:init() < self:reset() --- > function MarkedShot:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return GunFire.new(self, sb.jsonMerge(primary, abilityConfig)) > end 11c11,12 < activeItem.setScriptedAnimationParameter("markerImage", "/items/active/weapons/ranged/altabilities/markedshot/targetoverlay.png") --- > function MarkedShot:init() > self:reset() 13,14c14 < self.cooldownTimer = self.fireTime < end --- > activeItem.setScriptedAnimationParameter("markerImage", "/items/active/weapons/ranged/altabilities/markedshot/targetoverlay.png") 16,17c16,17 < function markedShot:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > self.cooldownTimer = self.fireTime > end 19c19,20 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > function MarkedShot:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 21,23c22,25 < if self.fireMode == "alt" and not self.weapon.currentAbility and self.cooldownTimer == 0 and not status.resourceLocked("energy") then < self:setState(self.aim) < end --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) > > if self.fireMode == "alt" and not self.weapon.currentAbility and self.cooldownTimer == 0 and not status.resourceLocked("energy") then > self:setState(self.aim) 24a27 > end 26,27c29,30 < function markedShot:aim() < animator.playSound("enterAimMode") --- > function MarkedShot:aim() > animator.playSound("enterAimMode") 29,30c32,33 < while self.fireMode == "alt" do < status.setResource("energyRegenBlock", 1.0) --- > while self.fireMode == "alt" do > status.setResource("energyRegenBlock", 1.0) 32,37c35,40 < self.targets = util.filter(self.targets, world.entityExists) < if #self.targets < self.maxTargets then < local newTarget = self:findTarget() < if newTarget and status.overConsumeResource("energy", self.energyUsage) then < table.insert(self.targets, newTarget) < animator.playSound("targetAcquired"..#self.targets) --- > self.targets = util.filter(self.targets, world.entityExists) > if #self.targets < self.maxTargets then > local newTarget = self:findTarget() > if newTarget and status.overConsumeResource("energy", self.energyUsage) then > table.insert(self.targets, newTarget) > animator.playSound("targetAcquired"..#self.targets) 39,40c42 < activeItem.setScriptedAnimationParameter("entities", self.targets) < end --- > activeItem.setScriptedAnimationParameter("entities", self.targets) 42,43d43 < < coroutine.yield() 46,50c46 < if #self.targets > 0 and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then < self:setState(self.fire) < else < animator.playSound("disengage") < end --- > coroutine.yield() 53,58c49,52 < function markedShot:fire() < local projectileId = self:fireProjectile(self.projectileType, {targets = self.targets}) < < self:muzzleFlash() < < self:setState(self.cooldown) --- > if #self.targets > 0 and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then > self:setState(self.fire) > else > animator.playSound("disengage") 59a54 > end 60a56,57 > function MarkedShot:fire() > local projectileId = self:fireProjectile(self.projectileType, {targets = self.targets}) 62,66c59 < function markedShot:idle() < activeItem.setScriptedAnimationParameter("entities", {}) < self.targets = {} < idle() < end --- > self:muzzleFlash() 68,71c61,62 < function markedShot:reset() < activeItem.setScriptedAnimationParameter("entities", {}) < self.targets = {} < end --- > self:setState(self.cooldown) > end 73,75d63 < function markedShot:uninit() < self:reset() < end 77,82c65,69 < function markedShot:findTarget() < local nearEntities = world.entityQuery(activeItem.ownerAimPosition(), self.targetQueryDistance, { includedTypes = {"monster", "npc", "player"} }) < nearEntities = util.filter(nearEntities, function(entityId) < if contains(self.targets, entityId) then < return false < end --- > function MarkedShot:idle() > activeItem.setScriptedAnimationParameter("entities", {}) > self.targets = {} > idle() > end 84,86c71,74 < if not world.entityCanDamage(activeItem.ownerEntityId(), entityId) then < return false < end --- > function MarkedShot:reset() > activeItem.setScriptedAnimationParameter("entities", {}) > self.targets = {} > end 88,90c76,78 < if world.lineTileCollision(self:firePosition(), world.entityPosition(entityId)) then < return false < end --- > function MarkedShot:uninit() > self:reset() > end 92,93c80,85 < return true < end) --- > function MarkedShot:findTarget() > local nearEntities = world.entityQuery(activeItem.ownerAimPosition(), self.targetQueryDistance, { includedTypes = {"monster", "npc", "player"} }) > nearEntities = util.filter(nearEntities, function(entityId) > if contains(self.targets, entityId) then > return false > end 95,97c87 < if #nearEntities > 0 then < return nearEntities[1] < else --- > if not world.entityCanDamage(activeItem.ownerEntityId(), entityId) then 100d89 < end 102c91,102 < return markedShot --- > if world.lineTileCollision(self:firePosition(), world.entityPosition(entityId)) then > return false > end > > return true > end) > > if #nearEntities > 0 then > return nearEntities[1] > else > return false > end items\active\weapons\ranged\altabilities\piercingshot\piercingshot.altability 28a29 > "class" : "AltFireAttack", items\active\weapons\ranged\altabilities\rocketburst\rocketburst.altability 24a25 > "class" : "RocketBurst", 60c61 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\rocketburst\rocketburst.lua 4,6c4 < function setupAltAbility(altAbilityConfig, elementalType) < local primary = config.getParameter("primaryAttack") < local rocketBurst = GunFire:new(sb.jsonMerge(primary, altAbilityConfig), altAbilityConfig.stances) --- > RocketBurst = GunFire:new() 8,9c6,26 < function rocketBurst:init() < self.cooldownTimer = self.fireTime --- > function RocketBurst:new(abilityConfig) > local primary = config.getParameter("primaryAbility") > return GunFire.new(self, sb.jsonMerge(primary, abilityConfig)) > end > > function RocketBurst:init() > self.cooldownTimer = self.fireTime > end > > function RocketBurst:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) > > self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) > > if self.fireMode == "alt" > and not self.weapon.currentAbility > and self.cooldownTimer == 0 > and not status.resourceLocked("energy") > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then > > self:setState(self.burst) 10a28 > end 12,37c30,37 < function rocketBurst:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) < < self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) < < if self.fireMode == "alt" < and not self.weapon.currentAbility < and self.cooldownTimer == 0 < and not status.resourceLocked("energy") < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then < < self:setState(self.burst) < end < end < < function rocketBurst:fireProjectile(...) < local projectileId = GunFire.fireProjectile(self, ...) < world.callScriptedEntity(projectileId, "setApproach", self:aimVector(0)) < end < < function rocketBurst:muzzleFlash() < animator.burstParticleEmitter("altMuzzleFlash", true) < animator.playSound("altFire") < end < < return rocketBurst --- > function RocketBurst:fireProjectile(...) > local projectileId = GunFire.fireProjectile(self, ...) > world.callScriptedEntity(projectileId, "setApproach", self:aimVector(0)) > end > > function RocketBurst:muzzleFlash() > animator.burstParticleEmitter("altMuzzleFlash", true) > animator.playSound("altFire") items\active\weapons\ranged\altabilities\shrapnelbomb\shrapnelbomb.altability 12a13 > "class" : "AltFireAttack", 47c48 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\spray\spray.altability 8a9 > "class" : "AltFireAttack", 33c34 < } \ No newline at end of file --- > } items\active\weapons\ranged\altabilities\stickyshot\stickyshot.altability 23a24 > "class" : "AltFireAttack", 55c56 < } \ No newline at end of file --- > } items\active\weapons\ranged\assaultrifle\commonassaultrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 37,57d39 < } < }, < "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 59,63d40 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 65,66c42,68 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 68a71 > "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], items\active\weapons\ranged\assaultrifle\npcassaultrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 35,55d37 < } < }, < "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 57,61d38 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 63,64c40,66 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 66a69 > "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], items\active\weapons\ranged\assaultrifle\rareassaultrifle.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 34,53d36 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 55,59d37 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 61,62c39,65 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\ranged\assaultrifle\uncommonassaultrifle.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 34,53d36 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 55,59d37 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 61,62c39,65 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\ranged\deadbeatassaultrifle\deadbeatassaultrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 35,55d37 < } < }, < "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 57,61d38 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 63,64c40,66 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 66a69 > "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], items\active\weapons\ranged\deadbeatassaultrifle\npcdeadbeatassaultrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 35,55d37 < } < }, < "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 57,61d38 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 63,64c40,66 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 66a69 > "fireSounds" : [ "/sfx/gun/ar1.ogg", "/sfx/gun/ar2.ogg", "/sfx/gun/ar3.ogg", "/sfx/gun/ar4.ogg", "/sfx/gun/ar5.ogg", "/sfx/gun/ar6.ogg" ], items\active\weapons\ranged\flamethrower\flamethrower.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "FlamethrowerAttack", > 39,64c42 < "projectileParameters" : { } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.05, < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "projectileParameters" : { }, 66,67c44,70 < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.05, > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\ranged\flamethrower\flamethrower.lua 16,17c16 < local primaryAttack = setupPrimaryAttack() < self.weapon:addAbility(primaryAttack) --- > self.weapon:addAbility(getPrimaryAbility()) 19c18 < local secondaryAttack = getAltAbility(self.weapon.elementalType) --- > local secondaryAttack = getAltAbility() 35,36c34 < function setupPrimaryAttack() < local flamethrowerAttack = GunFire:new(config.getParameter("primaryAttack"), config.getParameter("stances")) --- > FlamethrowerAttack = GunFire:new() 38,39c36,37 < function flamethrowerAttack:init() < GunFire.init(self) --- > function FlamethrowerAttack:init() > GunFire.init(self) 41,42c39,40 < self.active = false < end --- > self.active = false > end 44,45c42,43 < function flamethrowerAttack:update(dt, fireMode, shiftHeld) < GunFire.update(self, dt, fireMode, shiftHeld) --- > function FlamethrowerAttack:update(dt, fireMode, shiftHeld) > GunFire.update(self, dt, fireMode, shiftHeld) 47,55c45,48 < if self.weapon.currentAbility == self then < if not self.active then self:activate() end < elseif self.active then < self:deactivate() < end < end < < function flamethrowerAttack:muzzleFlash() < --disable normal muzzle flash --- > if self.weapon.currentAbility == self then > if not self.active then self:activate() end > elseif self.active then > self:deactivate() 56a50 > end 58,62c52,54 < function flamethrowerAttack:activate() < self.active = true < animator.playSound("fireStart") < animator.playSound("fireLoop", -1) < end --- > function FlamethrowerAttack:muzzleFlash() > --disable normal muzzle flash > end 64,69c56,60 < function flamethrowerAttack:deactivate() < self.active = false < animator.stopAllSounds("fireStart") < animator.stopAllSounds("fireLoop") < animator.playSound("fireEnd") < end --- > function FlamethrowerAttack:activate() > self.active = true > animator.playSound("fireStart") > animator.playSound("fireLoop", -1) > end 71c62,66 < return flamethrowerAttack --- > function FlamethrowerAttack:deactivate() > self.active = false > animator.stopAllSounds("fireStart") > animator.stopAllSounds("fireLoop") > animator.playSound("fireEnd") items\active\weapons\ranged\floranassaultrifle\floranassaultrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 35,55d37 < } < }, < "fireSounds" : [ "/sfx/gun/needler1.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 57,61d38 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 63,64c40,66 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 66a69 > "fireSounds" : [ "/sfx/gun/needler1.ogg" ], items\active\weapons\ranged\floranassaultrifle\npcfloranassaultrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 35,55d37 < } < }, < "fireSounds" : [ "/sfx/gun/needler1.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false 57,61d38 < "cooldown" : { < "duration" : 0.075, < "armRotation" : 3, < "weaponRotation" : 3, < "twoHanded" : true, 63,64c40,66 < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 3, > "weaponRotation" : 3, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 66a69 > "fireSounds" : [ "/sfx/gun/needler1.ogg" ], items\active\weapons\ranged\grenadelauncher\commongrenadelauncher.activeitem 49c49,52 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 58,60c61 < } < }, < "fireSounds" : [ "/sfx/gun/grenade1.ogg", "/sfx/gun/grenade2.ogg" ], --- > }, 62,66c63,67 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 68,75c69,76 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 7.5, < "weaponRotation" : 7.5, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 7.5, > "weaponRotation" : 7.5, > "twoHanded" : false, 77,84c78,85 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.4, < "armRotation" : 7.5, < "weaponRotation" : 7.5, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.4, > "armRotation" : 7.5, > "weaponRotation" : 7.5, > "twoHanded" : false, 86,87c87,89 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } 89a92 > "fireSounds" : [ "/sfx/gun/grenade1.ogg", "/sfx/gun/grenade2.ogg" ], items\active\weapons\ranged\grenadelauncher\raregrenadelauncher.activeitem 47c47,50 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 55,57c58 < } < }, < "fireSounds" : [ "/sfx/gun/grenade1.ogg", "/sfx/gun/grenade2.ogg" ], --- > }, 59,63c60,64 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 65,72c66,73 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 7.5, < "weaponRotation" : 7.5, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 7.5, > "weaponRotation" : 7.5, > "twoHanded" : false, 74,81c75,82 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.4, < "armRotation" : 7.5, < "weaponRotation" : 7.5, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.4, > "armRotation" : 7.5, > "weaponRotation" : 7.5, > "twoHanded" : false, 83,84c84,86 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } 86a89 > "fireSounds" : [ "/sfx/gun/grenade1.ogg", "/sfx/gun/grenade2.ogg" ], items\active\weapons\ranged\grenadelauncher\uncommongrenadelauncher.activeitem 47c47,50 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 55,66d57 < } < }, < "fireSounds" : [ "/sfx/gun/grenade1.ogg", "/sfx/gun/grenade2.ogg" ], < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, < < "allowRotate" : true, < "allowFlip" : true 68,72c59,64 < "fire" : { < "duration" : 0, < "armRotation" : 7.5, < "weaponRotation" : 7.5, < "twoHanded" : false, --- > > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 74,81c66,73 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.4, < "armRotation" : 7.5, < "weaponRotation" : 7.5, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 7.5, > "weaponRotation" : 7.5, > "twoHanded" : false, 83,84c75,86 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.4, > "armRotation" : 7.5, > "weaponRotation" : 7.5, > "twoHanded" : false, > > "allowRotate" : false, > "allowFlip" : true > } 86a89 > "fireSounds" : [ "/sfx/gun/grenade1.ogg", "/sfx/gun/grenade2.ogg" ], items\active\weapons\ranged\machinepistol\commonmachinepistol.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 30a34,62 > }, > > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, > > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, > > "allowRotate" : false, > "allowFlip" : true > } 36,64d67 < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, < < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.075, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, < < "allowRotate" : false, < "allowFlip" : true < } < }, items\active\weapons\ranged\machinepistol\npcmachinepistol.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 30a34,62 > }, > > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, > > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, > > "allowRotate" : false, > "allowFlip" : true > } 36,64d67 < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, < < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, < < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.075, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, < < "allowRotate" : false, < "allowFlip" : true < } < }, items\active\weapons\ranged\machinepistol\raremachinepistol.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 30,31c33 < } < }, --- > }, 33,37c35,39 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 39,46c41,48 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, 48,55c50,57 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.075, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, 57,58c59,61 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } items\active\weapons\ranged\machinepistol\uncommonmachinepistol.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 30,31c33 < } < }, --- > }, 33,37c35,39 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 39,46c41,48 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, 48,55c50,57 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.075, < "armRotation" : 2, < "weaponRotation" : 2, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.075, > "armRotation" : 2, > "weaponRotation" : 2, > "twoHanded" : false, 57,58c59,61 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } items\active\weapons\ranged\pistol\commonpistol.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 33,35c36 < } < }, < "fireSounds" : [ "/sfx/gun/pistol1.ogg", "/sfx/gun/pistol2.ogg", "/sfx/gun/pistol3.ogg", "/sfx/gun/pistol4.ogg" ], --- > }, 37,41c38,42 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 43,50c44,51 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 52,59c53,60 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.15, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.15, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 61,62c62,64 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } 64a67 > "fireSounds" : [ "/sfx/gun/pistol1.ogg", "/sfx/gun/pistol2.ogg", "/sfx/gun/pistol3.ogg", "/sfx/gun/pistol4.ogg" ], items\active\weapons\ranged\pistol\npcpistol.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 33,35c36 < } < }, < "fireSounds" : [ "/sfx/gun/pistol1.ogg", "/sfx/gun/pistol2.ogg", "/sfx/gun/pistol3.ogg", "/sfx/gun/pistol4.ogg" ], --- > }, 37,41c38,42 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 43,50c44,51 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 52,59c53,60 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.15, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.15, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 61,62c62,64 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } 64a67 > "fireSounds" : [ "/sfx/gun/pistol1.ogg", "/sfx/gun/pistol2.ogg", "/sfx/gun/pistol3.ogg", "/sfx/gun/pistol4.ogg" ], items\active\weapons\ranged\pistol\rarepistol.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 30,40d32 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, < < "allowRotate" : true, < "allowFlip" : true 42,46c34,39 < "fire" : { < "duration" : 0, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 48,55c41,57 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.15, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, > > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.15, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 57,58c59,61 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } items\active\weapons\ranged\pistol\uncommonpistol.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 30,31c33 < } < }, --- > }, 33,37c35,39 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : false, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : false, 39,46c41,48 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 48,55c50,57 < "allowRotate" : false, < "allowFlip" : true < }, < "cooldown" : { < "duration" : 0.15, < "armRotation" : 10, < "weaponRotation" : 10, < "twoHanded" : false, --- > "allowRotate" : false, > "allowFlip" : true > }, > "cooldown" : { > "duration" : 0.15, > "armRotation" : 10, > "weaponRotation" : 10, > "twoHanded" : false, 57,58c59,61 < "allowRotate" : false, < "allowFlip" : true --- > "allowRotate" : false, > "allowFlip" : true > } items\active\weapons\ranged\rocketlauncher\commonrocketlauncher.activeitem 16,31c16 < "animationCustom" : { < "animatedParts" : { < "parts" : { < "muzzleFlash" : { < "partStates" : { < "firing" : { < "fire" : { < "properties" : { < "image" : "" < } < } < } < } < } < } < }, --- > "animationCustom" : { 33a19 > "burstCount" : 3, 35,37c21 < { "particle" : "rocketbarrelpuff", "offset" : [0.0, 0.0] }, < { "particle" : "rocketbarrelpuff", "offset" : [0.0, 0.0] }, < { "particle" : "rocketbarrelpuff", "offset" : [0.0, 0.0] } --- > { "particle" : "rocketbarrelpuff" } 52c36,39 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 59c46 < "projectileParameters" : { --- > "projectileParameters" : { 61,63c48 < } < }, < "fireSounds" : [ "/sfx/gun/rocket2.ogg" ], --- > }, 65,70c50,55 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [0, 0], < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [0, 0], > "twoHanded" : true, 72,80c57,65 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, 82,90c67,75 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.4, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.4, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, 92,93c77,79 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 95a82 > "fireSounds" : [ "/sfx/gun/rocket2.ogg" ], 116c103 < "muzzleFlash" : "/items/active/weapons/ranged/muzzleflash.png" --- > "muzzleFlash" : "" items\active\weapons\ranged\rocketlauncher\npcrocketlauncher.activeitem 52c52,55 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 61,63c64 < } < }, < "fireSounds" : [ "/sfx/gun/rocket2.ogg" ], --- > }, 65,70c66,71 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [0, 0], < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [0, 0], > "twoHanded" : true, 72,80c73,81 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, 82,90c83,91 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.4, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.4, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, 92,93c93,95 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 95a98 > "fireSounds" : [ "/sfx/gun/rocket2.ogg" ], items\active\weapons\ranged\rocketlauncher\rarerocketlauncher.activeitem 15,31c15,16 < "animationParts" : { }, < "animationCustom" : { < "animatedParts" : { < "parts" : { < "muzzleFlash" : { < "partStates" : { < "firing" : { < "fire" : { < "properties" : { < "image" : "" < } < } < } < } < } < } < }, --- > "animationParts" : {}, > "animationCustom" : { 50c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 56c44 < "projectileParameters" : { --- > "projectileParameters" : { 58,69d45 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [0, 0], < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 71,76d46 < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, 78,86c48,73 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.5, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [0, 0], > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.5, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, 88,89c75,77 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 136c124 < "muzzleFlash" : "/items/active/weapons/ranged/muzzleflash.png" --- > "muzzleFlash" : "" items\active\weapons\ranged\rocketlauncher\uncommonrocketlauncher.activeitem 16,31c16 < "animationCustom" : { < "animatedParts" : { < "parts" : { < "muzzleFlash" : { < "partStates" : { < "firing" : { < "fire" : { < "properties" : { < "image" : "" < } < } < } < } < } < } < }, --- > "animationCustom" : { 33a19 > "burstCount" : 3, 35,37c21 < { "particle" : "rocketbarrelpuff", "offset" : [0.0, 0.0] }, < { "particle" : "rocketbarrelpuff", "offset" : [0.0, 0.0] }, < { "particle" : "rocketbarrelpuff", "offset" : [0.0, 0.0] } --- > { "particle" : "rocketbarrelpuff" } 50c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 56c43 < "projectileParameters" : { --- > "projectileParameters" : { 58,69d44 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [0, 0], < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 71,76d45 < "fire" : { < "duration" : 0, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, 78,86c47,72 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.4, < "armRotation" : 0, < "weaponRotation" : 0, < "weaponOffset" : [-0.2, 0], < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [0, 0], > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.4, > "armRotation" : 0, > "weaponRotation" : 0, > "weaponOffset" : [-0.2, 0], > "twoHanded" : true, 88,89c74,76 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 136c123 < "muzzleFlash" : "/items/active/weapons/ranged/muzzleflash.png" --- > "muzzleFlash" : "" items\active\weapons\ranged\shotgun\commonshotgun.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 34,36c37 < } < }, < "fireSounds" : [ "/sfx/gun/shotgun1.ogg", "/sfx/gun/shotgun2.ogg", "/sfx/gun/shotgun3.ogg", "/sfx/gun/shotgun4.ogg" ], --- > }, 38,42c39,43 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 44,51c45,52 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 53,60c54,61 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.2, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.2, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 62,63c63,65 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 65a68 > "fireSounds" : [ "/sfx/gun/shotgun1.ogg", "/sfx/gun/shotgun2.ogg", "/sfx/gun/shotgun3.ogg", "/sfx/gun/shotgun4.ogg" ], items\active\weapons\ranged\shotgun\npcshotgun.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 34,36c37 < } < }, < "fireSounds" : [ "/sfx/gun/shotgun1.ogg", "/sfx/gun/shotgun2.ogg", "/sfx/gun/shotgun3.ogg", "/sfx/gun/shotgun4.ogg" ], --- > }, 38,42c39,43 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 44,51c45,52 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 53,60c54,61 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.2, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.2, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 62,63c63,65 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 65a68 > "fireSounds" : [ "/sfx/gun/shotgun1.ogg", "/sfx/gun/shotgun2.ogg", "/sfx/gun/shotgun3.ogg", "/sfx/gun/shotgun4.ogg" ], items\active\weapons\ranged\shotgun\rareshotgun.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 31,32c34 < } < }, --- > }, 34,38c36,40 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 40,47c42,49 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 49,56c51,58 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.2, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.2, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 58,59c60,62 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\ranged\shotgun\uncommonshotgun.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 31,32c34 < } < }, --- > }, 34,38c36,40 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 40,47c42,49 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 49,56c51,58 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.2, < "armRotation" : 8, < "weaponRotation" : 8, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.2, > "armRotation" : 8, > "weaponRotation" : 8, > "twoHanded" : true, 58,59c60,62 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\ranged\sniperrifle\commonsniperrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 33,35c36 < } < }, < "fireSounds" : [ "/sfx/gun/sniper1.ogg", "/sfx/gun/sniper2.ogg", "/sfx/gun/sniper3.ogg", "/sfx/gun/sniper4.ogg" ], --- > }, 37,41c38,42 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 43,50c44,51 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 52,59c53,60 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 61,62c62,64 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 64a67 > "fireSounds" : [ "/sfx/gun/sniper1.ogg", "/sfx/gun/sniper2.ogg", "/sfx/gun/sniper3.ogg", "/sfx/gun/sniper4.ogg" ], items\active\weapons\ranged\sniperrifle\npcsniperrifle.activeitem 24c24,27 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 33,35c36 < } < }, < "fireSounds" : [ "/sfx/gun/sniper1.ogg", "/sfx/gun/sniper2.ogg", "/sfx/gun/sniper3.ogg", "/sfx/gun/sniper4.ogg" ], --- > }, 37,41c38,42 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 43,50c44,51 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 52,59c53,60 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 61,62c62,64 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } 64a67 > "fireSounds" : [ "/sfx/gun/sniper1.ogg", "/sfx/gun/sniper2.ogg", "/sfx/gun/sniper3.ogg", "/sfx/gun/sniper4.ogg" ], items\active\weapons\ranged\sniperrifle\raresniperrifle.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 29,30c32 < } < }, --- > }, 32,36c34,38 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 38,45c40,47 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 47,54c49,56 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 56,57c58,60 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\ranged\sniperrifle\uncommonsniperrifle.activeitem 22c22,25 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 29,30c32 < } < }, --- > }, 32,36c34,38 < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, 38,45c40,47 < "allowRotate" : true, < "allowFlip" : true < }, < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 47,54c49,56 < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, --- > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, 56,57c58,60 < "allowRotate" : false, < "allowFlip" : false --- > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\broadsword\apex\apexstarter.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier10broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier1broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier2broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier3broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier4broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier5broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier6broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier7broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier8broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\apex\apextier9broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\avianstarter.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier10broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier1broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier2broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier3broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier4broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier5broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier6broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier7broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier8broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\avian\aviantier9broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\floranstarter.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier10broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier1broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier2broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier3broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier4broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier5broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier6broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier7broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier8broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\floran\florantier9broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchstarter.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier10broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier1broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier2broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier3broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier4broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier5broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier6broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier7broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier8broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\glitch\glitchtier9broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humanstarter.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier10broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier1broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier2broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier3broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier4broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier5broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier6broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier7broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier8broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\human\humantier9broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotlstarter.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier10broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier1broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier2broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier3broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier4broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier5broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier6broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier7broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier8broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\broadsword\hylotl\hylotltier9broadsword.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/melee/meleeslash.lua"], > "class" : "MeleeSlash", > 39,48d41 < } < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "allowRotate" : false, < "allowFlip" : true 50,75c43,76 < "windup" : { < "duration" : 0.1, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : true < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -45, < "weaponRotation" : -55, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : true > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -45, > "weaponRotation" : -55, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } 78a80 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier10hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier1hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier2hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier3hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier4hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier5hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier6hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier7hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier8hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\apex\apextier9hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier10hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier1hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier2hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier3hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier4hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier5hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier6hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier7hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier8hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\avian\aviantier9hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier10hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier1hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier2hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier3hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier4hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier5hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier6hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier7hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier8hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\floran\florantier9hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier10hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier1hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier2hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier3hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier4hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier5hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier6hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier7hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier8hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\glitch\glitchtier9hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier10hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier1hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier2hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier3hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier4hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier5hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier6hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier7hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier8hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\human\humantier9hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier10hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier1hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier2hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier3hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier4hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier5hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier6hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier7hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier8hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\hammer\hylotl\hylotltier9hammer.activeitem 30c30,33 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "HammerSmash", > 39,91c42,92 < "smashMomentum" : [0, -45] < }, < < "baseWeaponRotation" : 10, < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : -10, < "weaponOffset" : [-0.125, 0.5], < < "allowRotate" : false, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.8, < "armRotation" : 90, < "weaponRotation" : -10, < "twoHanded" : true, < "weaponOffset" : [0, 1.75], < < "allowRotate" : false, < "allowFlip" : true, < < // Windup animation < "idleHammerAngle" : -20, < "windupHammerAngle" : 0, < "dropHammerAngle" : 60, < "bounceHammerAngle" : 55, < < "minWindup" : 0.7, < "windupBaseAngle" : -90, < "windupAngleRange" : 140 < }, < "preslash" : { < "duration" : 0.025, < "armRotation" : 55, < "weaponRotation" : -45, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.4, < "armRotation" : -35, < "weaponRotation" : -55, < "twoHanded" : true, < "smashTimer" : 1.5, < "weaponOffset" : [0, 2.0], < < "allowRotate" : false, < "allowFlip" : false --- > "smashMomentum" : [0, -45], > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : -10, > "weaponOffset" : [-0.125, 0.5], > > "allowRotate" : false, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.8, > "armRotation" : 90, > "weaponRotation" : -10, > "twoHanded" : true, > "weaponOffset" : [0, 1.75], > > "allowRotate" : false, > "allowFlip" : true, > > // Windup animation > "idleHammerAngle" : -20, > "windupHammerAngle" : 0, > "dropHammerAngle" : 60, > "bounceHammerAngle" : 55, > > "minWindup" : 0.7, > "windupBaseAngle" : -90, > "windupAngleRange" : 140 > }, > "preslash" : { > "duration" : 0.025, > "armRotation" : 55, > "weaponRotation" : -45, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.4, > "armRotation" : -35, > "weaponRotation" : -55, > "twoHanded" : true, > "smashTimer" : 1.5, > "weaponOffset" : [0, 2.0], > > "allowRotate" : false, > "allowFlip" : false > } 94a96 > "baseWeaponRotation" : 10, items\active\weapons\tiered\rifle\novakid\novatier0rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier10rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier1rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier2rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier3rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier4rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier5rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier6rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier7rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier8rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\rifle\novakid\novatier9rifle.activeitem 35c35,38 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/ranged/gunfire.lua"], > "class" : "GunFire", > 47,57d49 < } < }, < < "stances" : { < "idle" : { < "armRotation" : 0, < "weaponRotation" : 0, < "twoHanded" : true, < < "allowRotate" : true, < "allowFlip" : true 59,75c51,77 < "fire" : { < "duration" : 0, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false < }, < "cooldown" : { < "duration" : 0.25, < "armRotation" : 5, < "weaponRotation" : 5, < "twoHanded" : true, < < "allowRotate" : false, < "allowFlip" : false --- > "stances" : { > "idle" : { > "armRotation" : 0, > "weaponRotation" : 0, > "twoHanded" : true, > > "allowRotate" : true, > "allowFlip" : true > }, > "fire" : { > "duration" : 0, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > }, > "cooldown" : { > "duration" : 0.25, > "armRotation" : 5, > "weaponRotation" : 5, > "twoHanded" : true, > > "allowRotate" : false, > "allowFlip" : false > } items\active\weapons\tiered\spear\apex\apextier10spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier1spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier2spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier3spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier4spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier5spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier6spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier7spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier8spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\apex\apextier9spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier10spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier1spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier2spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier3spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier4spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier5spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier6spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier7spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier8spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\avian\aviantier9spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier10spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier1spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier2spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier3spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier4spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier5spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier6spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier7spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier8spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\floran\florantier9spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier10spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier1spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier2spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier3spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier4spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier5spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier6spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier7spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier8spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\glitch\glitchtier9spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier10spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier1spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier2spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier3spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier4spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier5spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier6spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier7spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier8spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\human\humantier9spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier10spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier1spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier2spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier3spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier4spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier5spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier6spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier7spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier8spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\tiered\spear\hylotl\hylotltier9spear.activeitem 32c32,35 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : [], > "class" : "SpearStab", > 46,77d48 < } < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "twoHanded" : false, < "weaponOffset" : [0, 0.5], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.1, < "armRotation" : -110, < "weaponRotation" : 20, < "twoHanded" : true, < "weaponOffset" : [0, 0.5], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.3, < "armRotation" : -20, < "weaponRotation" : -70, < "twoHanded" : true, < "weaponOffset" : [0, 2.5], < < "allowRotate" : false, < "allowFlip" : false 79,86c50,88 < "hold" : { < "armRotation" : -30, < "weaponRotation" : -60, < "twoHanded" : true, < "weaponOffset" : [0, 2.0], < < "allowRotate" : true, < "allowFlip" : true --- > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "twoHanded" : false, > "weaponOffset" : [0, 0.5], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.1, > "armRotation" : -110, > "weaponRotation" : 20, > "twoHanded" : true, > "weaponOffset" : [0, 0.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.3, > "armRotation" : -20, > "weaponRotation" : -70, > "twoHanded" : true, > "weaponOffset" : [0, 2.5], > > "allowRotate" : false, > "allowFlip" : false > }, > "hold" : { > "armRotation" : -30, > "weaponRotation" : -60, > "twoHanded" : true, > "weaponOffset" : [0, 2.0], > > "allowRotate" : true, > "allowFlip" : true > } items\active\weapons\whip\energywhip.activeitem 28c28 < "crack" : [ "/sfx/gun/pistol1.ogg" ] --- > "crack" : [ "/sfx/melee/laser_weapon_hit.ogg" ] 39c39,42 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/whip/whipcrack.lua"], > "class" : "WhipCrack", > 52c55,96 < "projectileConfig" : {} --- > "projectileConfig" : {}, > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.625], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.25, > "armRotation" : 100, > "weaponRotation" : 0, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.625], > > "allowRotate" : true, > "allowFlip" : true > }, > "extend" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : -90, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.875], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : -90, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.875], > > "allowRotate" : false, > "allowFlip" : false > } > } 62,103d105 < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.625], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.25, < "armRotation" : 100, < "weaponRotation" : 0, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.625], < < "allowRotate" : true, < "allowFlip" : true < }, < "extend" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : -90, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.875], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : -90, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.875], < < "allowRotate" : false, < "allowFlip" : false < } items\active\weapons\whip\ropewhip.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/whip/whipcrack.lua"], > "class" : "WhipCrack", > 47c50,91 < "projectileConfig" : {} --- > "projectileConfig" : {}, > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.625], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.25, > "armRotation" : 100, > "weaponRotation" : 0, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.625], > > "allowRotate" : true, > "allowFlip" : true > }, > "extend" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : -90, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.875], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : -90, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.875], > > "allowRotate" : false, > "allowFlip" : false > } > } 56,97d99 < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.625], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.25, < "armRotation" : 100, < "weaponRotation" : 0, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.625], < < "allowRotate" : true, < "allowFlip" : true < }, < "extend" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : -90, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.875], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : -90, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.875], < < "allowRotate" : false, < "allowFlip" : false < } items\active\weapons\whip\vinewhip.activeitem 34c34,37 < "primaryAttack" : { --- > "primaryAbility" : { > "scripts" : ["/items/active/weapons/whip/whipcrack.lua"], > "class" : "WhipCrack", > 47c50,91 < "projectileConfig" : {} --- > "projectileConfig" : {}, > "stances" : { > "idle" : { > "armRotation" : -90, > "weaponRotation" : 0, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.625], > > "allowRotate" : true, > "allowFlip" : true > }, > "windup" : { > "duration" : 0.25, > "armRotation" : 100, > "weaponRotation" : 0, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.625], > > "allowRotate" : true, > "allowFlip" : true > }, > "extend" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : -90, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.875], > > "allowRotate" : false, > "allowFlip" : false > }, > "fire" : { > "duration" : 0.1, > "armRotation" : 0, > "weaponRotation" : -90, > "weaponRotationCenter" : [0.0, 0.0], > "weaponOffset" : [-1.3, 0.875], > > "allowRotate" : false, > "allowFlip" : false > } > } 56,97d99 < }, < < "stances" : { < "idle" : { < "armRotation" : -90, < "weaponRotation" : 0, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.625], < < "allowRotate" : true, < "allowFlip" : true < }, < "windup" : { < "duration" : 0.25, < "armRotation" : 100, < "weaponRotation" : 0, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.625], < < "allowRotate" : true, < "allowFlip" : true < }, < "extend" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : -90, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.875], < < "allowRotate" : false, < "allowFlip" : false < }, < "fire" : { < "duration" : 0.1, < "armRotation" : 0, < "weaponRotation" : -90, < "weaponRotationCenter" : [0.0, 0.0], < "weaponOffset" : [-1.3, 0.875], < < "allowRotate" : false, < "allowFlip" : false < } items\active\weapons\whip\whip.lua 14,15c14,15 < self.primaryAttack = WhipCrack:new(config.getParameter("primaryAttack"), config.getParameter("stances")) < self.weapon:addAbility(self.primaryAttack) --- > self.primaryAbility = getPrimaryAbility() > self.weapon:addAbility(self.primaryAbility) 17,22c17,18 < local altAbilityConfig = config.getParameter("altAbility") < if altAbilityConfig then < for _, script in ipairs(altAbilityConfig.scripts) do < require(script) < end < self.altAbility = setupAltAbility(altAbilityConfig) --- > self.altAbility = getAltAbility() > if self.altAbility then items\active\weapons\whip\whipcrack.lua 69,78c69 < local collidePoint = world.lineCollision(chainStartPos, activeItem.ownerAimPosition()) < local chainLength = world.magnitude(chainStartPos, collidePoint or activeItem.ownerAimPosition()) < if collidePoint then chainLength = chainLength - 0.5 end < < -- don't whip into the ground < if chainLength < self.chain.length[1] then < animator.setAnimationState("attack", "idle") < return < end < --- > local chainLength = world.magnitude(chainStartPos, activeItem.ownerAimPosition()) 79a71 > 80a73,83 > local collidePoint = world.lineCollision(chainStartPos, vec2.add(mcontroller.position(), activeItem.handPosition(self.chain.endOffset))) > if collidePoint then > chainLength = world.magnitude(chainStartPos, collidePoint) - 0.25 > if chainLength < self.chain.length[1] then > animator.setAnimationState("attack", "idle") > return > else > self.chain.endOffset = vec2.add(self.chain.startOffset, {chainLength, 0}) > end > end > 83c86 < activeItem.setScriptedAnimationParameter("chain", self.chain) --- > activeItem.setScriptedAnimationParameter("chains", {self.chain}) 107c110 < activeItem.setScriptedAnimationParameter("chain", nil) --- > activeItem.setScriptedAnimationParameter("chains", nil) items\active\weapons\whip\altabilities\energyorb.altability 12a13 > "class" : "EnergyOrb", 23c24 < "duration" : 0.2, --- > "duration" : 0.25, 27c28 < "weaponOffset" : [-0.375, 0.625], --- > "weaponOffset" : [-1.3, 0.625], 33c34 < "duration" : 0.15, --- > "duration" : 0.1, 37c38 < "weaponOffset" : [-0.25, 0.875], --- > "weaponOffset" : [-1.3, 0.875], 47c48 < "weaponOffset" : [-0.25, 0.875], --- > "weaponOffset" : [-1.3, 0.875], items\active\weapons\whip\altabilities\energyorb.lua 4,5c4 < function setupAltAbility(altAbilityConfig) < local energyOrb = WeaponAbility:new(altAbilityConfig, altAbilityConfig.stances) --- > EnergyOrb = WeaponAbility:new() 7,9c6,8 < function energyOrb:init() < self.chain = config.getParameter("chain") < self.chain.endOffset = self.projectileOffset --- > function EnergyOrb:init() > self.chain = config.getParameter("chain") > self.chain.endOffset = self.projectileOffset 11,12c10,11 < self.cooldownTimer = self.cooldownTime < end --- > self.cooldownTimer = self.cooldownTime > end 14,15c13,14 < function energyOrb:update(dt, fireMode, shiftHeld) < WeaponAbility.update(self, dt, fireMode, shiftHeld) --- > function EnergyOrb:update(dt, fireMode, shiftHeld) > WeaponAbility.update(self, dt, fireMode, shiftHeld) 17c16 < self.cooldownTimer = math.max(0, self.cooldownTimer - dt) --- > self.cooldownTimer = math.max(0, self.cooldownTimer - dt) 19,21c18,19 < if self.weapon.currentAbility == nil and self.fireMode == "alt" and self.cooldownTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then < self:setState(self.windup) < end --- > if self.weapon.currentAbility == nil and self.fireMode == "alt" and self.cooldownTimer == 0 and status.overConsumeResource("energy", self.energyUsage) then > self:setState(self.windup) 22a21 > end 24,27c23,24 < function energyOrb:windup() < self.weapon:setStance(self.stances.windup) < < animator.setAnimationState("attack", "windup") --- > function EnergyOrb:windup() > self.weapon:setStance(self.stances.windup) 29,32c26 < util.wait(self.stances.windup.duration) < < self:setState(self.extend) < end --- > animator.setAnimationState("attack", "windup") 34,35c28 < function energyOrb:extend() < self.weapon:setStance(self.stances.extend) --- > util.wait(self.stances.windup.duration) 37,38c30,31 < animator.setAnimationState("attack", "extend") < animator.playSound("swing") --- > self:setState(self.extend) > end 40c33,34 < util.wait(self.stances.extend.duration) --- > function EnergyOrb:extend() > self.weapon:setStance(self.stances.extend) 42,43c36,37 < self:setState(self.fire) < end --- > animator.setAnimationState("attack", "extend") > animator.playSound("swing") 45,46c39 < function energyOrb:fire() < self.weapon:setStance(self.stances.fire) --- > util.wait(self.stances.extend.duration) 48,55c41,42 < local position = vec2.add(mcontroller.position(), activeItem.handPosition(self.projectileOffset)) < local aimVector = vec2.withAngle(self.weapon.aimAngle) < aimVector[1] = aimVector[1] * mcontroller.facingDirection() < local params = { < powerMultiplier = activeItem.ownerPowerMultiplier(), < power = self:damageAmount() < } < world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) --- > self:setState(self.fire) > end 57c44,45 < activeItem.setScriptedAnimationParameter("chain", self.chain) --- > function EnergyOrb:fire() > self.weapon:setStance(self.stances.fire) 59,60c47,54 < animator.setAnimationState("attack", "fire") < animator.playSound("crack") --- > local position = vec2.add(mcontroller.position(), activeItem.handPosition(self.projectileOffset)) > local aimVector = vec2.withAngle(self.weapon.aimAngle) > aimVector[1] = aimVector[1] * mcontroller.facingDirection() > local params = { > powerMultiplier = activeItem.ownerPowerMultiplier(), > power = self:damageAmount() > } > world.spawnProjectile(self.projectileType, position, activeItem.ownerEntityId(), aimVector, false, params) 62c56 < util.wait(self.stances.fire.duration) --- > activeItem.setScriptedAnimationParameter("chains", {self.chain}) 64c58,59 < activeItem.setScriptedAnimationParameter("chain", nil) --- > animator.setAnimationState("attack", "fire") > animator.playSound("crack") 66,67c61 < self.cooldownTimer = self.cooldownTime < end --- > util.wait(self.stances.fire.duration) 69,71c63 < function energyOrb:damageAmount() < return self.baseDamage * config.getParameter("damageLevelMultiplier") < end --- > activeItem.setScriptedAnimationParameter("chains", nil) 73c65,66 < function energyOrb:uninit() --- > self.cooldownTimer = self.cooldownTime > end 75c68,70 < end --- > function EnergyOrb:damageAmount() > return self.baseDamage * config.getParameter("damageLevelMultiplier") > end 77c72,73 < return energyOrb --- > function EnergyOrb:uninit() > animator.setAnimationState("attack", "idle") items\buildscripts\buildfist.lua 16,17c16,17 < config.tooltipFields.speedLabel = util.round(1 / config.primaryAttack.fireTime, 1) < config.tooltipFields.damagePerShotLabel = util.round(config.primaryAttack.baseDps * config.primaryAttack.fireTime * config.damageLevelMultiplier, 1) --- > config.tooltipFields.speedLabel = util.round(1 / config.primaryAbility.fireTime, 1) > config.tooltipFields.damagePerShotLabel = util.round(config.primaryAbility.baseDps * config.primaryAbility.fireTime * config.damageLevelMultiplier, 1) items\buildscripts\buildunrandweapon.lua 49,61c49,63 < config.tooltipFields = {} < config.tooltipFields.subtitle = parameters.weaponType or config.weaponType < config.tooltipFields.levelLabel = util.round(config.level or 1, 1) < config.tooltipFields.dpsLabel = util.round(config.primaryAttack.baseDps * config.damageLevelMultiplier, 1) < config.tooltipFields.speedLabel = util.round(1 / config.primaryAttack.fireTime, 1) < config.tooltipFields.damagePerShotLabel = util.round(config.primaryAttack.baseDps * config.primaryAttack.fireTime * config.damageLevelMultiplier, 1) < config.tooltipFields.energyPerShotLabel = util.round((config.primaryAttack.energyUsage or 0) * config.primaryAttack.fireTime, 1) < if config.elementalType ~= "physical" then < config.tooltipFields.damageKindImage = "/interface/elements/"..config.elementalType..".png" < end < if config.altAbility then < config.tooltipFields.altAbilityTitleLabel = "Special:" < config.tooltipFields.altAbilityLabel = config.altAbility.name or "unknown" --- > if config.tooltipKind ~= "base" then > config.tooltipFields = {} > config.tooltipFields.subtitle = parameters.weaponType or config.weaponType > config.tooltipFields.levelLabel = util.round(config.level or 1, 1) > config.tooltipFields.dpsLabel = util.round(config.primaryAbility.baseDps * config.damageLevelMultiplier, 1) > config.tooltipFields.speedLabel = util.round(1 / config.primaryAbility.fireTime, 1) > config.tooltipFields.damagePerShotLabel = util.round(config.primaryAbility.baseDps * config.primaryAbility.fireTime * config.damageLevelMultiplier, 1) > config.tooltipFields.energyPerShotLabel = util.round((config.primaryAbility.energyUsage or 0) * config.primaryAbility.fireTime, 1) > if config.elementalType ~= "physical" then > config.tooltipFields.damageKindImage = "/interface/elements/"..config.elementalType..".png" > end > if config.altAbility then > config.tooltipFields.altAbilityTitleLabel = "Special:" > config.tooltipFields.altAbilityLabel = config.altAbility.name or "unknown" > end items\buildscripts\buildweapon.lua 13a14 > math.randomseed(util.seedTime()) 64,71c65,72 < parameters.primaryAttack = parameters.primaryAttack or {} < parameters.primaryAttack.fireTimeFactor = valueOrRandom(parameters.primaryAttack.fireTimeFactor, seed, "fireTimeFactor") < parameters.primaryAttack.baseDpsFactor = valueOrRandom(parameters.primaryAttack.baseDpsFactor, seed, "baseDpsFactor") < parameters.primaryAttack.energyUsageFactor = valueOrRandom(parameters.primaryAttack.energyUsageFactor, seed, "energyUsageFactor") < < config.primaryAttack.fireTime = scaleConfig(parameters.primaryAttack.fireTimeFactor, config.primaryAttack.fireTime) < config.primaryAttack.baseDps = scaleConfig(parameters.primaryAttack.baseDpsFactor, config.primaryAttack.baseDps) < config.primaryAttack.energyUsage = scaleConfig(parameters.primaryAttack.energyUsageFactor, config.primaryAttack.energyUsage) or 0 --- > parameters.primaryAbility = parameters.primaryAbility or {} > parameters.primaryAbility.fireTimeFactor = valueOrRandom(parameters.primaryAbility.fireTimeFactor, seed, "fireTimeFactor") > parameters.primaryAbility.baseDpsFactor = valueOrRandom(parameters.primaryAbility.baseDpsFactor, seed, "baseDpsFactor") > parameters.primaryAbility.energyUsageFactor = valueOrRandom(parameters.primaryAbility.energyUsageFactor, seed, "energyUsageFactor") > > config.primaryAbility.fireTime = scaleConfig(parameters.primaryAbility.fireTimeFactor, config.primaryAbility.fireTime) > config.primaryAbility.baseDps = scaleConfig(parameters.primaryAbility.baseDpsFactor, config.primaryAbility.baseDps) > config.primaryAbility.energyUsage = scaleConfig(parameters.primaryAbility.energyUsageFactor, config.primaryAbility.energyUsage) or 0 74,75c75,76 < if config.primaryAttack.damageConfig then < config.primaryAttack.damageConfig.knockback = scaleConfig(parameters.primaryAttack.fireTimeFactor, config.primaryAttack.damageConfig.knockback) --- > if config.primaryAbility.damageConfig then > config.primaryAbility.damageConfig.knockback = scaleConfig(parameters.primaryAbility.fireTimeFactor, config.primaryAbility.damageConfig.knockback) 79,85c80,86 < if config.primaryAttack.projectileParameters then < config.primaryAttack.projectileType = randomFromList(config.primaryAttack.projectileType, seed, "projectileType") < config.primaryAttack.projectileCount = randomIntInRange(config.primaryAttack.projectileCount, seed, "projectileCount") or 1 < config.primaryAttack.fireType = randomFromList(config.primaryAttack.fireType, seed, "fireType") or "auto" < config.primaryAttack.burstCount = randomIntInRange(config.primaryAttack.burstCount, seed, "burstCount") < config.primaryAttack.burstTime = randomInRange(config.primaryAttack.burstTime, seed, "burstTime") < config.primaryAttack.projectileParameters.knockback = scaleConfig(parameters.primaryAttack.fireTimeFactor, config.primaryAttack.projectileParameters.knockback) --- > if config.primaryAbility.projectileParameters then > config.primaryAbility.projectileType = randomFromList(config.primaryAbility.projectileType, seed, "projectileType") > config.primaryAbility.projectileCount = randomIntInRange(config.primaryAbility.projectileCount, seed, "projectileCount") or 1 > config.primaryAbility.fireType = randomFromList(config.primaryAbility.fireType, seed, "fireType") or "auto" > config.primaryAbility.burstCount = randomIntInRange(config.primaryAbility.burstCount, seed, "burstCount") > config.primaryAbility.burstTime = randomInRange(config.primaryAbility.burstTime, seed, "burstTime") > config.primaryAbility.projectileParameters.knockback = scaleConfig(parameters.primaryAbility.fireTimeFactor, config.primaryAbility.projectileParameters.knockback) 87c88 < --- > 108c109,110 < if parameters.animationParts == nil then parameters.animationParts = {} end --- > config.animationParts = {} > if parameters.animationPartVariants == nil then parameters.animationPartVariants = {} end 110,117c112,118 < if parameters.animationParts[k] == nil then < if type(v) == "table" then < parameters.animationParts[k] = util.absolutePath(directory, string.gsub(v.path, "", randomIntInRange({1, v.variants}, seed, "animationPart"..k))) < if v.paletteSwap then < parameters.animationParts[k] = parameters.animationParts[k] < end < else < parameters.animationParts[k] = v --- > if type(v) == "table" then > if not parameters.animationPartVariants[k] or parameters.animationPartVariants[k] > v.variants then > parameters.animationPartVariants[k] = randomIntInRange({1, v.variants}, seed, "animationPart"..k) > end > config.animationParts[k] = util.absolutePath(directory, string.gsub(v.path, "", parameters.animationPartVariants[k])) > if v.paletteSwap then > config.animationParts[k] = config.animationParts[k] .. config.paletteSwaps 118a120,121 > else > config.animationParts[k] = v 130c133 < local imageSize = root.imageSize(parameters.animationParts[part]) --- > local imageSize = root.imageSize(config.animationParts[part]) 149c152 < if not config.inventoryIcon and parameters.animationParts then --- > if not config.inventoryIcon and config.animationParts then 154c157 < image = parameters.animationParts[partName] .. config.paletteSwaps, --- > image = config.animationParts[partName] .. config.paletteSwaps, 163,165c166,168 < local fireTime = parameters.primaryAttack.fireTime or config.primaryAttack.fireTime < local baseDps = parameters.primaryAttack.baseDps or config.primaryAttack.baseDps < local energyUsage = parameters.primaryAttack.energyUsage or config.primaryAttack.energyUsage --- > local fireTime = parameters.primaryAbility.fireTime or config.primaryAbility.fireTime > local baseDps = parameters.primaryAbility.baseDps or config.primaryAbility.baseDps > local energyUsage = parameters.primaryAbility.energyUsage or config.primaryAbility.energyUsage 192c195 < end \ No newline at end of file --- > end items\buildscripts\buildwhip.lua 16,17c16,17 < config.tooltipFields.speedLabel = util.round(1 / config.primaryAttack.fireTime, 1) < config.tooltipFields.damagePerShotLabel = util.round(config.primaryAttack.crackDps * config.primaryAttack.fireTime * config.damageLevelMultiplier, 1) --- > config.tooltipFields.speedLabel = util.round(1 / config.primaryAbility.fireTime, 1) > config.tooltipFields.damagePerShotLabel = util.round(config.primaryAbility.crackDps * config.primaryAbility.fireTime * config.damageLevelMultiplier, 1) items\generic\unsorted\protectorateflyer\protectorateflyer.item 3c3 < "rarity" : "Legendary", --- > "rarity" : "common", 5,6c5,6 < "description" : "The tans will fade. But the memories will last forever!", < "shortdescription" : "Cool Flyer" --- > "description" : "This flyer commemorates the Protectorate's graduation ceremony.", > "shortdescription" : "Graduation Flyer" monsters\monster.lua 95a96 > BData:setNumber("dt", dt * self.behaviorTickRate) monsters\boss\kluexboss\kluexboss.animation 15c15,18 < "cycle" : 0.4 --- > "cycle" : 0.4, > "properties" : { > "immediateSound" : "/sfx/npc/boss/kluexboss_phase1.ogg" > } 65c68,71 < "transition" : "fire" --- > "transition" : "fire", > "properties" : { > "immediateSound" : "/sfx/npc/boss/kluexboss_lavaplume.ogg" > } 70,73c76 < "mode" : "loop", < "properties" : { < "persistentSound" : "/sfx/melee/barrier_create_fire.ogg" < } --- > "mode" : "loop" 95c98,99 < "persistentSound" : "/sfx/melee/charge_full_hold1.ogg" --- > "persistentSound" : "/sfx/npc/boss/kluexboss_vortex_windy.ogg", > "persistentSoundStopTime" : 2 364c368 < "deathPuff" : [ "/sfx/projectiles/throwingboulder_impact1.ogg" ], --- > "deathPuff" : [ "/sfx/npc/boss/kluexboss_death.ogg" ], 367c371 < "prepareFire" : [ "/sfx/npc/boss/kluexboss_firestart.ogg" ], --- > "prepareFire" : [ ], 369c373 < "prepareIce" : [ "/sfx/melee/giantsword_charge_ice.ogg" ], --- > "prepareIce" : [ ], 371c375,376 < "prepareWind" : [ "/sfx/melee/charge_up8.ogg" ] --- > "prepareWind" : [ "/sfx/melee/charge_up8.ogg" ], > "windFire" : [ "/sfx/gun/plasma_sniper4.ogg" ] monsters\boss\kluexbossstatue\kluexbossstatue.animation 37c37,40 < "cycle" : 0.4 --- > "cycle" : 0.4, > "properties" : { > "immediateSound" : "/sfx/npc/boss/kluexboss_phase1.ogg" > } 188,189c191,192 < "deathPuff" : [ "/sfx/projectiles/throwingboulder_impact1.ogg" ], < "preparePlasma" : [ "/sfx/melee/charge_up5.ogg" ], --- > "deathPuff" : [ "/sfx/objects/rock_big_break2.ogg" ], > "preparePlasma" : [ "/sfx/melee/charge_combo4.ogg" ], 191c194 < "prepareFire" : [ "/sfx/melee/giantsword_charge_fire.ogg" ], --- > "prepareFire" : [ ], 193c196 < "prepareIce" : [ "/sfx/melee/giantsword_charge_ice.ogg" ], --- > "prepareIce" : [ ], 195c198,199 < "prepareWind" : [ "/sfx/melee/charge_up8.ogg" ] --- > "prepareWind" : [ "/sfx/melee/charge_up8.ogg" ], > "windFire" : [ "/sfx/gun/plasma_sniper4.ogg" ] monsters\mission\ballista\ballista.monstertype 30,39c30 < "walkSpeed" : 2, < "runSpeed" : 3, < < "airFriction" : 0, < < "airJumpProfile" : { < "jumpSpeed" : 35.0, < "jumpInitialPercentage" : 1.0, < "jumpHoldTime" : 0.0 < } --- > "walkSpeed" : 2 66a58,60 > }, > "grit" : { > "baseValue" : 1.0 monsters\mission\kluexsentry\kluexsentry.animation 28c28 < "immediateSound" : "/sfx/npc/monsters/kluexsentry_windup.ogg", --- > "immediateSound" : "/sfx/npc/monsters/kluexsentry_windup2.ogg", monsters\mission\kluextotem\kluextotem.animation 14c14 < "immediateSound" : "/sfx/npc/monsters/kluextotem_wake.ogg" --- > "immediateSound" : "/sfx/npc/monsters/kluextotem_wake2.ogg" 38c38 < "immediateSound" : "/sfx/npc/monsters/kluexsentry_windup.ogg", --- > "immediateSound" : "/sfx/npc/monsters/kluexsentry_windup2.ogg", npcs\outpost\outpostfloranhunter.npctype 4a5,9 > "identity" : { > "name" : "Paki", > "gender" : "male" > }, > 6,7c11,18 < "offeredQuests" : [ ], < "turnInQuests" : [ ], --- > "offeredQuests" : [ "floranarena1.gearup", "floranarena2.gearup", "floranarena3.gearup" ], > "turnInQuests" : [ "floranarena1.gearup", "floranarena2.gearup", "floranarena3.gearup" ], > > "interactAction" : "Message", > "interactData" : { > "messageType" : "outpostfloranarena.offerWarp", > "messageArgs" : [] > }, 13c24 < "Floran tire of hunting without reason. Floran leave clan to find greater purpossse." --- > "Only the sstrong get Floran resspect." 18c29 < "Floran tire of hunting without reason. Floran leave clan to find greater purpossse." --- > "All Floran seek glory in combat. Is that what you sseek?" 21,24c32 < "Floran happy to meet another Floran." < ], < "hylotl" : [ < "Floran ussssed to hate fish. Floran not hate fish now." --- > "Another Floran. You must undersstand the glory of battle." 34a43 > "head" : [ { "name" : "florantier5ahead", "parameters" : { "colorIndex" : 3 } } ], npcs\story\baron.npctype 33,34c33,34 < "Well hello there, friend. Welcome to the old keep.", < "I was expecting you, of course. Ever since I saw you come through the castle doors just now. Ha ha ha!", --- > "Friendly. Hello there, and welcome to the old keep. I'm ^orange;The Baron^white; of these lands!", > "I was expecting you, of course. Ever since I saw you come through the front doors just now. Ha ha ha!", 45c45 < "It's probably not the kind of adventure you're used to, but it needs doing nonetheless", --- > "It's probably not the kind of adventure you're used to, but it needs doing nonetheless.", 53,56c53,55 < "...did you hear that?", < "Eclectic electrons! Here they come again...", < "Forget everything I said!", < "Help me fend off these robed miscreants and I will give you whatever that... thing is." --- > "Shocked. Did you hear that?", > "Eclectic electrons! No doubt those cloaked vagabonds have returned again...", > "Forget everything I said! You can have that trinket of mine if you help me save my keep!" 64,65c63,64 < "As promised here is your.. artifact did you call it? Dusty old rubbish I say. Much like myself. Ha ha ha!", < "Well there's another old artifact that would like to come with you.", --- > "As promised here is your... Artifact did you call it? Dusty old rubbish I say. Much like myself. Ha ha ha!", > "Well there's another old artifact that would like to come with you. It's time I came out of retirement!", objects\protectorate\objects\protectorateclock\protectorateclock.object 23c23 < "imagePosition" : [-3, -2], --- > "imagePosition" : [-3, -5], objects\protectorate\objects\protectoratehologlobe\protectoratehologlobe.object 21,27c21,27 < "apexDescription" : "A hypnotising lamp.", < "avianDescription" : "This lamp demands to be stared at.", < "floranDescription" : "Is thisss lamp living? It has moving insssides!", < "glitchDescription" : "Calm. This liquid moves in a mesmerising way.", < "humanDescription" : "Reminds me of a bad dream I once had.", < "hylotlDescription" : "The way the liquid ebbs and flows makes me nostalgic.", < "novakidDescription" : "This lamp looks the way I feel. Peculiar.", --- > "apexDescription" : "This lamp is a waste of energy.", > "avianDescription" : "An orb shaped lamp moving in a hypnotic way.", > "floranDescription" : "Bouncy lamp isss nice!", > "glitchDescription" : "Appreciative. I enjoy this trinket, despite its lack in purpose.", > "humanDescription" : "Funky ball lamp! That's what I call it.", > "hylotlDescription" : "A calming, orb shaped lamp.", > "novakidDescription" : "This lamp just keeps goin'.", objects\protectorate\objects\protectoratehulagirl\protectoratehulagirl.object 15c15 < "hylotlDescription" : "It reminds me of white sands and blue seas", --- > "hylotlDescription" : "It reminds me of white sands and blue seas.", objects\protectorate\objects\protectoratesmokegen\protectoratesmokegen.object 28,35c28 < "anchors" : [ "bottom" ] < }, < { < "image" : "protectoratesmokegen.png:", < "imagePosition" : [0, 0], < "direction" : "right", < < "spaceScan" : 0.1 --- > "anchors" : [ ] objects\ship\hylotlteleportertier0\hylotlteleportertier0.object 12,16c12,16 < "apexDescription" : "The ship's teleporter. I need to power it up.", < "avianDescription" : "The teleporter! If only this one was powered up.", < "floranDescription" : "Ship teleporter. This one dead.", < "glitchDescription" : "Disappointed. A teleporter without power. I need to power it up.", < "humanDescription" : "The teleporter! Too bad it isn't powered up.", --- > "apexDescription" : "The ship's teleporter. It has no power.", > "avianDescription" : "The teleporter! If only if it was powered up.", > "floranDescription" : "Teleporter. This one dead.", > "glitchDescription" : "Disappointed. A teleporter without power.", > "humanDescription" : "A teleporter! Too bad it isn't powered up.", 18c18 < "novakidDescription" : "Ship's teleporter. I need to power her up!", --- > "novakidDescription" : "This ol' teleporter doesn't seem to be workin'.", objects\themed\island\hulagirl\hulagirl.object 15c15 < "hylotlDescription" : "It reminds me of white sands and blue seas", --- > "hylotlDescription" : "It reminds me of white sands and blue seas.", projectiles\boss\kluexboss\floorlava\floorlava.projectile 19a20,22 > "statusEffects" : [ > "burning" > ], projectiles\boss\kluexboss\iceeruption\iceeruption.projectile 22c22 < "options" : [ "/sfx/melee/travelingslash_ice1.ogg", "/sfx/melee/travelingslash_ice2.ogg", "/sfx/melee/travelingslash_ice3.ogg", "/sfx/melee/travelingslash_ice4.ogg" ] --- > "options" : [ "/sfx/npc/boss/kluexboss_iceeruption1.ogg", "/sfx/npc/boss/kluexboss_iceeruption2.ogg" ] projectiles\boss\kluexboss\iceeruption\iceeruptiontele.projectile 22c22 < "options" : [ "/sfx/projectiles/ice_barrier_freeze1.ogg", "/sfx/projectiles/ice_barrier_freeze2.ogg" ] --- > "options" : [ "/sfx/npc/boss/kluexboss_iceform1.ogg", "/sfx/npc/boss/kluexboss_iceform2.ogg" ] 28c28 < "options" : [ "/sfx/projectiles/ice_barrier_freeze1.ogg", "/sfx/projectiles/ice_barrier_freeze2.ogg" ] --- > "options" : [ "/sfx/npc/boss/kluexboss_iceform1.ogg", "/sfx/npc/boss/kluexboss_iceform2.ogg" ] projectiles\boss\kluexboss\splitplasma\redplasmatorpedo.projectile 14c14 < "damageKind" : "slash", --- > "damageKind" : "plasma", projectiles\guns\plasmabullets\chainplasma\chainelectricplasma.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "electrified" ], projectiles\guns\plasmabullets\chainplasma\chainelectricplasma2.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "electrified" ], projectiles\guns\plasmabullets\chainplasma\chainfireplasma.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "burning" ], projectiles\guns\plasmabullets\chainplasma\chainfireplasma2.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "burning" ], 21a22 > projectiles\guns\plasmabullets\chainplasma\chainiceplasma.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "frostslow" ], projectiles\guns\plasmabullets\chainplasma\chainiceplasma2.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "frostslow" ], projectiles\guns\plasmabullets\chainplasma\chainpoisonplasma.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "weakpoison" ], projectiles\guns\plasmabullets\chainplasma\chainpoisonplasma2.projectile 18c18 < "statusEffects" : [ ], --- > "statusEffects" : [ "weakpoison" ], projectiles\traps\arenaflame\arenaflame.projectile 20c20 < {"effect": "enemyrage", "duration" : 3}, {"effect": "burning", "duration" : 3} --- > {"effect": "enemyrage", "duration" : 5}, {"effect": "burning", "duration" : 7} quests\scripts\tutorial\protectorate.lua 20d19 < -- sb.logInfo("Quest connected with manager id %s", id) 102,103d100 < sb.logInfo("Advancing protectorate mission from stage %s to %s", self.missionStage, newStage) < setPester(nil, 0) stagehands\mission\glitchmissionmanager.lua 7,12d6 < self.spawnPoints = {} < for _,uniqueId in pairs(config.getParameter("spawnPointUuids", {})) do < local entityId = world.loadUniqueEntity(uniqueId) < self.spawnPoints[uniqueId] = entityId < end < 15a10,11 > self.missionArea = rect.translate(config.getParameter("missionArea"), entity.position()) > 21,22c17 < local scanArea = rect.translate(config.getParameter("playerScanArea"), entity.position()) < self.players = world.entityQuery({scanArea[1], scanArea[2]}, {scanArea[3], scanArea[4]}, { includedTypes = {"player"} }) --- > self.players = world.entityQuery({self.missionArea[1], self.missionArea[2]}, {self.missionArea[3], self.missionArea[4]}, { includedTypes = {"player"} }) 45c40 < self.state:update(dt) --- > world.loadRegion(self.missionArea) 46a42 > self.state:update(dt) 50a47,52 > world.entityQuery({self.missionArea[1], self.missionArea[2]}, {self.missionArea[3], self.missionArea[4]}, { > includedTypes = { "npc" }, > callScript = "notify", > callScriptArgs = { { type = "missionStarted", source = entity.id() } } > }) > 70a73,99 > enemies = spawnWave("ballistaspawn", { { entityType = "cultist", count = 2 }, { entityType = "ballista" } }) > radioMessage("firstBallista") > while #enemies > 0 do > enemies = util.filter(enemies, function(enemyId) > -- Ballista can stay around for longer than one wave > if world.entityType(enemyId) == "monster" and world.monsterType(enemyId) == "ballista" then > return false > end > return world.entityExists(enemyId) > end) > coroutine.yield() > end > world.logInfo("Wave 3 dead") > > util.wait(5.0) > > local enemies = spawnWave("gatespawn", { { entityType = "cultist", count = 3} }) > spawnWave("helispawn", { { entityType = "helicultist", count = 2} }) > radioMessage("firstAirforce") > while #enemies > 0 do > enemies = util.filter(enemies, function(enemyId) return world.entityExists(enemyId) end) > coroutine.yield() > end > world.logInfo("Wave 4 dead") > > util.wait(5.0) > 77c106 < world.logInfo("Wave 3 dead") --- > world.logInfo("Wave 5 dead") 91a121,122 > local spawnStagehand = world.loadUniqueEntity(spawnPoint) > if not spawnStagehand then error(string.format("No entity with unique ID: %s", spawnPoint)) end 95c126 < local position = world.entityPosition(self.spawnPoints[spawnPoint]) --- > local position = world.entityPosition(spawnStagehand) 99a131,134 > elseif spawn.entityType == "ballista" then > table.insert(enemies, world.spawnMonster("ballista", position, { aggressive = true, level = world.threatLevel() })) > elseif spawn.entityType == "helicultist" then > table.insert(enemies, world.spawnMonster("helicultist", position, { aggressive = true, level = world.threatLevel() })) stagehands\mission\glitchmissionmanager.stagehand 10,16c10,11 < "playerScanArea" : [-120, -70, 300, 70], < < "spawnPointUuids" : [ < "castlespawn", < "gatespawn", < "campspawn" < ], --- > "missionArea" : [-120, -70, 300, 70], > 22d16 < "castleCultists" : "Alert! More cultists have beamed directly into the keep. You must help defend it!", 24a19,21 > "firstBallista" : "They have brought war machines! Take out that ballista before it destroys my delicately constructed walls.", > "firstAirforce" : "More cultists have appeared near the gates. Wait, what's that? There are more of them... in the skies!", > "castleCultists" : "Alert! More cultists have beamed directly into the keep. You must help defend it!", tilesets\packed\objects-by-category\decorative.json 7c7 < "tilecount" : 1219, --- > "tilecount" : 1221, 2112a2113,2120 > "1219" : { > "//description" : "Anyone for scrambled monster egg?", > "//name" : "tentacleegg", > "//shortdescription" : "Tentacle Monster Egg", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "tentacleegg" > }, 2121a2130,2137 > "1220" : { > "//description" : "An old projector for communicating holographically.", > "//name" : "hologramprojector", > "//shortdescription" : "Hologram Projector", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "hologramprojector" > }, 10873a10890,10892 > "1219" : { > "image" : "../../../../../tiled/packed/objects/tentacleegg.png" > }, 10875a10895,10897 > }, > "1220" : { > "image" : "../../../../../tiled/packed/objects/hologramprojector.png" tilesets\packed\objects-by-category\furniture.json 7c7 < "tilecount" : 311, --- > "tilecount" : 316, 2087a2088,2132 > "311" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1red", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1red", > "tilesetDirection" : "right" > }, > "312" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1blue", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1blue", > "tilesetDirection" : "right" > }, > "313" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent2yellow", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent2yellow", > "tilesetDirection" : "right" > }, > "314" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbagred", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbagred", > "tilesetDirection" : "right" > }, > "315" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbaggreen", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbaggreen", > "tilesetDirection" : "right" > }, 3410a3456,3470 > }, > "311" : { > "image" : "../../../../../tiled/packed/objects/tent1red.png" > }, > "312" : { > "image" : "../../../../../tiled/packed/objects/tent1blue.png" > }, > "313" : { > "image" : "../../../../../tiled/packed/objects/tent2yellow.png" > }, > "314" : { > "image" : "../../../../../tiled/packed/objects/sleepingbagred.png" > }, > "315" : { > "image" : "../../../../../tiled/packed/objects/sleepingbaggreen.png" tilesets\packed\objects-by-category\teleporter.json 7c7 < "tilecount" : 28, --- > "tilecount" : 29, 191a192,199 > "28" : { > "//description" : "It looks like it was made to hold something important.", > "//name" : "glitchartifactaltar", > "//shortdescription" : "Glitch Artifact Altar", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "glitchartifactaltar" > }, 308a317,319 > }, > "28" : { > "image" : "../../../../../tiled/packed/objects/glitchartifactaltar.png" tilesets\packed\objects-by-colonytag\explorer.json 7c7 < "tilecount" : 10, --- > "tilecount" : 15, 27a28,72 > "10" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1red", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1red", > "tilesetDirection" : "right" > }, > "11" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1blue", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1blue", > "tilesetDirection" : "right" > }, > "12" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent2yellow", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent2yellow", > "tilesetDirection" : "right" > }, > "13" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbagred", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbagred", > "tilesetDirection" : "right" > }, > "14" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbaggreen", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbaggreen", > "tilesetDirection" : "right" > }, 105a151,165 > }, > "10" : { > "image" : "../../../../../tiled/packed/objects/tent1red.png" > }, > "11" : { > "image" : "../../../../../tiled/packed/objects/tent1blue.png" > }, > "12" : { > "image" : "../../../../../tiled/packed/objects/tent2yellow.png" > }, > "13" : { > "image" : "../../../../../tiled/packed/objects/sleepingbagred.png" > }, > "14" : { > "image" : "../../../../../tiled/packed/objects/sleepingbaggreen.png" tilesets\packed\objects-by-colonytag\human.json 7c7 < "tilecount" : 240, --- > "tilecount" : 245, 1400a1401,1445 > "240" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1red", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1red", > "tilesetDirection" : "right" > }, > "241" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1blue", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1blue", > "tilesetDirection" : "right" > }, > "242" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent2yellow", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent2yellow", > "tilesetDirection" : "right" > }, > "243" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbagred", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbagred", > "tilesetDirection" : "right" > }, > "244" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbaggreen", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbaggreen", > "tilesetDirection" : "right" > }, 2592a2638,2652 > }, > "240" : { > "image" : "../../../../../tiled/packed/objects/tent1red.png" > }, > "241" : { > "image" : "../../../../../tiled/packed/objects/tent1blue.png" > }, > "242" : { > "image" : "../../../../../tiled/packed/objects/tent2yellow.png" > }, > "243" : { > "image" : "../../../../../tiled/packed/objects/sleepingbagred.png" > }, > "244" : { > "image" : "../../../../../tiled/packed/objects/sleepingbaggreen.png" tilesets\packed\objects-by-colonytag\hylotl.json 7c7 < "tilecount" : 206, --- > "tilecount" : 207, 1056a1057,1064 > "206" : { > "//description" : "An old projector for communicating holographically.", > "//name" : "hologramprojector", > "//shortdescription" : "Hologram Projector", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "hologramprojector" > }, 2159a2168,2170 > }, > "206" : { > "image" : "../../../../../tiled/packed/objects/hologramprojector.png" tilesets\packed\objects-by-colonytag\misc.json 7c7 < "tilecount" : 104, --- > "tilecount" : 105, 68a69,76 > "104" : { > "//description" : "It looks like it was made to hold something important.", > "//name" : "glitchartifactaltar", > "//shortdescription" : "Glitch Artifact Altar", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "glitchartifactaltar" > }, 931a940,942 > }, > "104" : { > "image" : "../../../../../tiled/packed/objects/glitchartifactaltar.png" tilesets\packed\objects-by-race\generic.json 7c7 < "tilecount" : 1602, --- > "tilecount" : 1607, 5696a5697,5741 > "1602" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbagred", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbagred", > "tilesetDirection" : "right" > }, > "1603" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1red", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1red", > "tilesetDirection" : "right" > }, > "1604" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbaggreen", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbaggreen", > "tilesetDirection" : "right" > }, > "1605" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1blue", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1blue", > "tilesetDirection" : "right" > }, > "1606" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent2yellow", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent2yellow", > "tilesetDirection" : "right" > }, 15612a15658,15672 > }, > "1602" : { > "image" : "../../../../../tiled/packed/objects/sleepingbagred.png" > }, > "1603" : { > "image" : "../../../../../tiled/packed/objects/tent1red.png" > }, > "1604" : { > "image" : "../../../../../tiled/packed/objects/sleepingbaggreen.png" > }, > "1605" : { > "image" : "../../../../../tiled/packed/objects/tent1blue.png" > }, > "1606" : { > "image" : "../../../../../tiled/packed/objects/tent2yellow.png" tilesets\packed\objects-by-race\glitch.json 7c7 < "tilecount" : 203, --- > "tilecount" : 204, 932a933,940 > "203" : { > "//description" : "It looks like it was made to hold something important.", > "//name" : "glitchartifactaltar", > "//shortdescription" : "Glitch Artifact Altar", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "glitchartifactaltar" > }, 1963a1972,1974 > }, > "203" : { > "image" : "../../../../../tiled/packed/objects/glitchartifactaltar.png" tilesets\packed\objects-by-race\hylotl.json 7c7 < "tilecount" : 217, --- > "tilecount" : 218, 1125a1126,1133 > "217" : { > "//description" : "An old projector for communicating holographically.", > "//name" : "hologramprojector", > "//shortdescription" : "Hologram Projector", > "imagePositionX" : "-16", > "imagePositionY" : "0", > "object" : "hologramprojector" > }, 2253a2262,2264 > }, > "217" : { > "image" : "../../../../../tiled/packed/objects/hologramprojector.png" tilesets\packed\objects-by-type\loungeable.json 7c7 < "tilecount" : 237, --- > "tilecount" : 242, 1368a1369,1395 > "237" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1red", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1red", > "tilesetDirection" : "right" > }, > "238" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent1blue", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent1blue", > "tilesetDirection" : "right" > }, > "239" : { > "//description" : "A basic tent. Watch out for spacebears!", > "//name" : "tent2yellow", > "//shortdescription" : "Basic Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "tent2yellow", > "tilesetDirection" : "right" > }, 1377a1405,1422 > "240" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbagred", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbagred", > "tilesetDirection" : "right" > }, > "241" : { > "//description" : "It's a sleeping bag. It's not the comfiest, but it'll do.", > "//name" : "sleepingbaggreen", > "//shortdescription" : "Sleeping Bag", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "sleepingbaggreen", > "tilesetDirection" : "right" > }, 2534a2580,2588 > "237" : { > "image" : "../../../../../tiled/packed/objects/tent1red.png" > }, > "238" : { > "image" : "../../../../../tiled/packed/objects/tent1blue.png" > }, > "239" : { > "image" : "../../../../../tiled/packed/objects/tent2yellow.png" > }, 2536a2591,2596 > }, > "240" : { > "image" : "../../../../../tiled/packed/objects/sleepingbagred.png" > }, > "241" : { > "image" : "../../../../../tiled/packed/objects/sleepingbaggreen.png" treasure\npc.treasurepools 277,300d276 < ], < < "arenabruisertreasure" : [ < [1, { < "pool" : [ < {"weight" : 1.0, "item" : "bruisersword"} < ] < }] < ], < < "arenahuntertreasure" : [ < [1, { < "pool" : [ < {"weight" : 1.0, "item" : "hunterrifle"} < ] < }] < ], < < "arenapyrotreasure" : [ < [1, { < "pool" : [ < {"weight" : 1.0, "item" : "firelordhead"} < ] < }]