Tower‑defense build placement validation system

How do I…

I’m trying to build a tower placement validation system. I almost succeeded!

1 When the user taps on the build area.
2 Fingerprint object is moved to cursor area (its normally invisible)
3 This is used to check the area is large enough for a tower to be placed.
4 If Fingerprint is in collision with another object or touching the do_not_build area. It will move the fingerprint around its original location to see if their is a valid location to place the menu.

What is the expected result

If the code finds a valid area it shows the build menu.
If it does NOT find a valid area the build menu is not shown.

What is the actual result

It works. Well it used to.
It fails if I click in the same invalid area twice. Not a double click.
Lets say i click inbetween the bushes. The menu is correctly not shown.
Then a second click in the same location shows the menu when it should not.

Related screenshots

this is showing a fail on second click. The black box is the fingerprint and you can see its in contact with a bush. The menu should not be showing in this instance.

Project files (optional)

So this code is a bit of a mess now because i have been trying many different ways to fix it. Also im not sure if its my code or a gdevelop quirk im not aware of.

code
{“000kind”:“GDEVELOP_EventsAndInstructions_CLIPBOARD_KIND-jsBdHbLy912y8Rc”,“content”:{“eventsList”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“MouseButtonFromTextReleased”},“parameters”:[“”,“"Left"”]},{“type”:{“value”:“NumberVariable”},“parameters”:[“Menu_Action”,“=”,“0”]},{“type”:{“value”:“BuiltinCommonInstructions::Once”},“parameters”:}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“CursorX("CameraDrag",0)-32”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“CursorY("CameraDrag",0)-32”]},{“type”:{“value”:“SetX”},“parameters”:[“fingerprint_Controller”,“=”,“CursorX("Controller",0)-32”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint_Controller”,“=”,“CursorY("Controller",0)-32”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“Mouse_Clicked”,“True”,“”]},{“type”:{“value”:“SetBooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“False”,“”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempX”,“=”,“fingerprint.X()”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempY”,“=”,“fingerprint.Y()”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Counter”,“=”,“1”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“False”,“1”]},{“type”:{“value”:“SnapToGrid::SnapObjectToVirtualGrid”},“parameters”:[“”,“fingerprint”,“32”,“32”,“-32”,“-32”,“”]},{“type”:{“value”:“SnapToGrid::SnapObjectToVirtualGrid”},“parameters”:[“”,“fingerprint_Controller”,“32”,“32”,“-32”,“-32”,“”]}],“events”:[{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“Check if current position is VALID\nNO objects are using edge detection might need to change this for all checks\n”},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionNP”},“parameters”:[“fingerprint”,“BuildArea”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“DoNotBuild”,“”,“”,“yes”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Buggy”,“”,“”,“yes”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Bush”,“”,“”,“yes”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase1”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase2”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase3”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Rock1”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock2”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock3”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Moley1”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Flowers_Small”,“”,“”,“no”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxBottom()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxBottom()”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:,“actions”:[{“type”:{“value”:“SetBooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“True”,“”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“True”,“”]}]}]}]}]},{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“If invalid, try snapping to nearest valid area”},{“infiniteLoopWarning”:true,“type”:“BuiltinCommonInstructions::While”,“whileConditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“<”,“5”]},{“type”:{“value”:“BooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“False”,“”]}],“conditions”:,“actions”:[{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“Mouse_Clicked”,“True”,“”]}],“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“1”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX+32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“2”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX-32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“3”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“TempY+32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“4”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“TempY-32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionNP”},“parameters”:[“fingerprint”,“BuildArea”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“DoNotBuild”,“”,“”,“yes”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Buggy”,“”,“”,“yes”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Bush”,“”,“”,“no”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase1”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase2”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase3”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Rock1”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock2”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock3”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Moley1”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Flowers_Small”,“”,“”,“”]}],“actions”:,“events”:[{“folded”:true,“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxBottom()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxBottom()”]}],“actions”:[{“type”:{“value”:“SetBooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“True”,“”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“True”,“”]}]}]}]}]}]}]}]}]}]}]}]}]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:,“actions”:[{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Counter”,“+”,“1”]}]}]},{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“NOT VALID - Restore original position”},{“folded”:true,“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“BooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“False”,“”]},{“type”:{“value”:“BooleanVariable”},“parameters”:[“FinalPlacementOK”,“False”,“True”]},{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“>=”,“4”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“Lost_In_Space.X()”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“Lost_In_Space.Y()”]},{“type”:{“value”:“SetX”},“parameters”:[“fingerprint_Controller”,“=”,“Lost_In_Space.X()”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint_Controller”,“=”,“Lost_In_Space.Y()”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempY”,“=”,“0”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempX”,“=”,“0”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Menu_Action”,“=”,“0”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“False”,“”]}]},{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“VALID - Show build menu “},{“folded”:true,“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“BooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“True”,””]},{“type”:{“value”:“BooleanVariable”},“parameters”:[“FinalPlacementOK”,“True”,“True”]}],“actions”:[{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Menu_Action”,“=”,“2”]},{“type”:{“value”:“SetX”},“parameters”:[“BuildPoint”,“=”,“fingerprint.X()”]},{“type”:{“value”:“SetY”},“parameters”:[“BuildPoint”,“=”,“fingerprint.Y()”]},{“type”:{“value”:“SetX”},“parameters”:[“fingerprint_Controller”,“=”,“CursorX("Controller",0)-16”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint_Controller”,“=”,“CursorY("Controller",0)-16”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempY”,“=”,“0”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempX”,“=”,“0”]}]}],“variables”:[{“name”:“Counter”,“type”:“number”,“value”:1},{“name”:“FinalPlacementOK”,“type”:“boolean”,“value”:false}]}],“eventsCount”:1,“actionsList”:,“actionsCount”:0,“conditionsList”:,“conditionsCount”:0}}

