@@ -1055,6 +1055,87 @@ TEST(EngineTest, Broadcasts)
10551055 ASSERT_EQ (engine.findBroadcastById (" c" ), 2 );
10561056}
10571057
1058+ TEST (EngineTest, TargetClickScripts)
1059+ {
1060+ Project p (" target_click_scripts.sb3" );
1061+ ASSERT_TRUE (p.load ());
1062+ p.run ();
1063+
1064+ auto engine = p.engine ();
1065+
1066+ Stage *stage = engine->stage ();
1067+ ASSERT_TRUE (stage);
1068+
1069+ // Initial state
1070+ ASSERT_VAR (stage, " 1" );
1071+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 0 );
1072+ ASSERT_VAR (stage, " 2" );
1073+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 0 );
1074+ ASSERT_VAR (stage, " stage" );
1075+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1076+
1077+ // Sprite1
1078+ Target *sprite = engine->targetAt (engine->findTarget (" Sprite1" ));
1079+ ASSERT_TRUE (sprite);
1080+ engine->clickTarget (sprite);
1081+ engine->step ();
1082+ ASSERT_VAR (stage, " 1" );
1083+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 1 );
1084+ ASSERT_VAR (stage, " 2" );
1085+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 0 );
1086+ ASSERT_VAR (stage, " stage" );
1087+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1088+
1089+ engine->clickTarget (sprite);
1090+ engine->step ();
1091+ ASSERT_VAR (stage, " 1" );
1092+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1093+ ASSERT_VAR (stage, " 2" );
1094+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 0 );
1095+ ASSERT_VAR (stage, " stage" );
1096+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1097+
1098+ // Sprite2
1099+ sprite = engine->targetAt (engine->findTarget (" Sprite2" ));
1100+ ASSERT_TRUE (sprite);
1101+ engine->clickTarget (sprite);
1102+ engine->step ();
1103+ ASSERT_VAR (stage, " 1" );
1104+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1105+ ASSERT_VAR (stage, " 2" );
1106+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 1 );
1107+ ASSERT_VAR (stage, " stage" );
1108+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1109+
1110+ engine->clickTarget (sprite);
1111+ engine->step ();
1112+ ASSERT_VAR (stage, " 1" );
1113+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1114+ ASSERT_VAR (stage, " 2" );
1115+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 2 );
1116+ ASSERT_VAR (stage, " stage" );
1117+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 0 );
1118+
1119+ // Stage
1120+ engine->clickTarget (stage);
1121+ engine->step ();
1122+ ASSERT_VAR (stage, " 1" );
1123+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1124+ ASSERT_VAR (stage, " 2" );
1125+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 2 );
1126+ ASSERT_VAR (stage, " stage" );
1127+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 1 );
1128+
1129+ engine->clickTarget (stage);
1130+ engine->step ();
1131+ ASSERT_VAR (stage, " 1" );
1132+ ASSERT_EQ (GET_VAR (stage, " 1" )->value ().toInt (), 2 );
1133+ ASSERT_VAR (stage, " 2" );
1134+ ASSERT_EQ (GET_VAR (stage, " 2" )->value ().toInt (), 2 );
1135+ ASSERT_VAR (stage, " stage" );
1136+ ASSERT_EQ (GET_VAR (stage, " stage" )->value ().toInt (), 2 );
1137+ }
1138+
10581139TEST (EngineTest, Targets)
10591140{
10601141 Engine engine;
0 commit comments