FILES ----- dungeons\other\naturalcave\2d-objects.png items\active\effects\renderrope.lua items\active\weapons\bossdrop\ixodoomclaw\ixodoomclaw.activeitem monsters\fishing\hookedState.lua [NEW] monsters\fishing\lurkState.lua monsters\fishing\large\chuckle\fishingchuckle.monstertype monsters\fishing\large\hoop\fishinghoop.monstertype monsters\fishing\large\sunbeam\fishingsunbeam.monstertype monsters\fishing\medium\chomp\fishingchomp.monstertype monsters\fishing\medium\funny\fishingfunny.monstertype monsters\fishing\medium\jaw\fishingjaw.monstertype monsters\fishing\medium\square\fishingsquare.monstertype monsters\fishing\medium\tongue\fishingtongue.monstertype monsters\fishing\small\dirt\fishingdirt.monstertype monsters\fishing\small\frill\fishingfrill.monstertype monsters\fishing\small\jerk\fishingjerk.monstertype monsters\fishing\small\worm\fishingworm.monstertype projectiles\activeitems\webblast\webblast.projectile scripts\fishing\fishingspawner.config [NEW] sfx\melee\ixodoomclaw_web1.ogg [NEW] sfx\melee\ixodoomclaw_web2.ogg sfx\projectiles\zone_energy_loop.ogg sfx\projectiles\zone_healing_loop.ogg sfx\projectiles\zone_lowgrav_loop.ogg sfx\projectiles\zone_power_loop.ogg sfx\projectiles\zone_pull_loop.ogg sfx\projectiles\zone_push_loop.ogg sfx\projectiles\zone_slow_loop.ogg [NEW] sfx\tools\rod_line_stretching.ogg DIFFS ----- items\active\effects\renderrope.lua 19c19 < color = config.getParameter("ropeColor"), --- > color = activeItemAnimation.animationParameter("ropeColor", config.getParameter("ropeColor")), items\active\weapons\bossdrop\ixodoomclaw\ixodoomclaw.activeitem 23c23 < "physicalTravelSlash" : ["/sfx/melee/swing_hammer.ogg"], --- > "physicalTravelSlash" : ["/sfx/melee/ixodoomclaw_web2.ogg"], monsters\fishing\hookedState.lua 9c9,10 < fight = false, --- > fightChance = config.getParameter("fightChance", 0.5), > tensionTimer = 0, 25,27c26,43 < if stateData.struggleTimer == 0 or collides("blockedSensors") then < stateData.struggleTimer = util.randomInRange(config.getParameter("struggleTimeRange", {0.7, 1.2})) < stateData.struggleAngle = vec2.angle(toRod) + math.pi + (math.random() - 0.5) * 1 --- > if stateData.struggleTimer == 0 then > if stateData.fight == false and math.random() < stateData.fightChance then > stateData.fight = true > stateData.tensionTimer = 0 > stateData.fightChance = config.getParameter("fightChance", 0.5) > stateData.struggleTimer = config.getParameter("fightTime", 1.3) > stateData.struggleAngle = math.pi > world.sendEntityMessage(self.ownerId, "startFight") > else > if stateData.fight then > world.sendEntityMessage(self.ownerId, "stopFight") > else > stateData.fightChance = stateData.fightChance + 0.1 > end > stateData.fight = false > stateData.struggleTimer = util.randomInRange(config.getParameter("struggleTimeRange", {0.7, 1.3})) > stateData.struggleAngle = util.randomDirection() * math.pi * 0.5 > end 31,32c47,76 < local diff = util.angleDiff(stateData.struggleAngle, rodAngle) < local moveAngle = rodAngle + diff * (self.controls.reel and 0.4 or 0.7) --- > if stateData.fight then > if self.controls.reel then > stateData.tensionTimer = stateData.tensionTimer + dt > if stateData.tensionTimer > self.reelParameters.lineBreakTime then > world.sendEntityMessage(self.ownerId, "lineBreak") > return false > end > else > stateData.tensionTimer = math.max(0, stateData.tensionTimer - dt) > end > > local moveDirection = vec2.withAngle(rodAngle + stateData.struggleAngle, self.controls.down and self.fastSpeed or 2) > mcontroller.controlFace(moveDirection[1]) > setBodyDirection(moveDirection) > mcontroller.controlApproachVelocity(moveDirection, self.swimForce) > else > local reelAngleAdjust > if self.controls.reel then > reelAngleAdjust = util.toDirection(stateData.struggleAngle) * -config.getParameter("reelInAngle", 0.3) > else > reelAngleAdjust = util.toDirection(stateData.struggleAngle) * 0.2 > end > > local moveAngle = rodAngle + stateData.struggleAngle + reelAngleAdjust > > local samplePoint = vec2.add(mcontroller.position(), vec2.withAngle(moveAngle, 3)) > -- world.debugPoint(samplePoint, "blue") > if not world.liquidAt(samplePoint) then > stateData.struggleAngle = -stateData.struggleAngle > end 34,37c78 < local samplePoint = vec2.add(mcontroller.position(), vec2.withAngle(moveAngle, 3)) < world.debugPoint(samplePoint, "blue") < if not world.liquidAt(samplePoint) then < stateData.struggleAngle = (stateData.struggleAngle + 2 * diff) % (2 * math.pi) --- > move(vec2.withAngle(moveAngle), true, "panicFast") 39,40d79 < < move(vec2.withAngle(moveAngle), true, "panicFast") 41a81,83 > -- TODO: don't spam this > world.sendEntityMessage(self.ownerId, "stopFight") > 43c85 < mcontroller.controlApproachVelocityAlongAngle(vec2.angle(toRod), self.reelParameters.reelSpeed, self.reelParameters.reelForce) --- > mcontroller.controlApproachVelocityAlongAngle(vec2.angle(toRod), self.reelParameters.reelSpeed, 1000) monsters\fishing\large\chuckle\fishingchuckle.monstertype 24a25,26 > "reelInAngle" : 0.2, > "fightChance" : 0.5, monsters\fishing\large\hoop\fishinghoop.monstertype 24a25,26 > "reelInAngle" : 0.25, > "fightChance" : 0.4, monsters\fishing\large\sunbeam\fishingsunbeam.monstertype 24a25,26 > "reelInAngle" : 0.25, > "fightChance" : 0.4, monsters\fishing\medium\chomp\fishingchomp.monstertype 24a25,26 > "reelInAngle" : 0.3, > "fightChance" : 0.2, monsters\fishing\medium\funny\fishingfunny.monstertype 24a25,26 > "reelInAngle" : 0.3, > "fightChance" : 0.4, monsters\fishing\medium\jaw\fishingjaw.monstertype 15c15 < "/monsters/fishing/approachState.lua", --- > "/monsters/fishing/lurkState.lua", 24a25,27 > "biteDistance" : 5, > "reelInAngle" : 0.25, > "fightChance" : 0.3, monsters\fishing\medium\square\fishingsquare.monstertype 24a25,26 > "reelInAngle" : 0.3, > "fightChance" : 0.4, monsters\fishing\medium\tongue\fishingtongue.monstertype 24a25,26 > "reelInAngle" : 0.25, > "fightChance" : 0.4, monsters\fishing\small\dirt\fishingdirt.monstertype 15c15 < "/monsters/fishing/approachState.lua", --- > "/monsters/fishing/lurkState.lua", 24c24,27 < "lookTimeRange" : [1.5, 2.5], --- > "lookTimeRange" : [2, 2.5], > "biteDistance" : 5, > "reelInAngle" : 0.4, > "fightChance" : 0.3, 27c30 < "swimSpeedSlow" : 3.5, --- > "swimSpeedSlow" : 3, monsters\fishing\small\frill\fishingfrill.monstertype 24a25,26 > "reelInAngle" : 0.3, > "fightChance" : 0.4, monsters\fishing\small\jerk\fishingjerk.monstertype 24c24,27 < "lookTimeRange" : [1.5, 2.5], --- > "lookTimeRange" : [1, 2], > "approachTimeRange" : [4, 6], > "reelInAngle" : 0.4, > "fightChance" : 0.3, 27c30 < "swimSpeedSlow" : 3.5, --- > "swimSpeedSlow" : 4, monsters\fishing\small\worm\fishingworm.monstertype 24a25,26 > "reelInAngle" : 0.25, > "fightChance" : 0.4, projectiles\activeitems\webblast\webblast.projectile 17c17 < "damageKind" : "default", --- > "damageKind" : "tarball", scripts\fishing\fishingspawner.config 8c8 < [0.2, "uncommon"], --- > [0.25, "uncommon"],