Hello, when u wrote ur code u could have put it in a hide details

Code

{“000kind”:“GDEVELOP_EventsAndInstructions_CLIPBOARD_KIND-jsBdHbLy912y8Rc”,“content”:{“eventsList”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“MouseButtonFromTextReleased”},“parameters”:[“”,““Left””]},{“type”:{“value”:“NumberVariable”},“parameters”:[“Menu_Action”,“=”,“0”]},{“type”:{“value”:“BuiltinCommonInstructions::Once”},“parameters”:}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“CursorX(“CameraDrag”,0)-32”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“CursorY(“CameraDrag”,0)-32”]},{“type”:{“value”:“SetX”},“parameters”:[“fingerprint_Controller”,“=”,“CursorX(“Controller”,0)-32”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint_Controller”,“=”,“CursorY(“Controller”,0)-32”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“Mouse_Clicked”,“True”,“”]},{“type”:{“value”:“SetBooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“False”,“”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempX”,“=”,“fingerprint.X()”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempY”,“=”,“fingerprint.Y()”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Counter”,“=”,“1”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“False”,“1”]},{“type”:{“value”:“SnapToGrid::SnapObjectToVirtualGrid”},“parameters”:[“”,“fingerprint”,“32”,“32”,“-32”,“-32”,“”]},{“type”:{“value”:“SnapToGrid::SnapObjectToVirtualGrid”},“parameters”:[“”,“fingerprint_Controller”,“32”,“32”,“-32”,“-32”,“”]}],“events”:[{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“Check if current position is VALID\nNO objects are using edge detection might need to change this for all checks\n”},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionNP”},“parameters”:[“fingerprint”,“BuildArea”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“DoNotBuild”,“”,“”,“yes”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Buggy”,“”,“”,“yes”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Bush”,“”,“”,“yes”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase1”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase2”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase3”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Rock1”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock2”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock3”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Moley1”,“”,“”,“”]},{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Flowers_Small”,“”,“”,“no”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxBottom()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxBottom()”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:,“actions”:[{“type”:{“value”:“SetBooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“True”,“”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“True”,“”]}]}]}]}]},{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“If invalid, try snapping to nearest valid area”},{“infiniteLoopWarning”:true,“type”:“BuiltinCommonInstructions::While”,“whileConditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“<”,“5”]},{“type”:{“value”:“BooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“False”,“”]}],“conditions”:,“actions”:[{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“Mouse_Clicked”,“True”,“”]}],“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“1”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX+32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“2”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX-32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“3”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“TempY+32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“=”,“4”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“TempX”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“TempY-32”]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionNP”},“parameters”:[“fingerprint”,“BuildArea”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“DoNotBuild”,“”,“”,“yes”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Buggy”,“”,“”,“yes”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Bush”,“”,“”,“no”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase1”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase2”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“TowerBase3”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Rock1”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock2”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“rock3”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Moley1”,“”,“”,“”]}],“actions”:,“events”:[{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“inverted”:true,“value”:“CollisionNP”},“parameters”:[“fingerprint”,“Flowers_Small”,“”,“”,“”]}],“actions”:,“events”:[{“folded”:true,“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxTop()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxLeft()”,“fingerprint.BoundingBoxBottom()”]},{“type”:{“value”:“CollisionPoint”},“parameters”:[“BuildArea”,“fingerprint.BoundingBoxRight()”,“fingerprint.BoundingBoxBottom()”]}],“actions”:[{“type”:{“value”:“SetBooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“True”,“”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“True”,“”]}]}]}]}]}]}]}]}]}]}]}]}]}]},{“type”:“BuiltinCommonInstructions::Standard”,“conditions”:,“actions”:[{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Counter”,“+”,“1”]}]}]},{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“NOT VALID - Restore original position”},{“folded”:true,“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“BooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“False”,“”]},{“type”:{“value”:“BooleanVariable”},“parameters”:[“FinalPlacementOK”,“False”,“True”]},{“type”:{“value”:“NumberVariable”},“parameters”:[“Counter”,“>=”,“4”]}],“actions”:[{“type”:{“value”:“SetX”},“parameters”:[“fingerprint”,“=”,“Lost_In_Space.X()”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint”,“=”,“Lost_In_Space.Y()”]},{“type”:{“value”:“SetX”},“parameters”:[“fingerprint_Controller”,“=”,“Lost_In_Space.X()”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint_Controller”,“=”,“Lost_In_Space.Y()”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempY”,“=”,“0”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempX”,“=”,“0”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Menu_Action”,“=”,“0”]},{“type”:{“value”:“SetBooleanVariable”},“parameters”:[“FinalPlacementOK”,“False”,“”]}]},{“folded”:true,“type”:“BuiltinCommonInstructions::Comment”,“color”:{“b”:109,“g”:230,“r”:255,“textB”:0,“textG”:0,“textR”:0},“comment”:“VALID - Show build menu “},{“folded”:true,“type”:“BuiltinCommonInstructions::Standard”,“conditions”:[{“type”:{“value”:“BooleanObjectVariable”},“parameters”:[“fingerprint”,“In_build_Area”,“True”,””]},{“type”:{“value”:“BooleanVariable”},“parameters”:[“FinalPlacementOK”,“True”,“True”]}],“actions”:[{“type”:{“value”:“SetNumberVariable”},“parameters”:[“Menu_Action”,“=”,“2”]},{“type”:{“value”:“SetX”},“parameters”:[“BuildPoint”,“=”,“fingerprint.X()”]},{“type”:{“value”:“SetY”},“parameters”:[“BuildPoint”,“=”,“fingerprint.Y()”]},{“type”:{“value”:“SetX”},“parameters”:[“fingerprint_Controller”,“=”,“CursorX(“Controller”,0)-16”]},{“type”:{“value”:“SetY”},“parameters”:[“fingerprint_Controller”,“=”,“CursorY(“Controller”,0)-16”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempY”,“=”,“0”]},{“type”:{“value”:“SetNumberVariable”},“parameters”:[“TempX”,“=”,“0”]}]}],“variables”:[{“name”:“Counter”,“type”:“number”,“value”:1},{“name”:“FinalPlacementOK”,“type”:“boolean”,“value”:false}]}],“eventsCount”:1,“actionsList”:,“actionsCount”:0,“conditionsList”:,“conditionsCount”:0}}

(or put a screenshot)

If i understand you correctly
You need logic to NOT allow to build new tower if its in collision with already occupied space by other tower

Then this will help

thanks for the helpful information.

1 Like

this isnt it .but i solved it thanks

1 Like