@@ -994,6 +994,87 @@ TEST(EngineTest, Broadcasts)
994994 ASSERT_EQ (engine.findBroadcastById (" c" ), 2 );
995995}
996996
997+ TEST (EngineTest, TargetClickScripts)
998+ {
999+ Project p (" target_click_scripts.sb3" );
1000+ ASSERT_TRUE (p.load ());
1001+ p.run ();
1002+
1003+ auto engine = p.engine ();
1004+
1005+ Stage *stage = engine->stage ();
1006+ ASSERT_TRUE (stage);
1007+
1008+ // Initial state
1009+ ASSERT_VAR (stage, " 1" );
1010+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 0 );
1011+ ASSERT_VAR (stage, " 2" );
1012+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 0 );
1013+ ASSERT_VAR (stage, " stage" );
1014+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1015+
1016+ // Sprite1
1017+ Target *sprite = engine->targetAt (engine->findTarget (" Sprite1" ));
1018+ ASSERT_TRUE (sprite);
1019+ engine->clickTarget (sprite);
1020+ engine->step ();
1021+ ASSERT_VAR (stage, " 1" );
1022+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 1 );
1023+ ASSERT_VAR (stage, " 2" );
1024+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 0 );
1025+ ASSERT_VAR (stage, " stage" );
1026+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1027+
1028+ engine->clickTarget (sprite);
1029+ engine->step ();
1030+ ASSERT_VAR (stage, " 1" );
1031+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1032+ ASSERT_VAR (stage, " 2" );
1033+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 0 );
1034+ ASSERT_VAR (stage, " stage" );
1035+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1036+
1037+ // Sprite2
1038+ sprite = engine->targetAt (engine->findTarget (" Sprite2" ));
1039+ ASSERT_TRUE (sprite);
1040+ engine->clickTarget (sprite);
1041+ engine->step ();
1042+ ASSERT_VAR (stage, " 1" );
1043+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1044+ ASSERT_VAR (stage, " 2" );
1045+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 1 );
1046+ ASSERT_VAR (stage, " stage" );
1047+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1048+
1049+ engine->clickTarget (sprite);
1050+ engine->step ();
1051+ ASSERT_VAR (stage, " 1" );
1052+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1053+ ASSERT_VAR (stage, " 2" );
1054+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 2 );
1055+ ASSERT_VAR (stage, " stage" );
1056+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1057+
1058+ // Stage
1059+ engine->clickTarget (stage);
1060+ engine->step ();
1061+ ASSERT_VAR (stage, " 1" );
1062+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1063+ ASSERT_VAR (stage, " 2" );
1064+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 2 );
1065+ ASSERT_VAR (stage, " stage" );
1066+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 1 );
1067+
1068+ engine->clickTarget (stage);
1069+ engine->step ();
1070+ ASSERT_VAR (stage, " 1" );
1071+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1072+ ASSERT_VAR (stage, " 2" );
1073+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 2 );
1074+ ASSERT_VAR (stage, " stage" );
1075+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 2 );
1076+ }
1077+
9971078TEST (EngineTest, Targets)
9981079{
9991080 Engine engine;
0 commit comments