FILES ----- items\active\weapons\weapon.lua [NEW] items\active\weapons\melee\altabilities\broadsword\downstab\downstab.altability [NEW] items\active\weapons\melee\altabilities\broadsword\downstab\downstab.lua items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.altability items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.lua [NEW] items\active\weapons\melee\altabilities\hammer\uppercut\uppercut.altability [NEW] items\active\weapons\melee\altabilities\hammer\uppercut\uppercut.lua [NEW] items\active\weapons\melee\altabilities\hammer\uppercut\uppercutswoosh.frames [NEW] items\active\weapons\melee\altabilities\hammer\uppercut\uppercutswoosh.png items\active\weapons\melee\broadsword\commonbroadsword.activeitem items\active\weapons\melee\hammer\commonhammer.activeitem items\active\weapons\melee\hammer\hammer.animation items\active\weapons\melee\hammer\hammer.lua items\active\weapons\melee\hammer\rarehammer.activeitem items\active\weapons\melee\hammer\uncommonhammer.activeitem items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.altability 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\rocketlauncher\commonrocketlauncher.activeitem items\active\weapons\ranged\rocketlauncher\rarerocketlauncher.activeitem items\active\weapons\ranged\rocketlauncher\uncommonrocketlauncher.activeitem items\active\weapons\ranged\sniperrifle\commonsniperrifle.activeitem items\active\weapons\ranged\sniperrifle\raresniperrifle.activeitem items\active\weapons\ranged\sniperrifle\uncommonsniperrifle.activeitem items\guns\accelerator\feroziumrocket.gun items\guns\randomgenerated\standard\commonrocketlauncher.generatedgun items\guns\unsorted\waterballoongun.gun items\staves\biostaff\biostaff.staff items\staves\fleshstaff\fleshstaff.staff items\staves\racialstaves\apex\steel\apexsteelstaff1\apexsteelstaff1.staff items\staves\racialstaves\apex\steel\apexsteelstaff2\apexsteelstaff2.staff items\staves\racialstaves\avian\crystal\aviancrystalstaff1\aviancrystalstaff1.staff items\staves\racialstaves\avian\crystal\aviancrystalstaff2\aviancrystalstaff2.staff items\staves\racialstaves\floran\leaf\floranleafstaff1\floranleafstaff1.staff items\staves\racialstaves\floran\leaf\floranleafstaff2\floranleafstaff2.staff items\staves\racialstaves\glitch\glitch\glitchglitchstaff1\glitchglitchstaff1.staff items\staves\racialstaves\glitch\glitch\glitchglitchstaff2\glitchglitchstaff2.staff items\staves\racialstaves\human\plasma\humanplasmastaff1\humanplasmastaff1.staff items\staves\racialstaves\human\plasma\humanplasmastaff2\humanplasmastaff2.staff items\staves\racialstaves\hylotl\aqua\hylotlaquastaff1\hylotlaquastaff1.staff items\staves\racialstaves\hylotl\aqua\hylotlaquastaff2\hylotlaquastaff2.staff items\staves\racialstaves\novakid\light\novakidlightstaff1\novakidlightstaff1.staff items\staves\racialstaves\novakid\light\novakidlightstaff2\novakidlightstaff2.staff items\staves\scistaff\scistaff.staff items\staves\slimestaff\slimestaff.staff [NEW] scripts\status.lua [NEW] sfx\environmental\underground_waterfalls.ogg [NEW] sfx\gun\rocket1.wav [NEW] sfx\gun\rocket_electric1.wav [NEW] sfx\gun\rocket_fire1.wav [NEW] sfx\gun\rocket_ice1.wav [NEW] sfx\gun\rocket_poison1.wav stats\monster_primary.lua [NEW] stats\effects\paralysis\shortparalysis.statuseffect DIFFS ----- items\active\weapons\weapon.lua 80,81c80,81 < local swooshArea = animator.partPoly(swooshPart or "swoosh", "damageArea") < local bladeArea = animator.partPoly(bladePart or "blade", "damageArea") --- > local swooshArea = swooshPart ~= "" and animator.partPoly(swooshPart or "swoosh", "damageArea") > local bladeArea = bladePart ~= "" and animator.partPoly(bladePart or "blade", "damageArea") 148a149,152 > > if type(knockback) == "table" then > return knockback > end items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.altability 13c13 < "cycle" : 0.07, --- > "cycle" : 0.175, 61c61,62 < "knockback" : 40 --- > "knockback" : [0, 50], > "statusEffects" : ["shortparalysis"] 62a64 > "damageTimeout" : 0.3, items\active\weapons\melee\altabilities\broadsword\risingslash\risingslash.lua 43c43 < weapon.setDamage(risingSlash.damageConfig, "risingSwoosh") --- > weapon.setDamage(risingSlash.damageConfig, "risingSwoosh", "", risingSlash.damageTimeout) items\active\weapons\melee\broadsword\commonbroadsword.activeitem 75c75,76 < "/items/active/weapons/melee/altabilities/broadsword/risingslash/risingslash.altability" --- > "/items/active/weapons/melee/altabilities/broadsword/risingslash/risingslash.altability", > "/items/active/weapons/melee/altabilities/broadsword/downstab/downstab.altability" items\active\weapons\melee\hammer\commonhammer.activeitem 40c40 < "duration" : 0.8, --- > "duration" : 0.4, 87c87,89 < "altAbilities" : [ ], --- > "altAbilities" : [ > "/items/active/weapons/melee/altabilities/hammer/uppercut/uppercut.altability" > ], items\active\weapons\melee\hammer\hammer.animation 31c31 < "image" : "", --- > "image" : "", 50c50 < "image" : "", --- > "image" : "", items\active\weapons\melee\hammer\hammer.lua 10a11,12 > animator.setGlobalTag("directives", "") > 34d35 < weapon.meleeUpdateAim(false, true) 36a38 > weapon.meleeUpdateAim(false, true) items\active\weapons\melee\hammer\rarehammer.activeitem 50c50 < "duration" : 0.8, --- > "duration" : 0.4, items\active\weapons\melee\hammer\uncommonhammer.activeitem 44c44 < "duration" : 0.8, --- > "duration" : 0.4, items\active\weapons\ranged\altabilities\guidedrocket\guidedrocket.altability 20,23c20,23 < "fireGuided" : [ "/sfx/gun/plasma_pistol1.wav" ], < "iceGuided" : [ "/sfx/gun/plasma_ar1.wav" ], < "electricGuided" : [ "/sfx/gun/plasma_shotgun1.wav" ], < "poisonGuided" : [ "/sfx/gun/plasma_sniper1.wav" ] --- > "fireGuided" : [ "/sfx/gun/rocket_fire1.wav" ], > "iceGuided" : [ "/sfx/gun/rocket_ice1.wav" ], > "electricGuided" : [ "/sfx/gun/rocket_electric1.wav" ], > "poisonGuided" : [ "/sfx/gun/rocket_poison1.wav" ] items\active\weapons\ranged\grenadelauncher\commongrenadelauncher.activeitem 41,43d40 < }, < "sounds" : { < "fire" : [ "/sfx/gun/grenade1.wav" ] 103a101,103 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ] > }, items\active\weapons\ranged\grenadelauncher\raregrenadelauncher.activeitem 41,43d40 < }, < "sounds" : { < "fire" : [ "/sfx/gun/grenade1.wav" ] 112a110,116 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "fire" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "electric" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "ice" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "poison" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ] > }, items\active\weapons\ranged\grenadelauncher\uncommongrenadelauncher.activeitem 41,43d40 < }, < "sounds" : { < "fire" : [ "/sfx/gun/grenade1.wav" ] 112a110,116 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "fire" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "electric" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "ice" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ], > "poison" : [ "/sfx/gun/grenade1.wav", "/sfx/gun/grenade2.wav" ] > }, items\active\weapons\ranged\rocketlauncher\commonrocketlauncher.activeitem 43c43 < "fire" : [ "/sfx/gun/rocket_shot.wav" ] --- > "fire" : [ "/sfx/gun/rocket1.wav" ] 103a104,106 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/rocket1.wav" ] > }, items\active\weapons\ranged\rocketlauncher\rarerocketlauncher.activeitem 114a115,121 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/rocket1.wav" ], > "fire" : [ "/sfx/gun/rocket_fire1.wav" ], > "electric" : [ "/sfx/gun/rocket_electric1.wav" ], > "ice" : [ "/sfx/gun/rocket_ice1.wav" ], > "poison" : [ "/sfx/gun/rocket_poison1.wav" ] > }, items\active\weapons\ranged\rocketlauncher\uncommonrocketlauncher.activeitem 43c43 < "fire" : [ "/sfx/gun/rocket_shot.wav" ] --- > "fire" : [ "/sfx/gun/rocket1.wav" ] 114a115,121 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/rocket1.wav" ], > "fire" : [ "/sfx/gun/rocket_fire1.wav" ], > "electric" : [ "/sfx/gun/rocket_electric1.wav" ], > "ice" : [ "/sfx/gun/rocket_ice1.wav" ], > "poison" : [ "/sfx/gun/rocket_poison1.wav" ] > }, items\active\weapons\ranged\sniperrifle\commonsniperrifle.activeitem 17,21c17 < "animationCustom" : { < "sounds" : { < "fire" : [ "/sfx/gun/sniper1.wav" ] < } < }, --- > "animationCustom" : { }, 79a76,78 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/sniper1.wav", "/sfx/gun/sniper2.wav", "/sfx/gun/sniper3.wav", "/sfx/gun/sniper4.wav" ] > }, items\active\weapons\ranged\sniperrifle\raresniperrifle.activeitem 17,21c17 < "animationCustom" : { < "sounds" : { < "fire" : [ "/sfx/gun/plasma_sniper3.wav" ] < } < }, --- > "animationCustom" : { }, 90a87,93 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/sniper1.wav", "/sfx/gun/sniper2.wav", "/sfx/gun/sniper3.wav", "/sfx/gun/sniper4.wav" ], > "fire" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ], > "electric" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ], > "ice" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ], > "poison" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ] > }, items\active\weapons\ranged\sniperrifle\uncommonsniperrifle.activeitem 17,21c17 < "animationCustom" : { < "sounds" : { < "fire" : [ "/sfx/gun/plasma_sniper3.wav" ] < } < }, --- > "animationCustom" : { }, 90a87,93 > "elementalFireSounds" : { > "physical" : [ "/sfx/gun/sniper1.wav", "/sfx/gun/sniper2.wav", "/sfx/gun/sniper3.wav", "/sfx/gun/sniper4.wav" ], > "fire" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ], > "electric" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ], > "ice" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ], > "poison" : [ "/sfx/gun/plasma_sniper1.wav", "/sfx/gun/plasma_sniper2.wav", "/sfx/gun/plasma_sniper3.wav", "/sfx/gun/plasma_sniper4.wav" ] > }, items\guns\accelerator\feroziumrocket.gun 30c30 < "fireSound" : [ { "file" : "/sfx/gun/rocket_shot.wav" } ], --- > "fireSound" : [ { "file" : "/sfx/gun/rocket1.wav" } ], items\guns\randomgenerated\standard\commonrocketlauncher.generatedgun 23c23 < "fireSound" : [ "/sfx/gun/rocket_shot.wav" ], --- > "fireSound" : [ "/sfx/gun/rocket1.wav" ], items\guns\unsorted\waterballoongun.gun 28c28 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\biostaff\biostaff.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\fleshstaff\fleshstaff.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\apex\steel\apexsteelstaff1\apexsteelstaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\apex\steel\apexsteelstaff2\apexsteelstaff2.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\avian\crystal\aviancrystalstaff1\aviancrystalstaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\avian\crystal\aviancrystalstaff2\aviancrystalstaff2.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\floran\leaf\floranleafstaff1\floranleafstaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\floran\leaf\floranleafstaff2\floranleafstaff2.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\glitch\glitch\glitchglitchstaff1\glitchglitchstaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\glitch\glitch\glitchglitchstaff2\glitchglitchstaff2.staff 34c34 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\human\plasma\humanplasmastaff1\humanplasmastaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\human\plasma\humanplasmastaff2\humanplasmastaff2.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\hylotl\aqua\hylotlaquastaff1\hylotlaquastaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\hylotl\aqua\hylotlaquastaff2\hylotlaquastaff2.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\novakid\light\novakidlightstaff1\novakidlightstaff1.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\racialstaves\novakid\light\novakidlightstaff2\novakidlightstaff2.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\scistaff\scistaff.staff 35c35 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, items\staves\slimestaff\slimestaff.staff 32c32 < { "file" : "/sfx/gun/rocket_shot.wav" }, --- > { "file" : "/sfx/gun/rocket1.wav" }, stats\monster_primary.lua 28,31c28,29 < < local knockbackMomentum = vec2.mul(damageRequest.knockbackMomentum, knockbackFactor) < local knockback = vec2.mag(knockbackMomentum) < if knockback > 0 then --- > local momentum = knockbackMomentum(vec2.mul(damageRequest.knockbackMomentum, knockbackFactor)) > if vec2.mag(momentum) > 0 then 33,38c31 < if mcontroller.baseParameters().gravityEnabled then < local dir = knockbackMomentum[1] > 0 and 1 or -1 < mcontroller.addMomentum({dir * knockback / 1.41, knockback / 1.41}) < else < mcontroller.addMomentum(knockbackMomentum) < end --- > mcontroller.addMomentum(momentum) 51a45,58 > > function knockbackMomentum(momentum) > local knockback = vec2.mag(momentum) > if mcontroller.baseParameters().gravityEnabled then > if math.abs(momentum[1]) > 0 then > local dir = momentum[1] > 0 and 1 or -1 > return {dir * knockback / 1.41, knockback / 1.41} > else > return {0, knockback} > end > else > return momentum > end > end \ No newline at end of file