FILES ----- [NEW] animations\perfectblock\perfectblock.animation [NEW] animations\perfectblock\perfectblock.frames [NEW] animations\perfectblock\perfectblock.png [NEW] items\shields\randomgenerated\iceshield.generatedshield [NEW] monsters\pets\petbehavior.lua monsters\pets\actions\pounceaction.lua monsters\pets\bunny\petbunny.monstertype monsters\pets\cat\petcat.monstertype monsters\pets\crasberry\crasberry.monstertype monsters\pets\orbis\petorbis.monstertype monsters\pets\piglett\piglett.monstertype monsters\pets\snake\petsnake.monstertype monsters\pets\snugget\snugget.monstertype monsters\pets\weasel\petweasel.monstertype objects\ship\aviantechstation\aviantechstation.object objects\ship\florantechstation\florantechstation.object objects\ship\glitchtechstation\glitchtechstation.object objects\ship\humantechstation\humantechstation.object objects\ship\hylotltechstation\hylotltechstation.object objects\ship\novakidtechstation\novakidtechstation.object objects\ship\techstation\techstation.object [NEW] particles\perfectblock.particle DIFFS ----- monsters\pets\actions\pounceaction.lua 14d13 < maxRange = entity.configParameter("pounce.maxRange"), 17d15 < emote = args.emote, 30d27 < --Approach the target until we can pounce 36,44c33,34 < if not stateData.didPounce and (not entity.entityInSight(stateData.targetId) or not canPounce or not mcontroller.onGround()) then < stateData.approachTimer = stateData.approachTimer - dt < < if approachPoint(dt, targetPosition, 1, running) or stateData.approachTimer < 0 or self.pathing.stuck then < return true, entity.configParameter("actionParams.play.cooldown", 10) < end < < return false < elseif not stateData.didPounce and canPounce and mcontroller.onGround() then --- > --Pounce if we can > if not stateData.didPounce and canPounce and mcontroller.onGround() and entity.entityInSight(stateData.targetId) then 50,51c40,48 < if stateData.emote then < emote(stateData.emote) --- > return false > end > > --Otherwise approach the ball until we can pounce > if not stateData.didPounce then > stateData.approachTimer = stateData.approachTimer - dt > > if not approachPoint(dt, targetPosition, 1, true) and stateData.approachTimer > 0 and not self.pathing.stuck then > return false 53c50,53 < elseif stateData.didPounce then --- > end > > --While pouncing > if stateData.didPounce then 62a63 > --If we're on ground, finish the pounce 67d67 < --Pounced at the ball, push the ball away 69,72c69 < elseif targetName == "petball" then < --Finished pouncing but missed the target < stateData.didPounce = false < return false --- > status.modifyResource("playful", -30) 74,75c71,72 < < return true, entity.configParameter("actionParams.play.cooldown", 10) --- > else > return false 77,78d73 < else < return true, entity.configParameter("actionParams.play.cooldown", 10) 81,85c76 < return false < end < < function pounceAction.leavingState(stateData) < status.modifyResource("playful", -30) --- > return true, entity.configParameter("actionParams.play.cooldown", 10) monsters\pets\bunny\petbunny.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\cat\petcat.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\crasberry\crasberry.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\orbis\petorbis.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\piglett\piglett.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\snake\petsnake.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\snugget\snugget.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", monsters\pets\weasel\petweasel.monstertype 25c25 < "/monsters/pets/cat/catBehavior.lua", --- > "/monsters/pets/petBehavior.lua", 35c35 < "behavior" : "catBehavior", --- > "behavior" : "petBehavior", objects\ship\aviantechstation\aviantechstation.object 42c42 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1] objects\ship\florantechstation\florantechstation.object 42c42 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1] objects\ship\glitchtechstation\glitchtechstation.object 42c42 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1] objects\ship\humantechstation\humantechstation.object 42c42 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1] objects\ship\hylotltechstation\hylotltechstation.object 41c41 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1] objects\ship\novakidtechstation\novakidtechstation.object 42c42 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1] objects\ship\techstation\techstation.object 43c43 < "spawnOffset" : [0, 0] --- > "spawnOffset" : [12, -1]