Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Connect Four in Overwatch. By Deadlibor#2872 v1.0."
  • Description: "Connect Four in Overwatch. By Deadlibor#2872 v1.1."
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • Max Team 2 Players: 0
  • }
  • modes
  • {
  • disabled Assault
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • disabled Control
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • disabled Escort
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • disabled Hybrid
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • Skirmish
  • {
  • Hero Limit: Off
  • Respawn Time Scalar: 30%
  • enabled maps
  • {
  • Workshop Island Night
  • Blizzard World Winter
  • }
  • }
  • }
  • heroes
  • {
  • General
  • {
  • No Ammunition Requirement: On
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 0: row1
  • 1: row2
  • 2: row3
  • 3: row4
  • 4: row5
  • 5: row6
  • 6: turn
  • 7: board_position
  • 8: iterator
  • 9: game_state
  • 10: direction_vector
  • 11: arrows_row_color
  • 12: string_horizontal
  • 13: string_vertical
  • 14: string_diagonal
  • 15: string_other_diagonal
  • 16: row
  • 17: column
  • 18: string_everything
  • 19: reset_button
  • 20: turn_orb_position
  • 21: turn_orb_color
  • 22: player_teleport_spots
  • 23: rules
  • }
  • subroutines
  • {
  • 0: draw_stuff
  • 1: check_for_victory
  • 2: reset
  • 3: victory
  • }
  • disabled rule("---------- SETUP ----------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("setup main")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Call Subroutine(reset);
  • }
  • }
  • rule("setup map")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • If(Current Map == Map(Workshop Island) || Current Map == Map(Workshop Island Night));
  • If(Current Map == Map(Workshop Island) || Current Map == Map(Workshop Island Night) || Current Map == Map(Workshop Expanse)
  • || Current Map == Map(Workshop Expanse Night));
  • Global.board_position = Vector(0, 1, 0);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(0, 0.500, -10);
  • Global.turn_orb_position = Vector(0, 0.500, 10);
  • Global.player_teleport_spots = Array(Vector(13, 0, -1), Vector(13, 0, 1));
  • Global.reset_button = Vector(0, 0.500, -9);
  • Global.turn_orb_position = Vector(0, 0.500, 9);
  • Global.player_teleport_spots = Array(Vector(13, 0, -1), Vector(13, 0, 1), Vector(-13, 0, 0));
  • Global.rules = Vector(0, 5, 30);
  • Else If(Current Map == Map(Workshop Chamber));
  • Global.board_position = Vector(0, 1, 0);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(0, 0.500, -9);
  • Global.turn_orb_position = Vector(0, 0.500, 9);
  • Global.player_teleport_spots = Array(Vector(13, 0, -1), Vector(13, 0, 1), Vector(-13, 0, 0));
  • Global.rules = Vector(0, 5, 16);
  • Else If(Current Map == Map(Watchpoint: Gibraltar));
  • Global.board_position = Vector(90, 0, 37);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(84, 0, 44);
  • Global.turn_orb_position = Vector(85, 0, 32);
  • Global.player_teleport_spots = Array(Vector(80, 0, 36), Vector(80, 0, 40), Vector(73, 0, 30.500));
  • Global.rules = Vector(73, 2, 50.500);
  • Else If(Current Map == Map(Volskaya Industries));
  • Global.board_position = Vector(-35, -4, 0);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-25.800, -4, 4.450);
  • Global.turn_orb_position = Vector(-42.170, -4, 4.250);
  • Global.player_teleport_spots = Array(Vector(-37, -5, 7), Vector(-37, -5, 7), Vector(-43.500, -3, 23.500));
  • Global.rules = Vector(-22, -3, 8);
  • Else If(Current Map == Map(Temple of Anubis));
  • Global.board_position = Vector(-7.500, 5, 110);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-14, 5, 111);
  • Global.turn_orb_position = Vector(-2, 5, 110);
  • Global.player_teleport_spots = Array(Vector(-7, 5, 103), Vector(-10, 5, 103), Vector(-9.500, 5, 96));
  • Global.rules = Vector(-29, 9, 114);
  • Else If(Current Map == Map(Route 66));
  • Global.board_position = Vector(-46, 4, -7);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-51, 4, -10);
  • Global.turn_orb_position = Vector(-40, 4, -9);
  • Global.player_teleport_spots = Array(Vector(-45, 4, -20), Vector(-47.500, 4, -20), Vector(-33, 13, -18));
  • Global.rules = Vector(-40.500, 3, -32);
  • Else If(Current Map == Map(Rialto));
  • Global.board_position = Vector(20, 2.500, -68.500);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(14, 1, -64);
  • Global.turn_orb_position = Vector(14, 1, -73.500);
  • Global.player_teleport_spots = Array(Vector(7, 0, -70), Vector(7, 0, -67), Vector(7, 0, -55));
  • Global.rules = Vector(20, 3, -55);
  • Else If(Current Map == Map(Paris));
  • Global.board_position = Vector(-52, 10, -47);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(-56, 10, -41);
  • Global.turn_orb_position = Vector(-56, 9.500, -52.500);
  • Global.player_teleport_spots = Array(Vector(-61, 10, -49), Vector(-61, 10, -45), Vector(7, 0, -55));
  • Global.rules = Vector(-70.500, 11, -33.500);
  • Else If(Current Map == Map(Oasis));
  • Global.board_position = Vector(-220, 20, 0);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(-212, 19.500, -8);
  • Global.turn_orb_position = Vector(-212, 19.500, 8);
  • Global.player_teleport_spots = Array(Vector(-202, 19, 4), Vector(-202, 19, -4), Vector(-211, 18, 12.500));
  • Global.rules = Vector(-212, 18, -15);
  • Else If(Current Map == Map(Numbani));
  • Global.board_position = Vector(123, -6, -25);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(130, -5, -17.500);
  • Global.turn_orb_position = Vector(118, -5, -17.500);
  • Global.player_teleport_spots = Array(Vector(115.500, -3.500, -11.500), Vector(132.500, -3.500, -11.500), Vector(125, -3, -5));
  • Global.rules = Vector(125, 0, 0);
  • Else If(Current Map == Map(Nepal));
  • Global.board_position = Vector(-90, 12, 0);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(-85, 10, -7);
  • Global.turn_orb_position = Vector(-85, 10, 7);
  • Global.player_teleport_spots = Array(Vector(-75, 8, 4), Vector(-75, 8, -4), Vector(-71, 19, 0));
  • Global.rules = Vector(-85, 12, -16.500);
  • Else If(Current Map == Map(Lijiang Tower) || Current Map == Map(Lijiang Tower Lunar New Year));
  • Global.board_position = Vector(1, 0, -66);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(7, 0, -63.500);
  • Global.turn_orb_position = Vector(-5, 0, -63.500);
  • Global.player_teleport_spots = Array(Vector(-3, -1, -55), Vector(5, -1, -55), Vector(5.500, -1, -46));
  • Global.rules = Vector(20, 0, -68);
  • Else If(Current Map == Map(King's Row) || Current Map == Map(King's Row Winter));
  • Global.board_position = Vector(-19.333, 1, -35.500);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-12.500, 0.500, -30.500);
  • Global.turn_orb_position = Vector(-27, 0.500, -31.500);
  • Global.player_teleport_spots = Array(Vector(-21, 0, -29), Vector(-18, 0, -29), Vector(-9.500, 6, -42));
  • Global.rules = Vector(-2.500, 3, -34);
  • Else If(Current Map == Map(Junkertown));
  • Global.board_position = Vector(40, 11, -40);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(32, 9.500, -52.500);
  • Global.turn_orb_position = Vector(43.500, 9.500, -50);
  • Global.player_teleport_spots = Array(Vector(40, 9, -53.500), Vector(38, 9, -52.500), Vector(30, 13.500, -60));
  • Global.rules = Vector(34, 12, -71);
  • Else If(Current Map == Map(Ilios));
  • Global.board_position = Vector(28.500, 58, -152);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(22, 58, -155);
  • Global.turn_orb_position = Vector(35, 58, -155);
  • Global.player_teleport_spots = Array(Vector(30, 58, -160), Vector(28, 58, -160), Vector(22, 60, -168));
  • Global.rules = Vector(39, 62, -160);
  • Else If(Current Map == Map(Horizon Lunar Colony));
  • Global.board_position = Vector(53.550, 10, -83.500);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(49, 9.500, -89);
  • Global.turn_orb_position = Vector(60, 9.500, -89);
  • Global.player_teleport_spots = Array(Vector(55, 9, -92), Vector(52, 9, -92), Vector(50, 8, -100));
  • Global.rules = Vector(69, 10, -83);
  • Else If(Current Map == Map(Hollywood) || Current Map == Map(Hollywood Halloween));
  • Global.board_position = Vector(-12, 2, 64.500);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-20, 0.500, 61.500);
  • Global.turn_orb_position = Vector(-4, 0.500, 61.500);
  • Global.player_teleport_spots = Array(Vector(-10.500, 0, 55), Vector(-13.500, 0, 55), Vector(0, 0, 50));
  • Global.rules = Vector(-25.750, 3, 55);
  • Else If(Current Map == Map(Havana));
  • Global.board_position = Vector(-35.500, 7, -28);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-42, 8, -32.500);
  • Global.turn_orb_position = Vector(-31, 6.500, -31);
  • Global.player_teleport_spots = Array(Vector(-34, 6, -38), Vector(-37, 6, -38), Vector(-30, 6, -44));
  • Global.rules = Vector(-35.500, 10, -52);
  • Else If(Current Map == Map(Hanamura) || Current Map == Map(Hanamura Winter));
  • Global.board_position = Vector(6, 1, 1);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(13.500, 1.500, -4.500);
  • Global.turn_orb_position = Vector(10, 0.500, 7);
  • Global.player_teleport_spots = Array(Vector(15, -1, 2.500), Vector(15, -1, -0.500), Vector(14, 4, 10));
  • Global.rules = Vector(11, 3, -13.500);
  • Else If(Current Map == Map(Eichenwalde) || Current Map == Map(Eichenwalde Halloween));
  • Global.board_position = Vector(70, 13, -85.500);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(78.500, 13, -92);
  • Global.turn_orb_position = Vector(70.500, 14, -77);
  • Global.player_teleport_spots = Array(Vector(83, 13, -85), Vector(83, 13, -88), Vector(82, 13, -100));
  • Global.rules = Vector(87, 15, -69);
  • Else If(Current Map == Map(Dorado));
  • Global.board_position = Vector(74, 8.500, -10);
  • Global.direction_vector = Vector(0, 0, 1);
  • Global.reset_button = Vector(70, 8, -3);
  • Global.turn_orb_position = Vector(70, 7.500, -17);
  • Global.player_teleport_spots = Array(Vector(66, 7, -11), Vector(66, 7, -8), Vector(55, 7, -19));
  • Global.rules = Vector(50, 10, -19);
  • Else If(Current Map == Map(Busan));
  • Global.board_position = Vector(-328.500, 15, 195);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-335, 15, 195);
  • Global.turn_orb_position = Vector(-321, 15, 195);
  • Global.player_teleport_spots = Array(Vector(-326, 14, 184), Vector(-331, 14, 184), Vector(-328.500, 12, 172));
  • Global.rules = Vector(-307, 15, 181);
  • Else If(Current Map == Map(Blizzard World) || Current Map == Map(Blizzard World Winter));
  • Global.board_position = Vector(5, 3, 78);
  • Global.direction_vector = Vector(1, 0, 0);
  • Global.reset_button = Vector(-4, 3, 78);
  • Global.turn_orb_position = Vector(14, 3, 78);
  • Global.player_teleport_spots = Array(Vector(6, 2, 69), Vector(3, 2, 69), Vector(-8, 2, 69));
  • Global.rules = Vector(15, 4, 73);
  • }
  • }
  • rule("startup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.game_state == 0;
  • }
  • actions
  • {
  • Wait(5, Ignore Condition);
  • Start Rule(draw_stuff, Restart Rule);
  • Global.game_state = 1;
  • }
  • }
  • rule("player 1 spawns")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Global.player_teleport_spots[0]);
  • Create Icon(All Players(All Teams), Event Player, Moon, Visible To and Position, Color(Sky Blue), False);
  • }
  • }
  • rule("player 2 spawns")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Global.player_teleport_spots[1]);
  • Create Icon(All Players(All Teams), Event Player, Heart, Visible To and Position, Color(Rose), False);
  • }
  • }
  • rule("other players spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • If(Event Player != Players In Slot(0, Team 1) && Event Player != Players In Slot(1, Team 1));
  • Teleport(Event Player, Global.player_teleport_spots[2]);
  • End;
  • }
  • }
  • rule("draw rules")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create In-World Text(All Players(All Teams), Custom String("connect four by Deadlibor#2872 v1.1."), Global.rules + Up * 6, 2,
  • Clip Against Surfaces, Visible To Position and String, Color(Sky Blue), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("visit workshop.codes/c/d7edur for more queue minigames"),
  • Global.rules + Up * 5.500, 2, Clip Against Surfaces, Visible To Position and String, Color(Sky Blue), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("rules:"), Global.rules + Up * 4, 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Red), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("players in first two slots are playing"), Global.rules + Up * 3.500, 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("players take turn in placing colored discs"), Global.rules + Up * 3, 1,
  • Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("place discs by shooting the arrows above the board"),
  • Global.rules + Up * 2.500, 1, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "whoever connects four discs horizontaly, verticaly or diagonaly, wins"), Global.rules + Up * 2, 1, Clip Against Surfaces,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • disabled rule("---------- PLAYER INPUT ----------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("player clicks reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In View Angle(Event Player, Global.reset_button, 10) == True;
  • Is In View Angle(Event Player, Global.reset_button - 0.500 * Up, 10) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.reset_button) < 15;
  • }
  • actions
  • {
  • Small Message(All Players(All Teams), Custom String("reseting"));
  • Call Subroutine(reset);
  • Global.game_state = 1;
  • }
  • }
  • rule("player 1 is not looking at arrow 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[0] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[0] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[0] == Color(White));
  • Global.row1[0] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[0] == Color(White));
  • Global.row2[0] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[0] == Color(White));
  • Global.row3[0] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[0] == Color(White));
  • Global.row4[0] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[0] == Color(White));
  • Global.row5[0] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[0] == Color(White));
  • Global.row6[0] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 0;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 1 is not looking at arrow 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[1] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[1] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[1] == Color(White));
  • Global.row1[1] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[1] == Color(White));
  • Global.row2[1] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[1] == Color(White));
  • Global.row3[1] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[1] == Color(White));
  • Global.row4[1] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[1] == Color(White));
  • Global.row5[1] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[1] == Color(White));
  • Global.row6[1] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 1;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 1 is not looking at arrow 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[2] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[2] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[2] == Color(White));
  • Global.row1[2] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[2] == Color(White));
  • Global.row2[2] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[2] == Color(White));
  • Global.row3[2] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[2] == Color(White));
  • Global.row4[2] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[2] == Color(White));
  • Global.row5[2] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[2] == Color(White));
  • Global.row6[2] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 2;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 1 is not looking at arrow 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[3] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[3] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[3] == Color(White));
  • Global.row1[3] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[3] == Color(White));
  • Global.row2[3] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[3] == Color(White));
  • Global.row3[3] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[3] == Color(White));
  • Global.row4[3] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[3] == Color(White));
  • Global.row5[3] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[3] == Color(White));
  • Global.row6[3] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 3;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 1 is not looking at arrow 5")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[4] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 5")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[4] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 5")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[4] == Color(White));
  • Global.row1[4] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[4] == Color(White));
  • Global.row2[4] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[4] == Color(White));
  • Global.row3[4] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[4] == Color(White));
  • Global.row4[4] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[4] == Color(White));
  • Global.row5[4] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[4] == Color(White));
  • Global.row6[4] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 4;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 1 is not looking at arrow 6")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[5] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 6")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[5] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 6")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[5] == Color(White));
  • Global.row1[5] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[5] == Color(White));
  • Global.row2[5] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[5] == Color(White));
  • Global.row3[5] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[5] == Color(White));
  • Global.row4[5] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[5] == Color(White));
  • Global.row5[5] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[5] == Color(White));
  • Global.row6[5] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 5;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 1 is not looking at arrow 7")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[6] = Color(Sky Blue);
  • }
  • }
  • rule("player 1 is looking at arrow 7")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[6] = Color(Lime Green);
  • }
  • }
  • rule("player 1 clicks on arrow 7")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turn == 1;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[6] == Color(White));
  • Global.row1[6] = Color(Sky Blue);
  • Global.row = 1;
  • Else If(Global.row2[6] == Color(White));
  • Global.row2[6] = Color(Sky Blue);
  • Global.row = 2;
  • Else If(Global.row3[6] == Color(White));
  • Global.row3[6] = Color(Sky Blue);
  • Global.row = 3;
  • Else If(Global.row4[6] == Color(White));
  • Global.row4[6] = Color(Sky Blue);
  • Global.row = 4;
  • Else If(Global.row5[6] == Color(White));
  • Global.row5[6] = Color(Sky Blue);
  • Global.row = 5;
  • Else If(Global.row6[6] == Color(White));
  • Global.row6[6] = Color(Sky Blue);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 6;
  • Call Subroutine(check_for_victory);
  • Global.turn = 2;
  • }
  • }
  • rule("player 2 is not looking at arrow 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[0] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[0] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[0] == Color(White));
  • Global.row1[0] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[0] == Color(White));
  • Global.row2[0] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[0] == Color(White));
  • Global.row3[0] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[0] == Color(White));
  • Global.row4[0] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[0] == Color(White));
  • Global.row5[0] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[0] == Color(White));
  • Global.row6[0] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 0;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • rule("player 2 is not looking at arrow 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[1] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[1] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[1] == Color(White));
  • Global.row1[1] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[1] == Color(White));
  • Global.row2[1] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[1] == Color(White));
  • Global.row3[1] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[1] == Color(White));
  • Global.row4[1] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[1] == Color(White));
  • Global.row5[1] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[1] == Color(White));
  • Global.row6[1] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 1;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • rule("player 2 is not looking at arrow 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[2] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[2] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[2] == Color(White));
  • Global.row1[2] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[2] == Color(White));
  • Global.row2[2] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[2] == Color(White));
  • Global.row3[2] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[2] == Color(White));
  • Global.row4[2] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[2] == Color(White));
  • Global.row5[2] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[2] == Color(White));
  • Global.row6[2] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 2;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • rule("player 2 is not looking at arrow 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[3] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[3] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 4")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position - 0 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[3] == Color(White));
  • Global.row1[3] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[3] == Color(White));
  • Global.row2[3] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[3] == Color(White));
  • Global.row3[3] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[3] == Color(White));
  • Global.row4[3] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[3] == Color(White));
  • Global.row5[3] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[3] == Color(White));
  • Global.row6[3] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 3;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • rule("player 2 is not looking at arrow 5")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[4] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 5")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[4] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 5")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 1 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[4] == Color(White));
  • Global.row1[4] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[4] == Color(White));
  • Global.row2[4] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[4] == Color(White));
  • Global.row3[4] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[4] == Color(White));
  • Global.row4[4] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[4] == Color(White));
  • Global.row5[4] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[4] == Color(White));
  • Global.row6[4] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 4;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • rule("player 2 is not looking at arrow 6")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[5] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 6")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[5] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 6")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 2 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[5] == Color(White));
  • Global.row1[5] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[5] == Color(White));
  • Global.row2[5] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[5] == Color(White));
  • Global.row3[5] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[5] == Color(White));
  • Global.row4[5] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[5] == Color(White));
  • Global.row5[5] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[5] == Color(White));
  • Global.row6[5] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 5;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • rule("player 2 is not looking at arrow 7")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 6 * Up, 2) == False;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 5.750 * Up, 2) == False;
  • }
  • actions
  • {
  • Global.arrows_row_color[6] = Color(Rose);
  • }
  • }
  • rule("player 2 is looking at arrow 7")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • }
  • actions
  • {
  • Global.arrows_row_color[6] = Color(Lime Green);
  • }
  • }
  • rule("player 2 clicks on arrow 7")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 1;
  • }
  • conditions
  • {
  • Global.turn == 2;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 6 * Up, 2) == True;
  • Is In View Angle(Event Player, Global.board_position + 3 * Global.direction_vector + 5.750 * Up, 2) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Distance Between(Position Of(Event Player), Global.board_position) < 14;
  • Global.game_state == 1;
  • }
  • actions
  • {
  • If(Global.row1[6] == Color(White));
  • Global.row1[6] = Color(Rose);
  • Global.row = 1;
  • Else If(Global.row2[6] == Color(White));
  • Global.row2[6] = Color(Rose);
  • Global.row = 2;
  • Else If(Global.row3[6] == Color(White));
  • Global.row3[6] = Color(Rose);
  • Global.row = 3;
  • Else If(Global.row4[6] == Color(White));
  • Global.row4[6] = Color(Rose);
  • Global.row = 4;
  • Else If(Global.row5[6] == Color(White));
  • Global.row5[6] = Color(Rose);
  • Global.row = 5;
  • Else If(Global.row6[6] == Color(White));
  • Global.row6[6] = Color(Rose);
  • Global.row = 6;
  • Else;
  • Small Message(Event Player, Custom String("Column is full"));
  • Abort;
  • End;
  • Global.column = 6;
  • Call Subroutine(check_for_victory);
  • Global.turn = 1;
  • }
  • }
  • disabled rule("---------- SUBROUTINES ----------")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("SUB draw stuff")
  • {
  • event
  • {
  • Subroutine;
  • draw_stuff;
  • }
  • actions
  • {
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.board_position - 3.600 * Global.direction_vector - 0.600 * Up,
  • Global.board_position + 3.600 * Global.direction_vector - 0.600 * Up, Color(White), Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.board_position - 3.600 * Global.direction_vector + 5.600 * Up,
  • Global.board_position + 3.600 * Global.direction_vector + 5.600 * Up, Color(White), Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.board_position - 3.600 * Global.direction_vector - 0.600 * Up,
  • Global.board_position - 3.600 * Global.direction_vector + 5.600 * Up, Color(White), Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.board_position + 3.600 * Global.direction_vector - 0.600 * Up,
  • Global.board_position + 3.600 * Global.direction_vector + 5.600 * Up, Color(White), Visible To Position and Radius);
  • For Global Variable(iterator, -3, 4, 1);
  • Create Effect(All Players(All Teams), Sphere, Global.row1[Evaluate Once(Global.iterator + 3)],
  • Global.board_position + Global.iterator * Global.direction_vector, 0.500, Color);
  • Create Effect(All Players(All Teams), Sphere, Global.row2[Evaluate Once(Global.iterator + 3)],
  • Global.board_position + Global.iterator * Global.direction_vector + 1 * Up, 0.500, Color);
  • Create Effect(All Players(All Teams), Sphere, Global.row3[Evaluate Once(Global.iterator + 3)],
  • Global.board_position + Global.iterator * Global.direction_vector + 2 * Up, 0.500, Color);
  • Create Effect(All Players(All Teams), Sphere, Global.row4[Evaluate Once(Global.iterator + 3)],
  • Global.board_position + Global.iterator * Global.direction_vector + 3 * Up, 0.500, Color);
  • Create Effect(All Players(All Teams), Sphere, Global.row5[Evaluate Once(Global.iterator + 3)],
  • Global.board_position + Global.iterator * Global.direction_vector + 4 * Up, 0.500, Color);
  • Create Effect(All Players(All Teams), Sphere, Global.row6[Evaluate Once(Global.iterator + 3)],
  • Global.board_position + Global.iterator * Global.direction_vector + 5 * Up, 0.500, Color);
  • Create Icon(All Players(All Teams), Global.board_position + Global.iterator * Global.direction_vector + 6 * Up, Arrow: Down, Color,
  • Global.arrows_row_color[Evaluate Once(Global.iterator + 3)], False);
  • End;
  • Create Effect(All Players(All Teams), Orb, Color(Red), Global.reset_button, 1, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Orb, Global.turn_orb_color, Global.turn_orb_position, 1, Color);
  • Create In-World Text(All Players(All Teams), Custom String("reset"), Global.reset_button, 1, Clip Against Surfaces,
  • Create In-World Text(All Players(All Teams), Custom String("shoot me to reset"), Global.reset_button, 1, Clip Against Surfaces,
  • Visible To Position and String, Color(Red), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Player's turn"), Global.turn_orb_position, 1, Clip Against Surfaces,
  • Color, Global.turn_orb_color, Default Visibility);
  • }
  • }
  • rule("SUB check for victory")
  • {
  • event
  • {
  • Subroutine;
  • check_for_victory;
  • }
  • actions
  • {
  • If(Global.row == 1);
  • Global.string_horizontal = Custom String("{0}{1}{2}", Custom String("{0}{1}{2}", Global.row1[0], Global.row1[1], Global.row1[2]),
  • Custom String("{0}{1}{2}", Global.row1[3], Global.row1[4], Global.row1[5]), Global.row1[6]);
  • Else If(Global.row == 2);
  • Global.string_horizontal = Custom String("{0}{1}{2}", Custom String("{0}{1}{2}", Global.row2[0], Global.row2[1], Global.row2[2]),
  • Custom String("{0}{1}{2}", Global.row2[3], Global.row2[4], Global.row2[5]), Global.row2[6]);
  • Else If(Global.row == 3);
  • Global.string_horizontal = Custom String("{0}{1}{2}", Custom String("{0}{1}{2}", Global.row3[0], Global.row3[1], Global.row3[2]),
  • Custom String("{0}{1}{2}", Global.row3[3], Global.row3[4], Global.row3[5]), Global.row3[6]);
  • Else If(Global.row == 4);
  • Global.string_horizontal = Custom String("{0}{1}{2}", Custom String("{0}{1}{2}", Global.row4[0], Global.row4[1], Global.row4[2]),
  • Custom String("{0}{1}{2}", Global.row4[3], Global.row4[4], Global.row4[5]), Global.row4[6]);
  • Else If(Global.row == 5);
  • Global.string_horizontal = Custom String("{0}{1}{2}", Custom String("{0}{1}{2}", Global.row5[0], Global.row5[1], Global.row5[2]),
  • Custom String("{0}{1}{2}", Global.row5[3], Global.row5[4], Global.row5[5]), Global.row5[6]);
  • Else If(Global.row == 6);
  • Global.string_horizontal = Custom String("{0}{1}{2}", Custom String("{0}{1}{2}", Global.row6[0], Global.row6[1], Global.row6[2]),
  • Custom String("{0}{1}{2}", Global.row6[3], Global.row6[4], Global.row6[5]), Global.row6[6]);
  • End;
  • Global.string_vertical = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.row1[Global.column], Global.row2[Global.column],
  • Global.row3[Global.column]), Custom String("{0}{1}{2}", Global.row4[Global.column], Global.row5[Global.column],
  • Global.row6[Global.column]));
  • Global.string_everything = Array();
  • For Global Variable(iterator, 0, Count Of(Global.row1), 1);
  • Modify Global Variable(string_everything, Append To Array, Global.row1[Global.iterator]);
  • End;
  • For Global Variable(iterator, 0, Count Of(Global.row1), 1);
  • Modify Global Variable(string_everything, Append To Array, Global.row2[Global.iterator]);
  • End;
  • For Global Variable(iterator, 0, Count Of(Global.row1), 1);
  • Modify Global Variable(string_everything, Append To Array, Global.row3[Global.iterator]);
  • End;
  • For Global Variable(iterator, 0, Count Of(Global.row1), 1);
  • Modify Global Variable(string_everything, Append To Array, Global.row4[Global.iterator]);
  • End;
  • For Global Variable(iterator, 0, Count Of(Global.row1), 1);
  • Modify Global Variable(string_everything, Append To Array, Global.row5[Global.iterator]);
  • End;
  • For Global Variable(iterator, 0, Count Of(Global.row1), 1);
  • Modify Global Variable(string_everything, Append To Array, Global.row6[Global.iterator]);
  • End;
  • If(Global.row == 1);
  • If(Global.column == 0);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[0],
  • Global.string_everything[8], Global.string_everything[16]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[32], Global.string_everything[40]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 1);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[1],
  • Global.string_everything[9], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[25],
  • Global.string_everything[33], Global.string_everything[41]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 2);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[2],
  • Global.string_everything[10], Global.string_everything[18]), Custom String("{0}{1}", Global.string_everything[26],
  • Global.string_everything[34]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 3);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[11], Global.string_everything[19]), Custom String("{0}", Global.string_everything[27]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[9], Global.string_everything[15]), Custom String("{0}", Global.string_everything[21]));
  • Else If(Global.column == 4);
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[4],
  • Global.string_everything[10], Global.string_everything[16]), Custom String("{0}{1}", Global.string_everything[22],
  • Global.string_everything[28]));
  • Global.string_diagonal = Custom String("no");
  • Else If(Global.column == 5);
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[5],
  • Global.string_everything[11], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[23],
  • Global.string_everything[29], Global.string_everything[35]));
  • Global.string_diagonal = Custom String("no");
  • Else If(Global.column == 6);
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[6],
  • Global.string_everything[12], Global.string_everything[18]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[30], Global.string_everything[36]));
  • Global.string_diagonal = Custom String("no");
  • End;
  • Else If(Global.row == 2);
  • If(Global.column == 0);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[7],
  • Global.string_everything[15], Global.string_everything[23]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[39]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 1);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[0],
  • Global.string_everything[8], Global.string_everything[16]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[32], Global.string_everything[40]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 2);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[1],
  • Global.string_everything[9], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[25],
  • Global.string_everything[33], Global.string_everything[41]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[9], Global.string_everything[15]), Custom String("{0}", Global.string_everything[21]));
  • Else If(Global.column == 3);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[2],
  • Global.string_everything[10], Global.string_everything[18]), Custom String("{0}{1}", Global.string_everything[26],
  • Global.string_everything[34]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[4],
  • Global.string_everything[10], Global.string_everything[16]), Custom String("{0}{1}", Global.string_everything[22],
  • Global.string_everything[28]));
  • Else If(Global.column == 4);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[11], Global.string_everything[19]), Custom String("{0}", Global.string_everything[27]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[5],
  • Global.string_everything[11], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[23],
  • Global.string_everything[29], Global.string_everything[35]));
  • Else If(Global.column == 5);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[6],
  • Global.string_everything[12], Global.string_everything[18]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[30], Global.string_everything[36]));
  • Else If(Global.column == 6);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[13],
  • Global.string_everything[19], Global.string_everything[25]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[37]));
  • End;
  • Else If(Global.row == 3);
  • If(Global.column == 0);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[14],
  • Global.string_everything[22], Global.string_everything[30]), Custom String("{0}", Global.string_everything[38]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 1);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[7],
  • Global.string_everything[15], Global.string_everything[23]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[39]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[9], Global.string_everything[15]), Custom String("{0}", Global.string_everything[21]));
  • Else If(Global.column == 2);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[0],
  • Global.string_everything[8], Global.string_everything[16]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[32], Global.string_everything[40]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[4],
  • Global.string_everything[10], Global.string_everything[16]), Custom String("{0}{1}", Global.string_everything[22],
  • Global.string_everything[28]));
  • Else If(Global.column == 3);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[1],
  • Global.string_everything[9], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[25],
  • Global.string_everything[33], Global.string_everything[41]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[5],
  • Global.string_everything[11], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[23],
  • Global.string_everything[29], Global.string_everything[35]));
  • Else If(Global.column == 4);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[2],
  • Global.string_everything[10], Global.string_everything[18]), Custom String("{0}{1}", Global.string_everything[26],
  • Global.string_everything[34]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[6],
  • Global.string_everything[12], Global.string_everything[18]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[30], Global.string_everything[36]));
  • Else If(Global.column == 5);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[11], Global.string_everything[19]), Custom String("{0}", Global.string_everything[27]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[13],
  • Global.string_everything[19], Global.string_everything[25]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[37]));
  • Else If(Global.column == 6);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[20],
  • Global.string_everything[26], Global.string_everything[32]), Custom String("{0}", Global.string_everything[38]));
  • End;
  • Else If(Global.row == 4);
  • If(Global.column == 0);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 1);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[14],
  • Global.string_everything[22], Global.string_everything[30]), Custom String("{0}", Global.string_everything[38]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[4],
  • Global.string_everything[10], Global.string_everything[16]), Custom String("{0}{1}", Global.string_everything[22],
  • Global.string_everything[28]));
  • Else If(Global.column == 2);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[7],
  • Global.string_everything[15], Global.string_everything[23]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[39]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[5],
  • Global.string_everything[11], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[23],
  • Global.string_everything[29], Global.string_everything[35]));
  • Else If(Global.column == 3);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[0],
  • Global.string_everything[8], Global.string_everything[16]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[32], Global.string_everything[40]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[6],
  • Global.string_everything[12], Global.string_everything[18]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[30], Global.string_everything[36]));
  • Else If(Global.column == 4);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[1],
  • Global.string_everything[9], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[25],
  • Global.string_everything[33], Global.string_everything[41]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[13],
  • Global.string_everything[19], Global.string_everything[25]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[37]));
  • Else If(Global.column == 5);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[2],
  • Global.string_everything[10], Global.string_everything[18]), Custom String("{0}{1}", Global.string_everything[26],
  • Global.string_everything[34]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[20],
  • Global.string_everything[26], Global.string_everything[32]), Custom String("{0}", Global.string_everything[38]));
  • Else If(Global.column == 6);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[3],
  • Global.string_everything[11], Global.string_everything[19]), Custom String("{0}", Global.string_everything[27]));
  • Global.string_other_diagonal = Custom String("no");
  • End;
  • Else If(Global.row == 5);
  • If(Global.column == 0);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[4],
  • Global.string_everything[10], Global.string_everything[16]), Custom String("{0}{1}", Global.string_everything[22],
  • Global.string_everything[28]));
  • Else If(Global.column == 1);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[5],
  • Global.string_everything[11], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[23],
  • Global.string_everything[29], Global.string_everything[35]));
  • Else If(Global.column == 2);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[14],
  • Global.string_everything[22], Global.string_everything[30]), Custom String("{0}", Global.string_everything[38]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[6],
  • Global.string_everything[12], Global.string_everything[18]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[30], Global.string_everything[36]));
  • Else If(Global.column == 3);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[7],
  • Global.string_everything[15], Global.string_everything[23]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[39]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[13],
  • Global.string_everything[19], Global.string_everything[25]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[37]));
  • Else If(Global.column == 4);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[0],
  • Global.string_everything[8], Global.string_everything[16]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[32], Global.string_everything[40]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[20],
  • Global.string_everything[26], Global.string_everything[32]), Custom String("{0}", Global.string_everything[38]));
  • Else If(Global.column == 5);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[1],
  • Global.string_everything[9], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[25],
  • Global.string_everything[33], Global.string_everything[41]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 6);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[2],
  • Global.string_everything[10], Global.string_everything[18]), Custom String("{0}{1}", Global.string_everything[26],
  • Global.string_everything[34]));
  • Global.string_other_diagonal = Custom String("no");
  • End;
  • Else If(Global.row == 6);
  • If(Global.column == 0);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[5],
  • Global.string_everything[11], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[23],
  • Global.string_everything[29], Global.string_everything[35]));
  • Else If(Global.column == 1);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[6],
  • Global.string_everything[12], Global.string_everything[18]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[30], Global.string_everything[36]));
  • Else If(Global.column == 2);
  • Global.string_diagonal = Custom String("no");
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[13],
  • Global.string_everything[19], Global.string_everything[25]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[37]));
  • Else If(Global.column == 3);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[14],
  • Global.string_everything[22], Global.string_everything[30]), Custom String("{0}", Global.string_everything[38]));
  • Global.string_other_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[20],
  • Global.string_everything[26], Global.string_everything[32]), Custom String("{0}", Global.string_everything[38]));
  • Else If(Global.column == 4);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[7],
  • Global.string_everything[15], Global.string_everything[23]), Custom String("{0}{1}", Global.string_everything[31],
  • Global.string_everything[39]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 5);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[0],
  • Global.string_everything[8], Global.string_everything[16]), Custom String("{0}{1}{2}", Global.string_everything[24],
  • Global.string_everything[32], Global.string_everything[40]));
  • Global.string_other_diagonal = Custom String("no");
  • Else If(Global.column == 6);
  • Global.string_diagonal = Custom String("{0}{1}", Custom String("{0}{1}{2}", Global.string_everything[1],
  • Global.string_everything[9], Global.string_everything[17]), Custom String("{0}{1}{2}", Global.string_everything[25],
  • Global.string_everything[33], Global.string_everything[41]));
  • Global.string_other_diagonal = Custom String("no");
  • End;
  • End;
  • If(String Contains(Global.string_horizontal, Custom String("Sky BlueSky BlueSky BlueSky Blue")) || String Contains(
  • Global.string_vertical, Custom String("Sky BlueSky BlueSky BlueSky Blue")) || String Contains(Global.string_diagonal,
  • Custom String("Sky BlueSky BlueSky BlueSky Blue")) || String Contains(Global.string_other_diagonal, Custom String(
  • "Sky BlueSky BlueSky BlueSky Blue")) || String Contains(Global.string_horizontal, Custom String("RoseRoseRoseRose"))
  • || String Contains(Global.string_vertical, Custom String("RoseRoseRoseRose")) || String Contains(Global.string_diagonal,
  • Custom String("RoseRoseRoseRose")) || String Contains(Global.string_other_diagonal, Custom String("RoseRoseRoseRose"))
  • == True);
  • Call Subroutine(victory);
  • disabled Small Message(All Players(All Teams), Custom String("doot"));
  • Global.game_state = 0;
  • End;
  • For Global Variable(iterator, 0, 7, 1);
  • If(Global.turn == 1);
  • Global.arrows_row_color[Global.iterator] = Color(Rose);
  • Else If(Global.turn == 2);
  • Global.arrows_row_color[Global.iterator] = Color(Sky Blue);
  • End;
  • End;
  • If(Global.turn == 1);
  • Global.turn_orb_color = Color(Rose);
  • Global.turn = 2;
  • Else If(Global.turn == 2);
  • Global.turn_orb_color = Color(Rose);
  • Global.turn = 1;
  • End;
  • }
  • }
  • rule("SUB victory")
  • {
  • event
  • {
  • Subroutine;
  • victory;
  • }
  • actions
  • {
  • Global.game_state = 2;
  • If(Global.turn == 1);
  • Big Message(All Players(All Teams), Custom String("{0} wins!", Players In Slot(0, Team 1)));
  • Play Effect(All Players(All Teams), Good Explosion, Color(Sky Blue), Global.board_position, 10);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Sky Blue), Global.board_position, 10);
  • Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), Global.board_position, 50);
  • Else If(Global.turn == 2);
  • Big Message(All Players(All Teams), Custom String("{0} wins!", Players In Slot(1, Team 1)));
  • Play Effect(All Players(All Teams), Good Explosion, Color(Rose), Global.board_position, 10);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Rose), Global.board_position, 10);
  • Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), Global.board_position, 50);
  • End;
  • Wait(5, Ignore Condition);
  • }
  • }
  • rule("SUB reset")
  • {
  • event
  • {
  • Subroutine;
  • reset;
  • }
  • actions
  • {
  • Global.arrows_row_color = Array();
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Modify Global Variable(arrows_row_color, Append To Array, Color(Sky Blue));
  • Global.row1 = Array();
  • Global.row2 = Array();
  • Global.row3 = Array();
  • Global.row4 = Array();
  • Global.row5 = Array();
  • Global.row6 = Array();
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row1, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row2, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row3, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row4, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row5, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Modify Global Variable(row6, Append To Array, Color(White));
  • Global.turn = 1;
  • Global.game_state = 0;
  • Global.turn_orb_color = Color(Sky Blue);
  • }
  • }
  • disabled rule("debug tell position")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Custom String("pos: {0}", Position Of(Event Player)), Null, Null, Right, 0, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • }
  • }
Join the Workshop.codes Discord