Page 1 of 3

Push Block problem ~sort of...

Posted: Wed Oct 22, 2014 1:24 pm
by Isaac
It would be a great thing to implement logical gravity on these anti-gravity stones. 8-)
Currently if the push block floor is set to a different level, the blocks ignore the [height] gaps in the floor, (though of course... still allowing the blocks to be pushed across them). It makes technical sense, (I suppose it's checking that the next tile is an active push block floor tile; but it completely ignores the height of the floor.
https://www.dropbox.com/s/p311y15mbdxly ... k.avi?dl=0

While I'm sure it was never intended... if the blocks can be made to fall when the push-floor is a level lower... then it opens up quite a lot of potential for puzzle design, I'd think.

BTW, Klotski is a favorite game for me; I'm looking forward to some fun with this new puzzle prop. 8-)

** Would it (or is it) possible to script a push on a block?

Re: Push Block problem ~sort of...

Posted: Wed Oct 22, 2014 6:07 pm
by Batty
I *think* the way to do it will be to add an animation component to the block's definition:

Code: Select all

components = {
      {
         class = "Animation",
         animations = {
            dropBlock = "assets/animations/puzzles/heavyDrop.fbx"
         }
      }
}
Then have a script trigger the dropBlock animation when the block moves above the square. Also, you will need a large splash sound and particle water spray everywhere. :lol:

There is a gravity component that monsters have in the editor, that may do something when added to the blocks.

All speculation without the reference but I think this new component setup will be able to do just about anything. :)

Re: Push Block problem ~sort of...

Posted: Wed Oct 22, 2014 7:08 pm
by Skuggasveinn
I think you will also have another issue, the pushblock doesn't have a party collider from above
So if the party can get above the pushblock they can fall right into it.
So you would also need to spawn an invisible platform above the pushblock (in the main campaign there was always the lightbridge thingy above the pushblocks if you could get above it and walk on top of it, to stop the party from falling in)

but knowing you, you will obliterated this problem :D

Skuggasveinn.

Re: Push Block problem ~sort of...

Posted: Wed Oct 22, 2014 8:22 pm
by Chimera005ao
BTW, Klotski is a favorite game for me; I'm looking forward to some fun with this new puzzle prop. 8-)
Stapling two or more push blocks together to form larger push-able blocks sounds like it'd be very fun. : 3
Especially if you could have multiple levels, with ladders attached to them. :twisted:

Re: Push Block problem ~sort of...

Posted: Wed Oct 22, 2014 9:44 pm
by Isaac
Chimera005ao wrote:
BTW, Klotski is a favorite game for me; I'm looking forward to some fun with this new puzzle prop. 8-)
Stapling two or more push blocks together to form larger push-able blocks sounds like it'd be very fun. : 3
Especially if you could have multiple levels, with ladders attached to them. :twisted:
I think a scripted push feature would be the key to some puzzles like this... more in the way of Mahric's scavenger pawn from the ORRR2.
It'd be nice to have them fall through pits as well. 8-)
Batty wrote:All speculation without the reference but I think this new component setup will be able to do just about anything. :)
I've only just opened the editor last night, I'm still new to the component system. I'm still playing my 1st run on the game; but that sounds promising.

Re: Push Block problem ~sort of...

Posted: Wed Oct 22, 2014 10:13 pm
by Chimera005ao
more in the way of Mahric's scavenger pawn from the ORRR2.
Which was amazing, and I wish I knew how that worked.

Re: Push Block problem ~sort of...

Posted: Thu Oct 23, 2014 5:38 am
by BlankDiploma
Hey, I've been have a related problem with pushblocks that I believe to be an outright bug.

If you have a two-level pushblock puzzle (e.g. with one set of floors and blocks at z=0 and another set of floors and blocks at z=1), the blocks on the upper floor can be pushed anywhere that overlaps an activated floor on EITHER z-level. Surely blocks should only respect the state of the floor on their own level? I'm really hoping this can be fixed because it has totally killed a great idea for a puzzle.

Re: Push Block problem ~sort of...

Posted: Thu Oct 23, 2014 6:02 am
by Isaac
BlankDiploma wrote:Hey, I've been have a related problem with pushblocks that I believe to be an outright bug.

If you have a two-level pushblock puzzle (e.g. with one set of floors and blocks at z=0 and another set of floors and blocks at z=1), the blocks on the upper floor can be pushed anywhere that overlaps an activated floor on EITHER z-level. Surely blocks should only respect the state of the floor on their own level? I'm really hoping this can be fixed because it has totally killed a great idea for a puzzle.
The root cause is is the same issue.

Re: Push Block problem ~sort of...

Posted: Fri Oct 24, 2014 6:07 pm
by Drakkan
guys pls help with script, I need door1 to be opened when three pushable_floor_triggers (called trigger1, trigger2, trigger3) have pushable_block (called block1, block2, block3) on them. I tried to play with counters, but there is only activation by item, not by object :/
Also there should be some plate(plate1), which when activated, will teleport block1-3 to its original position (reset). Thanks for any help

Re: Push Block problem ~sort of...

Posted: Sat Oct 25, 2014 11:25 am
by Isaac
Drakkan wrote:guys pls help with script, I need door1 to be opened when three pushable_floor_triggers (called trigger1, trigger2, trigger3) have pushable_block (called block1, block2, block3) on them. I tried to play with counters, but there is only activation by item, not by object :/
Also there should be some plate(plate1), which when activated, will teleport block1-3 to its original position (reset). Thanks for any help
Place this in a script and connect all three plates.

Code: Select all

function checkBlocks()
	local plate = {
				   {trigger1.x, trigger1.y},
				   {trigger2.x, trigger2.y},
				   {trigger3.x, trigger3.y}
				  }
				 
	local block = {
				   {block1.x, block1.y},
				   {block2.x, block2.y},
				   {block3.x, block3.y}
				  }
			
 	for z = 1, 3 do
		for w = 1,#plate do
			if plate[z][w] ~= block[z][w] then
				return
			end
		end
	end
	door1.door:open()
end