Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • global:
  • 0: MAXHP_KAIJU
  • 1: MAXHP_CIVILIAN
  • 2: MAXHP_VEHICLE
  • 2: MAXHP_MECH
  • 3: DAMAGE_KAIJU
  • 4: DAMAGE_CIVILIAN
  • 5: DAMAGE_VEHICLE
  • 5: DAMAGE_MECH
  • 6: MOVESPEED_KAIJU
  • 7: MOVESPEED_CIVILIAN
  • 8: MOVESPEED_VEHICLE
  • 8: MOVESPEED_MECH
  • 9: AIMSPEED_KAIJU
  • 10: AIMSPEED_CIVILIAN
  • 11: AIMSPEED_VEHICLE
  • 11: AIMSPEED_MECH
  • 12: JUMP_KAIJU
  • 13: JUMP_CIVILIAN
  • 14: JUMP_VEHICLE
  • 14: JUMP_MECH
  • 15: GRAVITY_KAIJU
  • 16: GRAVITY_CIVILIAN
  • 17: GRAVITY_VEHICLE
  • 17: GRAVITY_MECH
  • 18: SCALE_KAIJU
  • 19: SCALE_CIVILIAN
  • 20: SCALE_VEHICLE
  • 20: SCALE_MECH
  • 21: VOICE_KAIJU
  • 22: VOICE_CIVILIAN
  • 23: VOICE_VEHICLE
  • 23: VOICE_MECH
  • 24: LIST_KAIJU
  • 25: LIST_CIVILIAN
  • 26: LIST_VEHICLE
  • 26: LIST_MECH
  • 27: TOTAL_KAIJU
  • 28: KAIJU_HEALTH_POOL_RESERVE
  • 29: CINEMATIC_OPENING
  • 30: GAME_STATE
  • 31: II
  • 32: JJ
  • 33: NUMBER_CITY_BLOCKS
  • 34: TOTAL_BUILDINGS
  • 35: BUILDING_HITS_PER_SECTION
  • 36: WIDTH_MAP
  • 37: WIDTH_ROADS
  • 38: WIDTH_BUILDINGS
  • 39: LOCATION_KAIJU_SPAWN
  • 40: LOCATION_BUILDINGS
  • 41: LOCATION_MONORAIL
  • 42: HEALTH_BUILDINGS
  • 43: DISTANCE_KAB
  • 44: SPREAD_KAB
  • 45: BASE_KAB
  • 46: DURATION_KAB
  • 47: TYPE_POWERUP
  • 48: LOCATION_POWERUP
  • 49: EFFECT_ROADS
  • 50: EFFECT_BUILDING_ONE
  • 51: EFFECT_BUILDING_TWO
  • 52: EFFECT_BUILDING_THREE
  • 53: EFFECT_RUBBLE
  • 54: EFFECT_MONORAIL
  • 55: EFFECT_POWERUP
  • 56: REMAINING_EFFECTS
  • 57: LIST_REPLACEMENT_KAIJU
  • 58: HP_KAIJU
  • player:
  • 0: HERO_PLAYER
  • 1: SCALE_PLAYER
  • 2: VOICE_PLAYER
  • 3: TYPE_VEHICLE
  • 3: TYPE_MECH
  • 4: CAMERA_THIRD_PERSON
  • 5: CLOSEST_BUILDING
  • 6: LIST_STOMP
  • 7: EFFECT_ATOMIC_BEAM
  • 8: II
  • 9: HEALTH_POOLS
  • 10: COORDINATE_MONORAIL
  • 11: HEALTH_PLAYER
  • }
  • subroutines
  • {
  • 0: GAME_SETUP
  • 1: REMOVE_ALL_EFFECTS
  • 2: BUILD_BUILDINGS
  • 3: BUILD_ROADS
  • 4: BUILD_MONORAIL
  • 5: SPAWN_POINTS
  • 6: OPENING_CINEMATIC
  • 7: RESET_HEALTH_POOLS
  • 8: DAMAGE_BUILDING
  • 9: VEHICLE_POWERUP
  • 9: MECH_POWERUP
  • 10: START_KAIJU_ATOMIC_BEAM
  • 11: END_KAIJU_ATOMIC_BEAM
  • }
  • rule("OVERZILLA | V.1.0.0 | CODE: 2FCWZ | MADE BY GECKTENDO#1446")
  • rule("OVERZILLA | V.1.1.0 | CODE: SJ68R | MADE BY GECKTENDO#1446")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • disabled Disable Inspector Recording;
  • }
  • }
  • disabled rule("VARIABLE AND LOBBY SETUP")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("DISABLE STANDARD DEATHMATCH SETTINGS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Set Match Time(0);
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Disable Death Spectate All Players(All Players(All Teams));
  • Disable Built-In Game Mode Announcer;
  • }
  • }
  • rule("GLOBAL VARIABLE SETUP")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "KAIJU MAX HEALTH POOL | DEFAULT 1.000"
  • Global.MAXHP_KAIJU = 1;
  • "KAIJU MAX HEALTH POOL | DEFAULT 10.000"
  • Global.MAXHP_KAIJU = 10;
  • "CIVILIAN MAX HEALTH POOL | DEFAULT 1.000"
  • Global.MAXHP_CIVILIAN = 1;
  • "VEHICLE MAX HEALTH POOL | DEFAULT 1.000"
  • Global.MAXHP_VEHICLE = 1;
  • "MECH MAX HEALTH POOL | DEFAULT 1.000"
  • Global.MAXHP_MECH = 1;
  • "KAIJU DAMAGE DEALT | DEFAULT 10000.000"
  • Global.DAMAGE_KAIJU = 10000;
  • "CIVILIAN DAMAGE DEALT | DEFAULT 100.000"
  • Global.DAMAGE_CIVILIAN = 100;
  • "VEHICLE DAMAGE DEALT | DEFAULT CIVILIAN DAMAGE * 5"
  • Global.DAMAGE_VEHICLE = Global.DAMAGE_CIVILIAN * 5;
  • "MECH DAMAGE DEALT | DEFAULT CIVILIAN DAMAGE * 5"
  • Global.DAMAGE_MECH = Global.DAMAGE_CIVILIAN * 3;
  • "KAIJU BASE SPEED | DEFAULT 100.000"
  • Global.MOVESPEED_KAIJU = 100;
  • "CIVILIAN BASE SPEED | DEFAULT 100.000"
  • Global.MOVESPEED_CIVILIAN = 100;
  • "VEHICLE BASE SPEED | DEFAULT 100.000"
  • Global.MOVESPEED_VEHICLE = 100;
  • "MECH BASE SPEED | DEFAULT 100.000"
  • Global.MOVESPEED_MECH = 100;
  • "KAIJU TURNING SPEED | DEFAULT 10.00"
  • Global.AIMSPEED_KAIJU = 10;
  • "CIVILIAN TURNING SPEED | DEFAULT 100.00"
  • Global.AIMSPEED_CIVILIAN = 100;
  • "VEHICLE TURNING SPEED | DEFAULT 100.00"
  • Global.AIMSPEED_VEHICLE = 100;
  • "MECH TURNING SPEED | DEFAULT 100.00"
  • Global.AIMSPEED_MECH = 100;
  • "KAIJU JUMP POWER | DEFAULT 100.00"
  • Global.JUMP_KAIJU = 100;
  • "CIVILIAN JUMP POWER | DEFAULT 100.00"
  • Global.JUMP_CIVILIAN = 100;
  • "VEHICLE JUMP POWER | DEFAULT 100.00"
  • Global.JUMP_VEHICLE = 100;
  • "MECH JUMP POWER | DEFAULT 100.00"
  • Global.JUMP_MECH = 100;
  • "KAIJU GRAVITY | DEFAULT 10.000"
  • Global.GRAVITY_KAIJU = 10;
  • Global.GRAVITY_KAIJU = 25;
  • "CIVILIAN GRAVITY | DEFAULT 100.000"
  • Global.GRAVITY_CIVILIAN = 100;
  • "VEHICLE GRAVITY | DEFAULT 100.000"
  • Global.GRAVITY_VEHICLE = 100;
  • "MECH GRAVITY | DEFAULT 100.000"
  • Global.GRAVITY_MECH = 100;
  • "KAIJU PLAYER SCALE | DEFAULT 20.000"
  • Global.SCALE_KAIJU = 20;
  • "CIVILIAN PLAYER SCALE | DEFAULT 0.250"
  • Global.SCALE_CIVILIAN = 0.250;
  • "VEHICLE SCALE | DEFAULT 2.000"
  • Global.SCALE_VEHICLE = 2;
  • "MECH SCALE | DEFAULT 2.000"
  • Global.SCALE_MECH = 2;
  • "KAIJU VOICE PITCH | DEFAULT 0.500"
  • Global.VOICE_KAIJU = 0.500;
  • "CIVILIAN VOICE PITCH | DEFAULT 1.500"
  • Global.VOICE_CIVILIAN = 1.500;
  • "VEHICLE VOICE PITCH | DEFAULT 1.000"
  • Global.VOICE_VEHICLE = 1;
  • "MECH VOICE PITCH | DEFAULT 1.000"
  • Global.VOICE_MECH = 1;
  • "LIST OF PLAYERS ON TEAM KAIJU | DEFAULT EMPTY ARRAY"
  • Global.LIST_KAIJU = Empty Array;
  • "LIST OF PLAYERS ON TEAM CIVILIAN | DEFAULT EMPTY ARRAY"
  • Global.LIST_CIVILIAN = Empty Array;
  • "LIST OF CIVILIANS IN VEHICLE | DEFAULT EMPTY ARRAY"
  • Global.LIST_VEHICLE = Empty Array;
  • "LIST OF CIVILIANS IN MECH | DEFAULT EMPTY ARRAY"
  • Global.LIST_MECH = Empty Array;
  • "TOTAL NUMBER OF KAIJU IN GAME | DEFAULT 2.000"
  • Global.TOTAL_KAIJU = 2;
  • "COMBINED HEALTH POOL FOR ALL KAIJU | DEFAULT 0.000 (X 10^3)"
  • Global.KAIJU_HEALTH_POOL_RESERVE = 0;
  • "TOGGLE CINEMATIC OPENING | DEFAULT TRUE"
  • Global.CINEMATIC_OPENING = True;
  • "GAME STATE SWITCH | [0]: LOBBY [1]: INTRO [2]: GAME"
  • Global.GAME_STATE = 0;
  • "PRIMARY COUNTER USED FOR LOOPS | DEFAULT 0.000"
  • Global.II = 0;
  • "SECONDARY COUNTER USED FOR LOOPS | DEFAULT 0.000"
  • Global.JJ = 0;
  • "NUMBER OF ROWS / COLUMNS IN CITY GRID | DEFAULT 7.000"
  • Global.NUMBER_CITY_BLOCKS = 7;
  • "TOTAL BUILDINGS IN GAME | DEFAULT PRECALCULATED"
  • Global.TOTAL_BUILDINGS = Global.NUMBER_CITY_BLOCKS ^ 2 - 4;
  • "NUMBER OF HITS A SECTION OF BUILDING CAN TAKE | DEFAULT TOTAL KAIJU * 2"
  • Global.BUILDING_HITS_PER_SECTION = Global.TOTAL_KAIJU * 2;
  • "UNIT LENGTH OF EXPANSE MAP | DEFAULT 768.000"
  • Global.WIDTH_MAP = 768;
  • "ROAD WIDTH | DEFAULT 25.000"
  • Global.WIDTH_ROADS = 25;
  • "DIAMETER OF BUILDINGS | DEFAULT PRECALCULATED"
  • Global.WIDTH_BUILDINGS = (Global.WIDTH_MAP - Global.WIDTH_ROADS * (Global.NUMBER_CITY_BLOCKS - 1)) / Global.NUMBER_CITY_BLOCKS;
  • "KAIJU SPAWN COORDINATE ARRAY | DEFAULT EMPTY ARRAY"
  • Global.LOCATION_KAIJU_SPAWN = Empty Array;
  • "BUILDING COORDINATE ARRAY | DEFAULT EMPTY ARRAY"
  • Global.LOCATION_BUILDINGS = Empty Array;
  • "MONORAIL STATION COORDINATE ARRAY | DEFAULT EMPTY ARRAY"
  • Global.LOCATION_MONORAIL = 5;
  • "BUILDING HEALTH ARRAY | DEFAULT EMPTY ARRAY"
  • Global.HEALTH_BUILDINGS = Empty Array;
  • "RANGE OF KAIJU ATOMIC BEAM | DEFAULT 0.500"
  • Global.DISTANCE_KAB = 0.500;
  • "ANGLE SPREAD OF KAIJU ATOMIC BEAM | DEFAULT 0.150"
  • Global.SPREAD_KAB = 0.150;
  • "MINIMUM SIZE OF KAIJU ATOMIC BEAM | DEFAULT 0.000"
  • Global.BASE_KAB = 0;
  • "DURATION OF KAIJU ATOMIC BEAM | DEFAULT 10.000"
  • Global.DURATION_KAB = 10;
  • "TYPE OF POWERUP THAT SPAWNED | DEFAULT EMPTY ARRAY"
  • Global.TYPE_POWERUP = Empty Array;
  • "COORDINATE OF CIVILIAN POWERUP | DEFAULT EMPTY ARRAY"
  • Global.LOCATION_POWERUP = Empty Array;
  • "ROAD EFFECT ID ARRAY | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_ROADS = Empty Array;
  • "BUILDING EFFECT ID ARRAY | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_BUILDING_ONE = Empty Array;
  • "BUILDING EFFECT ID ARRAY | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_BUILDING_TWO = Empty Array;
  • "BUILDING EFFECT ID ARRAY | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_BUILDING_THREE = Empty Array;
  • "RUBBLE EFFECT ID ARRAY | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_RUBBLE = Empty Array;
  • "MONORAIL EFFECT ID ARRAY | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_MONORAIL = Empty Array;
  • "CIVILIAN POWERUP EFFECT | DEFAULT EMPTY ARRAY"
  • Global.EFFECT_POWERUP = Empty Array;
  • "NUMBER OF EFFECTS REMAINING FOR PLACING | DEFAULT 128.000"
  • Global.REMAINING_EFFECTS = 128;
  • "HEALTH TRACKER FOR KAIJU | DEFAULT 0.000"
  • Global.HP_KAIJU = Array(0, 0, 0, 0);
  • "PLAYER QUEUED UP FOR REPLACEMENT KAIJU | DEFAULT EMPTY ARRAY"
  • Global.LIST_REPLACEMENT_KAIJU = Empty Array;
  • }
  • }
  • rule("PLAYER VARIABLE SETUP")
  • {
  • event
  • {
  • Player Joined Match;
  • All;
  • All;
  • }
  • actions
  • {
  • "HERO OF EVENT PLAYER | DEFAULT EMPTY ARRAY"
  • Event Player.HERO_PLAYER = Empty Array;
  • "CURRENT PLAYER SCALE | DEFAULT 1.000"
  • Event Player.SCALE_PLAYER = 1;
  • "VOICE PITCH OF EVENT PLAYER | DEFAULT 1.000"
  • Event Player.VOICE_PLAYER = 1;
  • "TYPE OF VEHICLE CURRENTLY PILOTED | DEFAULT EMPTY ARRAY"
  • Event Player.TYPE_VEHICLE = Empty Array;
  • "TYPE OF MECH CURRENTLY PILOTED | DEFAULT EMPTY ARRAY"
  • Event Player.TYPE_MECH = Empty Array;
  • "THIRD PERSON CAMERA TOGGLE | DEFAULT FALSE"
  • Event Player.CAMERA_THIRD_PERSON = False;
  • "BUILDING CLOSEST TO KAIJU | DEFAULT EMPTY ARRAY"
  • Event Player.CLOSEST_BUILDING = Empty Array;
  • "LIST OF PLAYERS WITHIN KAIJU GIGA STOMP RANGE | DEFAULT EMPTY ARRAY"
  • Event Player.LIST_STOMP = Empty Array;
  • "KAIJU ATOMIC BEAM EFFECT ARRAY | DEFAULT EMPTY ARRAY"
  • Event Player.EFFECT_ATOMIC_BEAM = Array(Empty Array, Empty Array, Empty Array, Empty Array, Empty Array);
  • "PRIMARY COUNTER OF EVENT PLAYER | DEFAULT 0.000"
  • Event Player.II = 0;
  • "HEALTH POOL OF EVENT PLAYER | DEFAULT EMPTY ARRAY"
  • Event Player.HEALTH_POOLS = Empty Array;
  • "POSITION OF PLAYER WHEN ON MONORAIL | DEFAULT EMPTY ARRAY"
  • Event Player.COORDINATE_MONORAIL = Empty Array;
  • "AUTO SCALE PLAYER SIZE"
  • Start Scaling Player(Event Player, Event Player.SCALE_PLAYER, True);
  • "AUTO SCALE PLAYER VOICE LINE PITCH"
  • Start Modifying Hero Voice Lines(Event Player, Event Player.VOICE_PLAYER, True);
  • "DISABLE RESPAWNING"
  • Disable Built-In Game Mode Respawning(Event Player);
  • "ASSIGN TEAM"
  • If(Global.GAME_STATE == 0);
  • If(Event Player == Host Player);
  • Create Icon(All Players(All Teams), Host Player, Halo, Visible To and Position, Color(White), True);
  • End;
  • Modify Global Variable(LIST_KAIJU, Append To Array, Event Player);
  • Event Player.SCALE_PLAYER = 20;
  • Set Move Speed(Event Player, 20 * 100);
  • Set Jump Vertical Speed(Event Player, 20 * 100);
  • Set Gravity(Event Player, 20 * 100);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Else;
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • End;
  • Set Projectile Speed(Event Player, 500);
  • }
  • }
  • disabled rule("PREGAME SETUP")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("PREGAME BUILDING LOCATIONS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • }
  • actions
  • {
  • Global.LOCATION_BUILDINGS[0] = Vector(0, 0, 0);
  • Global.LOCATION_BUILDINGS[1] = Vector(340, 0, -150);
  • Global.LOCATION_BUILDINGS[2] = Vector(340, 0, -50);
  • Global.LOCATION_BUILDINGS[3] = Vector(340, 0, 50);
  • Global.LOCATION_BUILDINGS[4] = Vector(340, 0, 150);
  • Global.LOCATION_BUILDINGS[5] = Vector(250, 0, 340);
  • Global.LOCATION_BUILDINGS[6] = Vector(150, 0, 340);
  • Global.LOCATION_BUILDINGS[7] = Vector(50, 0, 340);
  • Global.LOCATION_BUILDINGS[8] = Vector(-50, 0, 340);
  • Global.LOCATION_BUILDINGS[9] = Vector(-150, 0, 340);
  • Global.LOCATION_BUILDINGS[10] = Vector(-250, 0, 340);
  • Global.LOCATION_BUILDINGS[11] = Vector(-340, 0, 250);
  • Global.LOCATION_BUILDINGS[12] = Vector(-340, 0, 150);
  • Global.LOCATION_BUILDINGS[13] = Vector(-340, 0, 50);
  • Global.LOCATION_BUILDINGS[14] = Vector(-340, 0, -50);
  • Global.LOCATION_BUILDINGS[15] = Vector(-340, 0, -150);
  • Global.LOCATION_BUILDINGS[16] = Vector(-340, 0, -250);
  • Global.LOCATION_BUILDINGS[17] = Vector(-50, 0, -340);
  • Global.LOCATION_BUILDINGS[18] = Vector(50, 0, -340);
  • }
  • }
  • rule("PREGAME WORLD TEXT & EFFECTS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • }
  • actions
  • {
  • Create In-World Text(All Players(All Teams), Custom String("{0}VERZILLA", Icon String(Radioactive)), Vector(0, 100, 0), 4,
  • Do Not Clip, Visible To, Turquoise, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("VERSION 1.0.0 | CODE: 2FCWZ | MADE BY - GECKTENDO#1446"), Vector(0, 85,
  • 0), 1.500, Do Not Clip, Visible To, White, Default Visibility);
  • Do Not Clip, Visible To, Color(Turquoise), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("VERSION 1.1.0 | CODE: SJ68R | MADE BY - GECKTENDO#1446"), Vector(0, 85,
  • 0), 1.500, Do Not Clip, Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("START GAME"), Global.LOCATION_BUILDINGS[0], 1.500, Do Not Clip,
  • Visible To, White, Default Visibility);
  • Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("NUMBER OF KAIJU IN GAME"), Vector(340, 30, 0), 2.500, Do Not Clip,
  • Visible To, Orange, Default Visibility);
  • Visible To, Color(Orange), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("ONE"), Global.LOCATION_BUILDINGS[1], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("TWO"), Global.LOCATION_BUILDINGS[2], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("THREE"), Global.LOCATION_BUILDINGS[3], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("FOUR"), Global.LOCATION_BUILDINGS[4], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("KAIJU HEALTH POOL RESERVE"), Vector(0, 30, 340), 2.500, Do Not Clip,
  • Visible To, Purple, Default Visibility);
  • Visible To, Color(Purple), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("1,000,000 HP"), Global.LOCATION_BUILDINGS[5], 1.500, Do Not Clip,
  • Visible To, White, Default Visibility);
  • Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("800,000 HP"), Global.LOCATION_BUILDINGS[6], 1.500, Do Not Clip,
  • Visible To, White, Default Visibility);
  • Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("600,000 HP"), Global.LOCATION_BUILDINGS[7], 1.500, Do Not Clip,
  • Visible To, White, Default Visibility);
  • Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("400,000 HP"), Global.LOCATION_BUILDINGS[8], 1.500, Do Not Clip,
  • Visible To, White, Default Visibility);
  • Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("200,000 HP"), Global.LOCATION_BUILDINGS[9], 1.500, Do Not Clip,
  • Visible To, White, Default Visibility);
  • Visible To, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("0 HP"), Global.LOCATION_BUILDINGS[10], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("BASE CIVILIAN DAMAGE"), Vector(-340, 30, 0), 2.500, Do Not Clip,
  • Visible To, Yellow, Default Visibility);
  • Visible To, Color(Yellow), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("75%"), Global.LOCATION_BUILDINGS[11], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("100%"), Global.LOCATION_BUILDINGS[12], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("125%"), Global.LOCATION_BUILDINGS[13], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("150%"), Global.LOCATION_BUILDINGS[14], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("175%"), Global.LOCATION_BUILDINGS[15], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("200%"), Global.LOCATION_BUILDINGS[16], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("PLAY OPENING CINEMATIC"), Vector(0, 30, -340), 2.500, Do Not Clip,
  • Visible To, Blue, Default Visibility);
  • Visible To, Color(Blue), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("YES"), Global.LOCATION_BUILDINGS[17], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("NO"), Global.LOCATION_BUILDINGS[18], 1.500, Do Not Clip, Visible To,
  • White, Default Visibility);
  • Color(White), Default Visibility);
  • "CREATE PILLAR EFFECTS"
  • While(Global.II < Count Of(Global.LOCATION_BUILDINGS));
  • If(Global.II == 2 || Global.II == 10 || Global.II == 12 || Global.II == 17);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[Global.II], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[Global.II], 40, Visible To);
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[Global.II], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[Global.II], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[Global.II] = Last Created Entity;
  • Global.II += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.II = 0;
  • }
  • }
  • rule("PREGAME SMALL MESSAGE")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • }
  • actions
  • {
  • Small Message(All Players(All Teams), Custom String("PLEASE WAIT WHILE HOST CHOOSES GAME SETTINGS"));
  • Wait(15, Ignore Condition);
  • Wait(15, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("HOST: SELECT NUMBER OF KAIJU PLAYERS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • Has Spawned(Host Player) == True;
  • Distance Between(Position Of(Host Player), Sorted Array(Array Slice(Global.LOCATION_BUILDINGS, 1, 4), Distance Between(Position Of(
  • Host Player), Current Array Element))[0]) <= 25;
  • }
  • actions
  • {
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[1]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[1]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[1], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[1], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[1], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[1], 40, Visible To);
  • Global.TOTAL_KAIJU = 1;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[1], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[1], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[1] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[2]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[2]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[2], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[2], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[2], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[2], 40, Visible To);
  • Global.TOTAL_KAIJU = 2;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[2], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[2], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[2] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[3]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[3]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[3], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[3], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[3], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[3], 40, Visible To);
  • Global.TOTAL_KAIJU = 3;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[3], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[3], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[3] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[4]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[4]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[4], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[4], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[4], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[4], 40, Visible To);
  • Global.TOTAL_KAIJU = 4;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[4], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[4], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[4] = Last Created Entity;
  • Global.BUILDING_HITS_PER_SECTION = 2 * Global.TOTAL_KAIJU;
  • }
  • }
  • rule("HOST: SELECT KAIJU HEALTH RESERVE AMOUNT")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • Has Spawned(Host Player) == True;
  • Distance Between(Position Of(Host Player), Sorted Array(Array Slice(Global.LOCATION_BUILDINGS, 5, 6), Distance Between(Position Of(
  • Host Player), Current Array Element))[0]) <= 25;
  • }
  • actions
  • {
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[5]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[5]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[5], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[5], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 1000;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[5], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[5], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 1000000;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[5], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[5], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[5] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[6]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[6]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[6], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[6], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 800;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[6], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[6], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 800000;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[6], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[6], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[6] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[7]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[7]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[7], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[7], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 600;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[7], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[7], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 600000;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[7], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[7], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[7] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[8]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[8]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[8], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[8], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 400;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[8], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[8], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 400000;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[8], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[8], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[8] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[9]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[9]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[9], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[9], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 200;
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[9], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[9], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 200000;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[9], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[9], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[9] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[10]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[10]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[10], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[10], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[10], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[10], 40, Visible To);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 0;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[10], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[10], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[10] = Last Created Entity;
  • }
  • }
  • rule("HOST: SELECT CIVILIAN BASE DAMAGE")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • Has Spawned(Host Player) == True;
  • Distance Between(Position Of(Host Player), Sorted Array(Array Slice(Global.LOCATION_BUILDINGS, 11, 6), Distance Between(
  • Position Of(Host Player), Current Array Element))[0]) <= 25;
  • }
  • actions
  • {
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[11]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[11]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[11], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[11], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[11], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[11], 40, Visible To);
  • Global.DAMAGE_CIVILIAN = 75;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[11], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[11], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[11] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[12]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[12]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[12], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[12], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[12], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[12], 40, Visible To);
  • Global.DAMAGE_CIVILIAN = 100;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[12], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[12], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[12] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[13]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[13]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[13], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[13], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[13], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[13], 40, Visible To);
  • Global.DAMAGE_CIVILIAN = 125;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[13], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[13], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[13] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[14]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[14]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[14], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[14], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[14], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[14], 40, Visible To);
  • Global.DAMAGE_CIVILIAN = 150;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[14], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[14], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[14] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[15]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[15]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[15], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[15], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[15], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[15], 40, Visible To);
  • Global.DAMAGE_CIVILIAN = 175;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[15], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[15], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[15] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[16]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[16]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[16], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[16], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[16], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[16], 40, Visible To);
  • Global.DAMAGE_CIVILIAN = 200;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[16], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[16], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[16] = Last Created Entity;
  • Global.DAMAGE_CIVILIAN = Global.DAMAGE_CIVILIAN * 5;
  • }
  • }
  • rule("HOST: PLAY OPENING CINEMATIC TOGGLE")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • Has Spawned(Host Player) == True;
  • Distance Between(Position Of(Host Player), Sorted Array(Array Slice(Global.LOCATION_BUILDINGS, 17, 2), Distance Between(
  • Position Of(Host Player), Current Array Element))[0]) <= 25;
  • }
  • actions
  • {
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[17]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[17]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[17], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[17], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[17], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[17], 40, Visible To);
  • Global.CINEMATIC_OPENING = True;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[17], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[17], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[17] = Last Created Entity;
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[18]);
  • If(Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[18]) <= 25);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[18], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[18], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[18], 100);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[18], 40, Visible To);
  • Global.CINEMATIC_OPENING = False;
  • Else;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[18], 40, Visible To);
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[18], 40, Visible To);
  • End;
  • Global.EFFECT_BUILDING_ONE[18] = Last Created Entity;
  • }
  • }
  • rule("HOST: START GAME")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 0;
  • Has Spawned(Host Player) == True;
  • Distance Between(Position Of(Host Player), Global.LOCATION_BUILDINGS[0]) <= 25;
  • }
  • actions
  • {
  • Wait(1, Abort When False);
  • If(Count Of(All Players(All Teams)) < Global.TOTAL_KAIJU + 1);
  • Wait(1, Abort When False);
  • Big Message(All Players(All Teams), Custom String("TOO FEW PLAYERS TO BEGIN MATCH"));
  • Wait(4, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("LOWER THE NUMBER OF KAIJU PLAYERS OR WAIT FOR MORE PLAYERS TO JOIN"));
  • Wait(4, Ignore Condition);
  • Else;
  • Wait(1, Abort When False);
  • Small Message(All Players(All Teams), Custom String("GAME STARTING IN: 5"));
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[0]);
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Yellow, Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Yellow), Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Yellow), Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Global.EFFECT_BUILDING_ONE[0] = Last Created Entity;
  • Wait(1, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("GAME STARTING IN: 4"));
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[0]);
  • Play Effect(All Players(All Teams), Ring Explosion, Lime Green, Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Lime Green, Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Lime Green), Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Lime Green), Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Global.EFFECT_BUILDING_ONE[0] = Last Created Entity;
  • Wait(1, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("GAME STARTING IN: 3"));
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[0]);
  • Play Effect(All Players(All Teams), Ring Explosion, Green, Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Green, Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Green), Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Green), Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Global.EFFECT_BUILDING_ONE[0] = Last Created Entity;
  • Wait(1, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("GAME STARTING IN: 2"));
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[0]);
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Turquoise), Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Global.EFFECT_BUILDING_ONE[0] = Last Created Entity;
  • Wait(1, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("GAME STARTING IN: 1"));
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[0]);
  • Play Effect(All Players(All Teams), Ring Explosion, Aqua, Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Aqua, Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(Aqua), Global.LOCATION_BUILDINGS[0], 500);
  • Create Effect(All Players(All Teams), Light Shaft, Color(Aqua), Global.LOCATION_BUILDINGS[0], 40, Visible To);
  • Global.EFFECT_BUILDING_ONE[0] = Last Created Entity;
  • Wait(1, Ignore Condition);
  • Clear Status(All Players(All Teams), Phased Out);
  • Enable Built-In Game Mode Announcer;
  • Call Subroutine(GAME_SETUP);
  • End;
  • }
  • }
  • disabled rule("KAIJU RULES")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("KAIJU SETUP")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE != 0;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • Stop Chasing Player Variable(Event Player, COORDINATE_MONORAIL);
  • Stop Forcing Player Position(Event Player);
  • "FORCE A CHARACTER SELECT SCREEN"
  • Set Player Allowed Heroes(Event Player, Empty Array);
  • disabled Set Player Allowed Heroes(Event Player, Empty Array);
  • disabled Wait(0.016, Ignore Condition);
  • Set Player Allowed Heroes(Event Player, Array(Hero(Bastion), Hero(Brigitte), Hero(D.Va), Hero(Doomfist), Hero(Orisa), Hero(
  • Reinhardt), Hero(Roadhog), Hero(Sigma), Hero(Winston), Hero(Wrecking Ball), Hero(Zarya)));
  • While(Hero Of(Event Player) == Empty Array);
  • Wait(1, Ignore Condition);
  • End;
  • Stop Camera(Event Player);
  • Set Max Health(Event Player, Global.MAXHP_KAIJU);
  • Call Subroutine(RESET_HEALTH_POOLS);
  • Set Damage Dealt(Event Player, Global.DAMAGE_KAIJU);
  • Set Move Speed(Event Player, Global.MOVESPEED_KAIJU);
  • Set Jump Vertical Speed(Event Player, Global.JUMP_KAIJU);
  • Set Aim Speed(Event Player, Global.AIMSPEED_KAIJU);
  • Set Gravity(Event Player, Global.GRAVITY_KAIJU);
  • Event Player.SCALE_PLAYER = Global.SCALE_KAIJU;
  • Event Player.VOICE_PLAYER = Global.VOICE_KAIJU;
  • Call Subroutine(RESET_HEALTH_POOLS);
  • If(Hero Of(Event Player) == Hero(Brigitte) || Hero Of(Event Player) == Hero(Reinhardt));
  • Set Primary Fire Enabled(Event Player, True);
  • Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Color(Orange), Default);
  • Set Ultimate Charge(Event Player, 0);
  • If(Global.KAIJU_HEALTH_POOL_RESERVE < 100);
  • Set Player Health(Event Player, Global.KAIJU_HEALTH_POOL_RESERVE * 1000);
  • Wait(0.016, Ignore Condition);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 0;
  • Else;
  • Set Primary Fire Enabled(Event Player, False);
  • Global.KAIJU_HEALTH_POOL_RESERVE -= 100;
  • End;
  • Set Secondary Fire Enabled(Event Player, False);
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, False);
  • Disallow Button(Event Player, Ultimate);
  • Set Melee Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, False);
  • Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Orange);
  • Set Ultimate Charge(Event Player, 0);
  • }
  • }
  • rule("KAIJU KILLS CIVILIANS AND VEHICLES THAT ARE TOO CLOSE")
  • rule("KAIJU KILLS CIVILIANS AND MECHS THAT ARE TOO CLOSE")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == False;
  • Distance Between(Position Of(Event Player) * Vector(1, 0, 1), Position Of(Sorted Array(Global.LIST_KAIJU, Distance Between(
  • Position Of(Event Player), Position Of(Current Array Element)))[0]) * Vector(1, 0, 1)) <= 20;
  • Y Component Of(Position Of(Event Player)) <= Y Component Of(Position Of(Sorted Array(Global.LIST_KAIJU, Distance Between(
  • Position Of(Event Player), Position Of(Current Array Element)))[0]) + Vector(0, Global.SCALE_KAIJU * 2.500, 0));
  • Y Component Of(Position Of(Event Player)) >= Y Component Of(Position Of(Sorted Array(Global.LIST_KAIJU, Distance Between(
  • Position Of(Event Player), Position Of(Current Array Element)))[0]) + Vector(0, 0, 0));
  • Distance Between(Position Of(Event Player) * Vector(1, 0, 1), Position Of(Sorted Array(Filtered Array(Global.LIST_KAIJU, Is Alive(
  • Current Array Element)), Distance Between(Position Of(Event Player), Position Of(Current Array Element)))[0]) * Vector(1, 0,
  • 1)) <= 20;
  • Y Component Of(Position Of(Event Player)) <= Y Component Of(Position Of(Sorted Array(Filtered Array(Global.LIST_KAIJU, Is Alive(
  • Current Array Element)), Distance Between(Position Of(Event Player), Position Of(Current Array Element)))[0]) + Vector(0,
  • Global.SCALE_KAIJU * 2.500, 0));
  • Y Component Of(Position Of(Event Player)) >= Y Component Of(Position Of(Sorted Array(Filtered Array(Global.LIST_KAIJU, Is Alive(
  • Current Array Element)), Distance Between(Position Of(Event Player), Position Of(Current Array Element)))[0]) + Vector(0, 0,
  • 0));
  • Has Status(Event Player, Stunned) == False;
  • }
  • actions
  • {
  • Clear Status(Event Player, Phased Out);
  • Kill(Event Player, Sorted Array(Global.LIST_KAIJU, Distance Between(Position Of(Event Player), Position Of(Current Array Element)))
  • [0]);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • }
  • }
  • rule("GIGA SHOCKWAVE")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Is In Air(Event Player) == True;
  • Is On Ground(Event Player) == True;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Global.MOVESPEED_KAIJU * 1.250);
  • While(Is In Air(Event Player));
  • Wait(0.100, Ignore Condition);
  • End;
  • "TO HELP DISINCENTIVISE CONSTANT JUMPING..."
  • Damage(Event Player, Null, 100);
  • Set Move Speed(Event Player, Global.MOVESPEED_KAIJU);
  • Play Effect(All Players(All Teams), Ring Explosion, White, Position Of(Event Player), 110);
  • Play Effect(All Players(All Teams), Explosion Sound, White, Position Of(Event Player), 500);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(White), Position Of(Event Player), 110);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Position Of(Event Player), 500);
  • Event Player.LIST_STOMP = Filtered Array(Global.LIST_CIVILIAN, Distance Between(Position Of(Event Player), Position Of(
  • Current Array Element)) <= 50);
  • Set Status(Event Player.LIST_STOMP, Event Player, Knocked Down, 5);
  • }
  • }
  • rule("KAIJU CHECK FOR CLOSEST BUILDING")
  • rule("KAIJU REFRESH PLAYER STATS")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Count Of(Global.LOCATION_BUILDINGS) > 0;
  • }
  • actions
  • {
  • Event Player.HEALTH_PLAYER = Health(Event Player);
  • Event Player.CLOSEST_BUILDING = Index Of Array Value(Global.LOCATION_BUILDINGS, Sorted Array(Global.LOCATION_BUILDINGS,
  • Distance Between(Position Of(Event Player), Current Array Element))[0]);
  • Wait(0.100, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • rule("PREVENT KAIJU FROM CLIPPING INTO BUILDINGS")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Distance Between(Position Of(Event Player) * Vector(1, 0, 1), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING] * Vector(1,
  • 0, 1)) <= Global.WIDTH_BUILDINGS / 2 + Event Player.SCALE_PLAYER / 2;
  • Count Of(Global.LOCATION_BUILDINGS) > 0;
  • }
  • actions
  • {
  • Wait(0.016, Abort When False);
  • Teleport(Event Player, Position Of(Event Player) + Normalize(Vector Towards(
  • Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING], Position Of(Event Player))) * Vector(0.500, 0, 0.500));
  • Loop If Condition Is True;
  • }
  • }
  • rule("MELEE DAMAGES BUILDINGS")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • (Is Meleeing(Event Player) || ((Hero Of(Event Player) == Hero(Brigitte) || Hero Of(Event Player) == Hero(Reinhardt))
  • && Is Firing Primary(Event Player))) == True;
  • Distance Between(Position Of(Event Player), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING])
  • <= Global.WIDTH_BUILDINGS / 2 + Event Player.SCALE_PLAYER;
  • Filtered Array(Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING] + Vector(0, 30, 0), Distance Between(Vector(0, 0, 0),
  • Current Array Element - (Eye Position(Event Player) + Absolute Value(Dot Product(Current Array Element - Eye Position(
  • Event Player), Facing Direction Of(Event Player))) * Facing Direction Of(Event Player)))
  • <= Global.WIDTH_BUILDINGS / 2 && Is In Line of Sight(Eye Position(Event Player) + Absolute Value(Dot Product(
  • Current Array Element - Eye Position(Event Player), Facing Direction Of(Event Player))) * Facing Direction Of(Event Player),
  • Eye Position(Event Player), Barriers Do Not Block LOS) == True && Distance Between(Eye Position(Event Player) + Absolute Value(
  • Dot Product(Current Array Element - Eye Position(Event Player), Facing Direction Of(Event Player))) * Facing Direction Of(
  • Event Player), Eye Position(Event Player)) <= 100) != Empty Array;
  • }
  • actions
  • {
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] -= 1;
  • Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) + 2);
  • Play Effect(All Players(All Teams), Bad Explosion, Orange, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING] + Vector(0, 25,
  • 0), Global.WIDTH_BUILDINGS / 1.500);
  • Play Effect(All Players(All Teams), Explosion Sound, White, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING] + Vector(0,
  • 25, 0), 500);
  • Play Effect(All Players(All Teams), Bad Explosion, Color(Orange),
  • Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING] + Vector(0, 25, 0), Global.WIDTH_BUILDINGS / 1.500);
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White),
  • Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING] + Vector(0, 25, 0), 500);
  • Call Subroutine(DAMAGE_BUILDING);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("KAIJU JUMPS OFF ISLAND")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Y Component Of(Position Of(Event Player)) < -25;
  • }
  • actions
  • {
  • If(Global.GAME_STATE == 2);
  • Small Message(All Players(All Teams), Custom String("{0}ZILLA JUMPED OFF THE ISLAND AND RETURNED TO SPAWN", Hero Of(
  • Event Player)));
  • Damage(Event Player, Null, 900);
  • Else;
  • Small Message(Event Player, Custom String("LOOKS LIKE {0} WANTED TO GO FOR A SWIM...", Event Player));
  • Damage(Event Player, Null, 10000);
  • End;
  • Call Subroutine(SPAWN_POINTS);
  • }
  • }
  • rule("KAIJU ATOMIC BEAM")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Is Alive(Event Player) == True;
  • Ultimate Charge Percent(Event Player) == 100;
  • Is Button Held(Event Player, Ultimate) == True;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • }
  • actions
  • {
  • Set Ultimate Charge(Event Player, 0);
  • Call Subroutine(START_KAIJU_ATOMIC_BEAM);
  • While(Event Player.II < Global.DURATION_KAB && Is Alive(Event Player));
  • Wait(0.100, Ignore Condition);
  • Event Player.II += 0.100;
  • End;
  • Event Player.II = 0;
  • Call Subroutine(END_KAIJU_ATOMIC_BEAM);
  • }
  • }
  • rule("KILL CIVILIANS AND VEHICLES INSIDE ATOMIC BEAM RANGE")
  • rule("KILL CIVILIANS AND MECHS INSIDE ATOMIC BEAM RANGE")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Event Player.EFFECT_ATOMIC_BEAM != Array(Empty Array, Empty Array, Empty Array, Empty Array, Empty Array);
  • }
  • actions
  • {
  • While(Event Player.EFFECT_ATOMIC_BEAM != Empty Array);
  • If(Event Player.EFFECT_ATOMIC_BEAM[0] != Empty Array);
  • Clear Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.200 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.200 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Phased Out);
  • Kill(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.200 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.200 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Event Player);
  • Set Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.200 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.200 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Null, Phased Out, 9999);
  • End;
  • If(Event Player.EFFECT_ATOMIC_BEAM[1] != Empty Array);
  • Clear Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.400 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.400 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Phased Out);
  • Kill(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.400 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.400 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Event Player);
  • Set Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.400 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.400 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Null, Phased Out, 9999);
  • End;
  • If(Event Player.EFFECT_ATOMIC_BEAM[2] != Empty Array);
  • Clear Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.600 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.600 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Phased Out);
  • Kill(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.600 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.600 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Event Player);
  • Set Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.600 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.600 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Null, Phased Out, 9999);
  • End;
  • If(Event Player.EFFECT_ATOMIC_BEAM[3] != Empty Array);
  • Clear Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.800 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.800 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Phased Out);
  • Kill(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.800 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.800 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Event Player);
  • Set Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 0.800 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 0.800 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Null, Phased Out, 9999);
  • End;
  • If(Event Player.EFFECT_ATOMIC_BEAM[4] != Empty Array);
  • Clear Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 1 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 1 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Phased Out);
  • Kill(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 1 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 1 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Event Player);
  • Set Status(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(Ray Cast Hit Position(
  • Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 10 ^ 1 * Global.SCALE_KAIJU * Global.DISTANCE_KAB, Null, Null, False), Position Of(Current Array Element))
  • <= 10 ^ 1 * Global.SCALE_KAIJU * Global.SPREAD_KAB + Global.BASE_KAB), Null, Phased Out, 9999);
  • End;
  • Wait(0.100, Ignore Condition);
  • End;
  • }
  • }
  • rule("KILL KAIJU DEMECHED D.VA")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • Is In Alternate Form(Event Player) == True;
  • Hero Of(Event Player) == Hero(D.Va);
  • }
  • actions
  • {
  • Kill(Event Player, Null);
  • }
  • }
  • rule("REPLACE KAIJU IF ONE LEAVES MATCH")
  • rule("REPLACE KAIJU IF ONE LEAVES MATCH*")
  • {
  • event
  • {
  • Player Left Match;
  • All;
  • All;
  • }
  • conditions
  • {
  • Count Of(Global.LIST_KAIJU) < Global.TOTAL_KAIJU;
  • Global.GAME_STATE != 0;
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • }
  • actions
  • {
  • "RETURN LEAVER KAIJU HEALTH TO THE HEALTH POOL"
  • Global.KAIJU_HEALTH_POOL_RESERVE += Event Player.HEALTH_PLAYER / 1000;
  • Modify Global Variable(LIST_KAIJU, Remove From Array By Value, Event Player);
  • Global.LIST_REPLACEMENT_KAIJU = Random Value In Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU));
  • Modify Global Variable(LIST_CIVILIAN, Remove From Array By Value, Global.LIST_REPLACEMENT_KAIJU);
  • Modify Global Variable(LIST_VEHICLE, Remove From Array By Value, Global.LIST_REPLACEMENT_KAIJU);
  • Modify Global Variable(LIST_MECH, Remove From Array By Value, Global.LIST_REPLACEMENT_KAIJU);
  • Modify Global Variable(LIST_KAIJU, Append To Array, Global.LIST_REPLACEMENT_KAIJU);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("KAIJU WIN CONDITION")
  • rule("KAIJU WIN CONDITION*")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Count Of(Global.LOCATION_BUILDINGS) == 0;
  • (Filtered Array(Global.LIST_KAIJU, Is Dead(Current Array Element)) == Global.LIST_KAIJU) == False;
  • }
  • actions
  • {
  • Enable Built-In Game Mode Announcer;
  • Declare Player Victory(Global.LIST_KAIJU);
  • }
  • }
  • disabled rule("CIVILIAN RULES")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("CIVILIAN SETUP")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE != 0;
  • Array Contains(Global.LIST_CIVILIAN, Event Player) == True;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • Stop Chasing Player Variable(Event Player, COORDINATE_MONORAIL);
  • Stop Forcing Player Position(Event Player);
  • "FORCE A CHARACTER SELECT SCREEN"
  • Set Player Allowed Heroes(Event Player, Empty Array);
  • disabled Set Player Allowed Heroes(Event Player, Empty Array);
  • disabled Wait(0.016, Ignore Condition);
  • Set Player Allowed Heroes(Event Player, Array(Hero(Ana), Hero(Ashe), Hero(Baptiste), Hero(Echo), Hero(Genji), Hero(Hanzo), Hero(
  • Junkrat), Hero(Lúcio), Hero(McCree), Hero(Mei), Hero(Mercy), Hero(Moira), Hero(Pharah), Hero(Reaper), Hero(Soldier: 76), Hero(
  • Sombra), Hero(Symmetra), Hero(Torbjörn), Hero(Tracer), Hero(Widowmaker), Hero(Zenyatta)));
  • Stop Camera(Event Player);
  • Event Player.SCALE_PLAYER = Global.SCALE_CIVILIAN;
  • Event Player.VOICE_PLAYER = Global.VOICE_CIVILIAN;
  • Set Move Speed(Event Player, Global.MOVESPEED_CIVILIAN);
  • Set Max Health(Event Player, Global.MAXHP_CIVILIAN);
  • Call Subroutine(RESET_HEALTH_POOLS);
  • Set Damage Dealt(Event Player, Global.DAMAGE_CIVILIAN);
  • Set Gravity(Event Player, Global.GRAVITY_CIVILIAN);
  • Set Move Speed(Event Player, Global.MOVESPEED_CIVILIAN);
  • Set Jump Vertical Speed(Event Player, Global.JUMP_CIVILIAN);
  • Set Aim Speed(Event Player, Global.AIMSPEED_CIVILIAN);
  • Set Max Health(Event Player, Global.MAXHP_CIVILIAN);
  • Call Subroutine(RESET_HEALTH_POOLS);
  • Set Primary Fire Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Disallow Button(Event Player, Ultimate);
  • Set Melee Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, True);
  • Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Blue);
  • Set Gravity(Event Player, Global.GRAVITY_CIVILIAN);
  • Event Player.SCALE_PLAYER = Global.SCALE_CIVILIAN;
  • Event Player.VOICE_PLAYER = Global.VOICE_CIVILIAN;
  • Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Color(Blue), Default);
  • Set Ultimate Charge(Event Player, 0);
  • }
  • }
  • rule("CIVILIANS GET ON MONORAIL")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_CIVILIAN, Event Player) == True;
  • Is Button Held(Event Player, Interact) == True;
  • Sorted Array(Global.LOCATION_MONORAIL, Distance Between(Position Of(Event Player), Current Array Element))[0] < 10;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Distance Between(Sorted Array(Global.LOCATION_MONORAIL, Distance Between(Position Of(Event Player), Current Array Element))[0],
  • Position Of(Event Player)) < 10;
  • Event Player.COORDINATE_MONORAIL == Empty Array;
  • }
  • actions
  • {
  • Event Player.COORDINATE_MONORAIL = Sorted Array(Global.LOCATION_MONORAIL, Distance Between(Position Of(Event Player),
  • Current Array Element))[0];
  • Start Forcing Player Position(Event Player, Event Player.COORDINATE_MONORAIL, True);
  • }
  • }
  • rule("RIDING ON MONORAIL")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_CIVILIAN, Event Player) == True;
  • Event Player.COORDINATE_MONORAIL != Empty Array;
  • Distance Between(Position Of(Event Player), First Of(Sorted Array(Global.LOCATION_MONORAIL, Distance Between(Position Of(
  • Event Player), Current Array Element)))) <= 0.001;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, COORDINATE_MONORAIL, Global.LOCATION_MONORAIL[(Index Of Array Value(
  • Global.LOCATION_MONORAIL, Sorted Array(Global.LOCATION_MONORAIL, Distance Between(Position Of(Event Player),
  • Current Array Element))[0]) + 1) % Count Of(Global.LOCATION_MONORAIL)], 35, None);
  • }
  • }
  • rule("HOPPING OFF MONORAIL")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_CIVILIAN, Event Player) == True;
  • Is Button Held(Event Player, Jump) == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Event Player.COORDINATE_MONORAIL != Empty Array;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, COORDINATE_MONORAIL);
  • Stop Forcing Player Position(Event Player);
  • disabled Wait(1.500, Ignore Condition);
  • Apply Impulse(Event Player, Direction Towards(Vector(0, 0, 0), Vector(0, 1, 0)), 10, To Player, Incorporate Contrary Motion);
  • Event Player.COORDINATE_MONORAIL = Empty Array;
  • }
  • }
  • rule("CIVILIAN WIN CONDITION")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Count Of(Global.LOCATION_BUILDINGS) != 0;
  • (Filtered Array(Global.LIST_KAIJU, Is Dead(Current Array Element)) == Global.LIST_KAIJU) == True;
  • Global.KAIJU_HEALTH_POOL_RESERVE == 0;
  • }
  • actions
  • {
  • Enable Built-In Game Mode Announcer;
  • Declare Player Victory(Remove From Array(All Players(All Teams), Global.LIST_KAIJU));
  • }
  • }
  • disabled rule("VEHICLE RULES")
  • disabled rule("MECH RULES")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("VEHICLE SETUP")
  • rule("MECH SETUP")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE != 0;
  • Array Contains(Global.LIST_VEHICLE, Event Player) == True;
  • Array Contains(Global.LIST_MECH, Event Player) == True;
  • }
  • actions
  • {
  • Set Player Allowed Heroes(Event Player, Array(Hero(Ana), Hero(Ashe), Hero(Baptiste), Hero(Bastion), Hero(Brigitte), Hero(D.Va),
  • Hero(Doomfist), Hero(Echo), Hero(Genji), Hero(Hanzo), Hero(Junkrat), Hero(Lúcio), Hero(McCree), Hero(Mei), Hero(Mercy), Hero(
  • Moira), Hero(Orisa), Hero(Pharah), Hero(Reaper), Hero(Reinhardt), Hero(Roadhog), Hero(Sigma), Hero(Soldier: 76), Hero(Sombra),
  • Hero(Symmetra), Hero(Torbjörn), Hero(Tracer), Hero(Widowmaker), Hero(Winston), Hero(Wrecking Ball), Hero(Zarya), Hero(
  • Zenyatta)));
  • Stop Camera(Event Player);
  • Event Player.SCALE_PLAYER = Global.SCALE_VEHICLE;
  • Event Player.VOICE_PLAYER = Global.VOICE_VEHICLE;
  • Set Move Speed(Event Player, Global.MOVESPEED_VEHICLE);
  • Set Damage Dealt(Event Player, Global.DAMAGE_VEHICLE);
  • Set Gravity(Event Player, Global.GRAVITY_VEHICLE);
  • Set Jump Vertical Speed(Event Player, Global.JUMP_VEHICLE);
  • Set Aim Speed(Event Player, Global.AIMSPEED_VEHICLE);
  • Set Max Health(Event Player, Global.MAXHP_VEHICLE);
  • Stop Chasing Player Variable(Event Player, COORDINATE_MONORAIL);
  • Stop Forcing Player Position(Event Player);
  • Set Player Allowed Heroes(Event Player, Array(Hero(Bastion), Hero(D.Va), Hero(Junkrat), Hero(Orisa), Hero(Pharah), Hero(
  • Reinhardt)));
  • Set Max Health(Event Player, Global.MAXHP_MECH);
  • Call Subroutine(RESET_HEALTH_POOLS);
  • Set Primary Fire Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Allow Button(Event Player, Ultimate);
  • Set Melee Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, True);
  • Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Green);
  • Set Damage Dealt(Event Player, Global.DAMAGE_MECH);
  • Set Move Speed(Event Player, Global.MOVESPEED_MECH);
  • Set Jump Vertical Speed(Event Player, Global.JUMP_MECH);
  • Set Aim Speed(Event Player, Global.AIMSPEED_MECH);
  • Set Gravity(Event Player, Global.GRAVITY_MECH);
  • Event Player.SCALE_PLAYER = Global.SCALE_MECH;
  • Event Player.VOICE_PLAYER = Global.VOICE_MECH;
  • Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Color(Green), Default);
  • Set Ultimate Charge(Event Player, 100);
  • }
  • }
  • rule("SPAWN POWERUP")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Global.LOCATION_POWERUP == Empty Array;
  • }
  • actions
  • {
  • Wait(60, Ignore Condition);
  • Global.LOCATION_POWERUP = Random Value In Array(Global.LOCATION_BUILDINGS);
  • Global.TYPE_POWERUP = Random Integer(0, 5);
  • If(Global.TYPE_POWERUP == 0);
  • Global.TYPE_POWERUP = Custom String("AMPLIFIER");
  • Create Effect(All Players(All Teams), Sphere, Red, Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.TYPE_POWERUP = Custom String("MECH: OX");
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.EFFECT_POWERUP[0] = Last Created Entity;
  • Create In-World Text(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.TYPE_POWERUP, Global.LOCATION_POWERUP,
  • 2.500, Do Not Clip, Visible To, Red, Default Visibility);
  • 2.500, Do Not Clip, Visible To, Color(Red), Default Visibility);
  • Global.EFFECT_POWERUP[1] = Last Text ID;
  • Create Icon(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.LOCATION_POWERUP + Vector(0, 5, 0), Bolt, None,
  • Red, True);
  • Color(Red), True);
  • Global.EFFECT_POWERUP[2] = Last Created Entity;
  • End;
  • If(Global.TYPE_POWERUP == 1);
  • Global.TYPE_POWERUP = Custom String("BOMB");
  • Create Effect(All Players(All Teams), Sphere, Orange, Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.TYPE_POWERUP = Custom String("MECH: RAT");
  • Create Effect(All Players(All Teams), Sphere, Color(Orange), Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.EFFECT_POWERUP[0] = Last Created Entity;
  • Create In-World Text(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.TYPE_POWERUP, Global.LOCATION_POWERUP,
  • 2.500, Do Not Clip, Visible To, Orange, Default Visibility);
  • 2.500, Do Not Clip, Visible To, Color(Orange), Default Visibility);
  • Global.EFFECT_POWERUP[1] = Last Text ID;
  • Create Icon(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.LOCATION_POWERUP + Vector(0, 5, 0), Bolt, None,
  • Orange, True);
  • Color(Orange), True);
  • Global.EFFECT_POWERUP[2] = Last Created Entity;
  • End;
  • If(Global.TYPE_POWERUP == 2);
  • Global.TYPE_POWERUP = Custom String("TREMOR SUIT");
  • Create Effect(All Players(All Teams), Sphere, Yellow, Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.TYPE_POWERUP = Custom String("MECH: LION");
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.EFFECT_POWERUP[0] = Last Created Entity;
  • Create In-World Text(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.TYPE_POWERUP, Global.LOCATION_POWERUP,
  • 2.500, Do Not Clip, Visible To, Yellow, Default Visibility);
  • 2.500, Do Not Clip, Visible To, Color(Yellow), Default Visibility);
  • Global.EFFECT_POWERUP[1] = Last Text ID;
  • Create Icon(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.LOCATION_POWERUP + Vector(0, 5, 0), Bolt, None,
  • Yellow, True);
  • Color(Yellow), True);
  • Global.EFFECT_POWERUP[2] = Last Created Entity;
  • End;
  • If(Global.TYPE_POWERUP == 3);
  • Global.TYPE_POWERUP = Custom String("JETPACK");
  • Create Effect(All Players(All Teams), Sphere, Green, Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.TYPE_POWERUP = Custom String("MECH: RAPTOR");
  • Create Effect(All Players(All Teams), Sphere, Color(Green), Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.EFFECT_POWERUP[0] = Last Created Entity;
  • Create In-World Text(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.TYPE_POWERUP, Global.LOCATION_POWERUP,
  • 2.500, Do Not Clip, Visible To, Green, Default Visibility);
  • 2.500, Do Not Clip, Visible To, Color(Green), Default Visibility);
  • Global.EFFECT_POWERUP[1] = Last Text ID;
  • Create Icon(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.LOCATION_POWERUP + Vector(0, 5, 0), Bolt, None,
  • Green, True);
  • Color(Green), True);
  • Global.EFFECT_POWERUP[2] = Last Created Entity;
  • End;
  • If(Global.TYPE_POWERUP == 4);
  • Global.TYPE_POWERUP = Custom String("MECH");
  • Create Effect(All Players(All Teams), Sphere, Blue, Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.TYPE_POWERUP = Custom String("MECH: RABBIT");
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.EFFECT_POWERUP[0] = Last Created Entity;
  • Create In-World Text(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.TYPE_POWERUP, Global.LOCATION_POWERUP,
  • 2.500, Do Not Clip, Visible To, Blue, Default Visibility);
  • 2.500, Do Not Clip, Visible To, Color(Blue), Default Visibility);
  • Global.EFFECT_POWERUP[1] = Last Text ID;
  • Create Icon(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.LOCATION_POWERUP + Vector(0, 5, 0), Bolt, None,
  • Blue, True);
  • Color(Blue), True);
  • Global.EFFECT_POWERUP[2] = Last Created Entity;
  • End;
  • If(Global.TYPE_POWERUP == 5);
  • Global.TYPE_POWERUP = Custom String("TANK");
  • Create Effect(All Players(All Teams), Sphere, Purple, Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.TYPE_POWERUP = Custom String("MECH: TANK");
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.LOCATION_POWERUP, 5, Visible To Position and Radius);
  • Global.EFFECT_POWERUP[0] = Last Created Entity;
  • Create In-World Text(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.TYPE_POWERUP, Global.LOCATION_POWERUP,
  • 2.500, Do Not Clip, Visible To, Purple, Default Visibility);
  • 2.500, Do Not Clip, Visible To, Color(Purple), Default Visibility);
  • Global.EFFECT_POWERUP[1] = Last Text ID;
  • Create Icon(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Global.LOCATION_POWERUP + Vector(0, 5, 0), Bolt, None,
  • Purple, True);
  • Color(Purple), True);
  • Global.EFFECT_POWERUP[2] = Last Created Entity;
  • End;
  • Loop If Condition Is True;
  • }
  • }
  • rule("ACTIVATE POWERUP")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Array Contains(Global.LIST_CIVILIAN, Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Distance Between(Position Of(Event Player), Global.LOCATION_POWERUP) <= 5;
  • Global.LOCATION_POWERUP != Empty Array;
  • }
  • actions
  • {
  • Wait(0.016, Ignore Condition);
  • Event Player.TYPE_VEHICLE = Global.TYPE_POWERUP;
  • Event Player.TYPE_MECH = Global.TYPE_POWERUP;
  • Destroy Effect(Global.EFFECT_POWERUP[0]);
  • Destroy In-World Text(Global.EFFECT_POWERUP[1]);
  • Destroy Icon(Global.EFFECT_POWERUP[2]);
  • Global.LOCATION_POWERUP = Empty Array;
  • Global.EFFECT_POWERUP = Empty Array;
  • Call Subroutine(VEHICLE_POWERUP);
  • Call Subroutine(MECH_POWERUP);
  • }
  • }
  • rule("VEHICLE USES ULTIMATE")
  • rule("MECH USES ULTIMATE")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Array Contains(Global.LIST_VEHICLE, Event Player) == True;
  • Array Contains(Global.LIST_MECH, Event Player) == True;
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • If(Event Player.TYPE_VEHICLE == Custom String("AMPLIFIER"));
  • While(Is Using Ultimate(Event Player));
  • Wait(1, Ignore Condition);
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("BOMB"));
  • Wait(5, Ignore Condition);
  • While(Is Using Ultimate(Event Player));
  • Wait(1, Ignore Condition);
  • End;
  • Wait(3, Ignore Condition);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • Modify Global Variable(LIST_VEHICLE, Remove From Array By Value, Event Player);
  • Start Forcing Player To Be Hero(Event Player, Event Player.HERO_PLAYER);
  • Stop Forcing Player To Be Hero(Event Player);
  • If(Event Player.TYPE_MECH == Custom String("MECH: OX"));
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("TREMOR SUIT"));
  • Wait(1, Ignore Condition);
  • If(Event Player.TYPE_MECH == Custom String("MECH: RAT"));
  • End;
  • If(Event Player.TYPE_MECH == Custom String("MECH: LION"));
  • Set Status(Filtered Array(Global.LIST_KAIJU, Distance Between(Position Of(Event Player), Position Of(Current Array Element))
  • <= 100), Event Player, Knocked Down, 20);
  • Destroy Effect(Event Player.EFFECT_ATOMIC_BEAM[0]);
  • Wait(1, Ignore Condition);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • Modify Global Variable(LIST_VEHICLE, Remove From Array By Value, Event Player);
  • Start Forcing Player To Be Hero(Event Player, Event Player.HERO_PLAYER);
  • Stop Forcing Player To Be Hero(Event Player);
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("JETPACK"));
  • Wait(5, Ignore Condition);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • Modify Global Variable(LIST_VEHICLE, Remove From Array By Value, Event Player);
  • Start Forcing Player To Be Hero(Event Player, Event Player.HERO_PLAYER);
  • Stop Forcing Player To Be Hero(Event Player);
  • If(Event Player.TYPE_MECH == Custom String("MECH: RAPTOR"));
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("MECH"));
  • Wait(5, Ignore Condition);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • Modify Global Variable(LIST_VEHICLE, Remove From Array By Value, Event Player);
  • Start Forcing Player To Be Hero(Event Player, Event Player.HERO_PLAYER);
  • Stop Forcing Player To Be Hero(Event Player);
  • If(Event Player.TYPE_MECH == Custom String("MECH: RABBIT"));
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("TANK"));
  • If(Event Player.TYPE_MECH == Custom String("MECH: TANK"));
  • End;
  • Wait(5, Ignore Condition);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • Modify Global Variable(LIST_MECH, Remove From Array By Value, Event Player);
  • }
  • }
  • rule("BOMB DAMAGE CALCULATOR")
  • {
  • event
  • {
  • Player Took Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Array Contains(Global.LIST_KAIJU, Event Player) == True;
  • (Hero Of(Attacker) == Hero(D.Va) || Hero Of(Attacker) == Hero(Junkrat)) == True;
  • Hero Of(Attacker) == Hero(Junkrat);
  • Is Using Ultimate(Attacker) == True;
  • }
  • actions
  • {
  • Heal(Event Player, Null, Event Damage);
  • Damage(Event Player, Attacker, 3 * 5000 * (100 / Global.DAMAGE_VEHICLE));
  • Damage(Event Player, Attacker, 3 * 5000 * (100 / Global.DAMAGE_MECH));
  • }
  • }
  • disabled rule("MISCELLANEOUS RULES")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("PLAYER SETUP UPON JOINING MATCH")
  • rule("PLAYER SWITCHES CHARACTERS")
  • {
  • event
  • {
  • Player Joined Match;
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Array Contains(All Heroes, Hero Of(Event Player)) == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.HERO_PLAYER = Hero Of(Event Player);
  • If(Global.GAME_STATE == 0);
  • If(Event Player == Host Player);
  • Create Icon(All Players(All Teams), Host Player, Halo, Visible To and Position, White, True);
  • End;
  • Modify Global Variable(LIST_KAIJU, Append To Array, Event Player);
  • Event Player.SCALE_PLAYER = 20;
  • Set Move Speed(Event Player, 20 * 100);
  • Set Jump Vertical Speed(Event Player, 20 * 100);
  • Set Gravity(Event Player, 20 * 100);
  • Set Primary Fire Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Melee Enabled(Event Player, False);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Else;
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • If(Array Contains(Global.LIST_KAIJU, Event Player) == True);
  • If(Hero Of(Event Player) == Hero(Brigitte) || Hero Of(Event Player) == Hero(Reinhardt));
  • Set Primary Fire Enabled(Event Player, True);
  • Else;
  • Set Primary Fire Enabled(Event Player, False);
  • End;
  • Set Secondary Fire Enabled(Event Player, False);
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, False);
  • Disallow Button(Event Player, Button(Ultimate));
  • Set Melee Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, False);
  • End;
  • If(Array Contains(Global.LIST_CIVILIAN, Event Player) == True);
  • Set Primary Fire Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Allow Button(Event Player, Button(Ultimate));
  • Set Melee Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, True);
  • End;
  • If(Array Contains(Global.LIST_MECH, Event Player) == True);
  • Set Primary Fire Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Allow Button(Event Player, Button(Ultimate));
  • Set Melee Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, True);
  • End;
  • End;
  • Call Subroutine(SPAWN_POINTS);
  • }
  • }
  • rule("GAME HUD")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(Filtered Array(All Players(All Teams), Global.GAME_STATE == 0), Null, Null, Custom String("LOBBY CONTROLS:"), Left,
  • 0, White, White, Yellow, Visible To and String, Default Visibility);
  • 0, Color(White), Color(White), Color(Yellow), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(All Players(All Teams), Global.GAME_STATE == 0), Null, Custom String(
  • "INTERACT ({0}): TOGGLE 3RD PERSON CAMERA", Input Binding String(Button(Interact))), Null, Left, 1, White, White, White,
  • Visible To and String, Default Visibility);
  • "INTERACT ({0}): TOGGLE 3RD PERSON CAMERA", Input Binding String(Button(Interact))), Null, Left, 1, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_KAIJU, Global.GAME_STATE == 2), Null, Null, Custom String("KAIJU CONTROLS:"), Left, 0,
  • White, White, Orange, Visible To and String, Default Visibility);
  • Color(White), Color(White), Color(Orange), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_KAIJU, Global.GAME_STATE == 2), Null, Custom String(
  • "INTERACT ({0}): TOGGLE 3RD PERSON CAMERA", Input Binding String(Button(Interact))), Null, Left, 1, White, White, White,
  • Visible To and String, Default Visibility);
  • "INTERACT ({0}): TOGGLE 3RD PERSON CAMERA", Input Binding String(Button(Interact))), Null, Left, 1, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_KAIJU, Global.GAME_STATE == 2), Null, Custom String("JUMP ({0}): GIGA SHOCKWAVE STOMP",
  • Input Binding String(Button(Jump))), Null, Left, 2, White, White, White, Visible To and String, Default Visibility);
  • Input Binding String(Button(Jump))), Null, Left, 2, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_KAIJU, Global.GAME_STATE == 2), Null, Custom String("MELEE ({0}): DAMAGE BUILDINGS",
  • Input Binding String(Button(Melee))), Null, Left, 3, White, White, White, Visible To and String, Default Visibility);
  • Input Binding String(Button(Melee))), Null, Left, 3, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_KAIJU, Global.GAME_STATE == 2), Null, Custom String("ULTIMATE ({0}): KAIJU ATOMIC BEAM",
  • Input Binding String(Button(Ultimate))), Null, Left, 4, White, White, White, Visible To and String, Default Visibility);
  • Input Binding String(Button(Ultimate))), Null, Left, 4, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_CIVILIAN, Global.GAME_STATE == 2), Null, Null, Custom String("CIVILIAN CONTROLS:"),
  • Left, 0, White, White, Blue, Visible To and String, Default Visibility);
  • Left, 0, Color(White), Color(White), Color(Blue), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_CIVILIAN, Global.GAME_STATE == 2), Null, Custom String(
  • "INTERACT ({0}): BOARD MONORAIL AT STATION", Input Binding String(Button(Interact))), Null, Left, 1, White, White, White,
  • Visible To and String, Default Visibility);
  • "INTERACT ({0}): BOARD MONORAIL AT STATION", Input Binding String(Button(Interact))), Null, Left, 1, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_CIVILIAN, Global.GAME_STATE == 2), Null, Custom String("JUMP ({0}): HOP OFF MONORAIL",
  • Input Binding String(Button(Jump))), Null, Left, 2, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_VEHICLE, Global.GAME_STATE == 2), Null, Null, Custom String("VEHICLE CONTROLS:"), Left,
  • 0, White, White, Green, Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_VEHICLE, Global.GAME_STATE == 2), Null, Custom String(
  • "INTERACT ({0}): TOGGLE 3RD PERSON CAMERA", Input Binding String(Button(Interact))), Null, Left, 1, White, White, White,
  • Visible To and String, Default Visibility);
  • Input Binding String(Button(Jump))), Null, Left, 2, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_MECH, Global.GAME_STATE == 2), Null, Null, Custom String("MECH CONTROLS:"), Left, 0,
  • Color(White), Color(White), Color(Green), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Global.LIST_MECH, Global.GAME_STATE == 2), Null, Custom String(
  • "INTERACT ({0}): TOGGLE 3RD PERSON CAMERA", Input Binding String(Button(Interact))), Null, Left, 1, Color(White), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(All Players(All Teams), Global.GAME_STATE == 2), Custom String(
  • "TOTAL KAIJU HEALTH: {0} HP | BUILDINGS REMAINING: {1}", Round To Integer(Health(Global.LIST_KAIJU[0]), To Nearest)
  • + Round To Integer(Health(Global.LIST_KAIJU[1]), To Nearest) + Round To Integer(Health(Global.LIST_KAIJU[2]), To Nearest)
  • + Round To Integer(Health(Global.LIST_KAIJU[3]), To Nearest) + Global.KAIJU_HEALTH_POOL_RESERVE * 1000, Count Of(
  • Global.LOCATION_BUILDINGS)), Null, Null, Top, 0, Turquoise, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("GET HERO OF EVENT PLAYER UPON SPAWNING INTO GAME")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.HERO_PLAYER = Hero Of(Event Player);
  • Call Subroutine(SPAWN_POINTS);
  • }
  • }
  • rule("GAME REVIVE MECHANIC")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • }
  • actions
  • {
  • If(Array Contains(Global.LIST_KAIJU, Event Player));
  • If(Global.KAIJU_HEALTH_POOL_RESERVE > 0);
  • Respawn(Event Player);
  • Global.KAIJU_HEALTH_POOL_RESERVE -= 100;
  • Call Subroutine(SPAWN_POINTS);
  • End;
  • Else;
  • Wait(5, Ignore Condition);
  • Modify Global Variable(LIST_VEHICLE, Remove From Array By Value, Event Player);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • Set Status(Event Player, Null, Phased Out, 0.016);
  • Respawn(Event Player);
  • Call Subroutine(SPAWN_POINTS);
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.LOCATION_BUILDINGS)), Null, Null, Top, 0, Color(Turquoise), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • }
  • }
  • rule("OPTIONAL CINEMATIC ONCE ALL PLAYERS HAVE SPAWNED")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 1;
  • }
  • actions
  • {
  • Wait(25, Ignore Condition);
  • Disable Built-In Game Mode Announcer;
  • If(Global.CINEMATIC_OPENING == True);
  • Call Subroutine(OPENING_CINEMATIC);
  • End;
  • Wait(5, Ignore Condition);
  • Big Message(Global.LIST_KAIJU, Custom String("DESTROY THE CITY"));
  • Big Message(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Custom String("DESTROY THE KAIJU"));
  • Clear Status(All Players(All Teams), Rooted);
  • Global.GAME_STATE = 2;
  • }
  • }
  • rule("TOGGLE KAIJU / VEHICLE CAMERA")
  • rule("TOGGLE KAIJU / MECH CAMERA")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Array Contains(Global.LIST_KAIJU, Event Player) || Array Contains(Global.LIST_VEHICLE, Event Player)) == True;
  • Is Button Held(Event Player, Interact) == True;
  • Global.GAME_STATE != 1;
  • (Array Contains(Global.LIST_KAIJU, Event Player) || Array Contains(Global.LIST_MECH, Event Player)) == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.CAMERA_THIRD_PERSON == False);
  • If(Array Contains(Global.LIST_KAIJU, Event Player));
  • Start Camera(Event Player, Eye Position(Event Player) - Vector(Sine From Degrees(Horizontal Facing Angle Of(Event Player)), -0.400,
  • Cosine From Degrees(Horizontal Facing Angle Of(Event Player))) * Event Player.SCALE_PLAYER * 2.500, Eye Position(Event Player),
  • 1000);
  • Else;
  • Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) - Facing Direction Of(
  • Event Player) * 10, Null, Null, False) + Vector(0, Event Player.SCALE_PLAYER, 0), Eye Position(Event Player), 0);
  • End;
  • Event Player.CAMERA_THIRD_PERSON = True;
  • Else;
  • Stop Camera(Event Player);
  • Event Player.CAMERA_THIRD_PERSON = False;
  • End;
  • }
  • }
  • rule("RESET MATCH TIMER")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Match Time <= 60;
  • Is Assembling Heroes == False;
  • }
  • actions
  • {
  • If(Global.GAME_STATE == 0);
  • Set Match Time(600);
  • End;
  • If(Global.GAME_STATE == 2 && Count Of(Global.LOCATION_BUILDINGS) > 10);
  • Set Match Time(600);
  • End;
  • }
  • }
  • rule("SWITCH TO PANIC TIMER")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Count Of(Global.LOCATION_BUILDINGS) <= 10;
  • }
  • actions
  • {
  • Big Message(Global.LIST_KAIJU, Custom String("ONLY TEN BUILDINGS REMAINING..."));
  • Big Message(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Custom String("HURRY! THE CITY IS ALMOST DESTROYED!"));
  • Set Match Time(30);
  • }
  • }
  • rule("RESET PANIC TIMER")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Match Time == 0;
  • Global.GAME_STATE == 2;
  • }
  • actions
  • {
  • Set Match Time(30);
  • }
  • }
  • rule("PLAYER SPAWNS \\ RESPAWNS IN GAME")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Call Subroutine(SPAWN_POINTS);
  • If(Global.GAME_STATE == 2);
  • Set Match Time(30);
  • If(Array Contains(Global.LIST_KAIJU, Event Player));
  • If(Global.KAIJU_HEALTH_POOL_RESERVE < 100);
  • Set Player Health(Event Player, Global.KAIJU_HEALTH_POOL_RESERVE * 1000);
  • Global.KAIJU_HEALTH_POOL_RESERVE = 0;
  • Else;
  • Global.KAIJU_HEALTH_POOL_RESERVE -= 100;
  • End;
  • Else;
  • Modify Global Variable(LIST_MECH, Remove From Array By Value, Event Player);
  • Modify Global Variable(LIST_CIVILIAN, Append To Array, Event Player);
  • End;
  • End;
  • }
  • }
  • rule("ENABLE KAIJU RESPAWNING IF HEALTHPOOL IS NOT DEPLETED")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Global.KAIJU_HEALTH_POOL_RESERVE > 0;
  • Is True For Any(Global.LIST_KAIJU, Is Dead(Current Array Element)) == True;
  • }
  • actions
  • {
  • While(Global.II < Global.TOTAL_KAIJU);
  • Enable Built-In Game Mode Respawning(Global.LIST_KAIJU[Global.II]);
  • Wait(0.250, Ignore Condition);
  • If(Global.KAIJU_HEALTH_POOL_RESERVE == 0);
  • Break;
  • End;
  • Global.II += 1;
  • End;
  • Global.II = 0;
  • Wait(0.250, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("DISABLE KAIJU RESPAWNING")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.GAME_STATE == 2;
  • Global.KAIJU_HEALTH_POOL_RESERVE <= 0;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Respawning(Global.LIST_KAIJU);
  • }
  • }
  • disabled rule("SUBROUTINES")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("SUB: GAME SETUP")
  • {
  • event
  • {
  • Subroutine;
  • GAME_SETUP;
  • }
  • actions
  • {
  • Go To Assemble Heroes;
  • Global.GAME_STATE = 1;
  • Set Status(All Players(All Teams), Null, Rooted, 9999);
  • Global.LIST_KAIJU = Array Slice(Randomized Array(All Players(All Teams)), 0, Global.TOTAL_KAIJU);
  • Global.LIST_CIVILIAN = Remove From Array(All Players(All Teams), Global.LIST_KAIJU);
  • Call Subroutine(REMOVE_ALL_EFFECTS);
  • Call Subroutine(BUILD_ROADS);
  • Call Subroutine(BUILD_BUILDINGS);
  • Call Subroutine(BUILD_MONORAIL);
  • }
  • }
  • rule("SUB: REMOVE ALL EFFECTS")
  • {
  • event
  • {
  • Subroutine;
  • REMOVE_ALL_EFFECTS;
  • }
  • actions
  • {
  • Destroy All Effects;
  • Destroy All In-World Text;
  • Destroy All Icons;
  • Global.EFFECT_BUILDING_ONE = Empty Array;
  • Global.EFFECT_BUILDING_TWO = Empty Array;
  • Global.EFFECT_BUILDING_THREE = Empty Array;
  • Global.EFFECT_RUBBLE = Empty Array;
  • Global.EFFECT_ROADS = Empty Array;
  • Global.EFFECT_MONORAIL = Empty Array;
  • All Players(All Teams).EFFECT_ATOMIC_BEAM = Array(Empty Array, Empty Array, Empty Array, Empty Array, Empty Array);
  • Global.EFFECT_POWERUP = Empty Array;
  • }
  • }
  • rule("SUB: BUILD ROADS")
  • {
  • event
  • {
  • Subroutine;
  • BUILD_ROADS;
  • }
  • actions
  • {
  • "ROAD CONSTRUCTION LOOP"
  • While(Global.II < Global.NUMBER_CITY_BLOCKS - 1);
  • Create Beam Effect(All Players(All Teams), Good Beam, Vector(0 - Global.WIDTH_MAP / 2, 0,
  • 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1) + Global.WIDTH_ROADS * (Global.II + 0)), Vector(
  • Global.WIDTH_MAP / 2, 0, 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1) + Global.WIDTH_ROADS * (
  • Global.II + 0)), White, Visible To);
  • Global.II + 0)), Color(White), Visible To);
  • Global.EFFECT_ROADS[4 * Global.II + 0] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Good Beam, Vector(0 - Global.WIDTH_MAP / 2, 0,
  • 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1) + Global.WIDTH_ROADS * (Global.II + 1)), Vector(
  • Global.WIDTH_MAP / 2, 0, 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1) + Global.WIDTH_ROADS * (
  • Global.II + 1)), White, Visible To);
  • Global.II + 1)), Color(White), Visible To);
  • Global.EFFECT_ROADS[4 * Global.II + 1] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Good Beam, Vector(0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1)
  • + Global.WIDTH_ROADS * (Global.II + 0), 0, 0 - Global.WIDTH_MAP / 2), Vector(
  • 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1) + Global.WIDTH_ROADS * (Global.II + 0), 0,
  • Global.WIDTH_MAP / 2), White, Visible To);
  • Global.WIDTH_MAP / 2), Color(White), Visible To);
  • Global.EFFECT_ROADS[4 * Global.II + 2] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Good Beam, Vector(0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1)
  • + Global.WIDTH_ROADS * (Global.II + 1), 0, 0 - Global.WIDTH_MAP / 2), Vector(
  • 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * (Global.II + 1) + Global.WIDTH_ROADS * (Global.II + 1), 0,
  • Global.WIDTH_MAP / 2), White, Visible To);
  • Global.WIDTH_MAP / 2), Color(White), Visible To);
  • Global.EFFECT_ROADS[4 * Global.II + 3] = Last Created Entity;
  • Global.II += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.II = 0;
  • }
  • }
  • rule("SUB: BUILD BUILDINGS")
  • {
  • event
  • {
  • Subroutine;
  • BUILD_BUILDINGS;
  • }
  • actions
  • {
  • "BUILDING COORDINATE LOOP"
  • While(Global.II < Global.NUMBER_CITY_BLOCKS);
  • While(Global.JJ < Global.NUMBER_CITY_BLOCKS);
  • Global.LOCATION_BUILDINGS[Global.II * Global.NUMBER_CITY_BLOCKS + Global.JJ] = Vector(
  • 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * Global.II + Global.WIDTH_BUILDINGS / 2 + Global.WIDTH_ROADS * Global.II, 0,
  • 0 - Global.WIDTH_MAP / 2 + Global.WIDTH_BUILDINGS * Global.JJ + Global.WIDTH_BUILDINGS / 2 + Global.WIDTH_ROADS * Global.JJ);
  • Global.JJ += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.JJ = 0;
  • Global.II += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.II = 0;
  • "RETRIEVE KAIJU SPAWN LOCATIONS"
  • Global.LOCATION_KAIJU_SPAWN[0] = Global.LOCATION_BUILDINGS[Global.NUMBER_CITY_BLOCKS * 0 + 0];
  • Global.LOCATION_KAIJU_SPAWN[1] = Global.LOCATION_BUILDINGS[Global.NUMBER_CITY_BLOCKS * (Global.NUMBER_CITY_BLOCKS - 1) + (
  • Global.NUMBER_CITY_BLOCKS - 1)];
  • Global.LOCATION_KAIJU_SPAWN[2] = Global.LOCATION_BUILDINGS[Global.NUMBER_CITY_BLOCKS * 0 + (Global.NUMBER_CITY_BLOCKS - 1)];
  • Global.LOCATION_KAIJU_SPAWN[3] = Global.LOCATION_BUILDINGS[Global.NUMBER_CITY_BLOCKS * (Global.NUMBER_CITY_BLOCKS - 1) + 0];
  • "REMOVE KAIJU SPAWN LOCATIONS FROM BUILDING LOCATION ARRAY"
  • Global.LOCATION_BUILDINGS = Remove From Array(Global.LOCATION_BUILDINGS, Global.LOCATION_KAIJU_SPAWN);
  • "REMAINING AVAILABLE EFFECTS FOR BUILDINGS | MOSTLY USED FOR DEBUGGING"
  • disabled Global.REMAINING_EFFECTS = 128 - Count Of(Global.EFFECT_ROADS) - Count Of(Global.LOCATION_BUILDINGS) - Count Of(
  • Global.EFFECT_MONORAIL) - 20;
  • "CALCULATE BUILDING HEALTH LOOP"
  • While(Global.II < Count Of(Global.LOCATION_BUILDINGS));
  • If(Global.II < 10);
  • Global.HEALTH_BUILDINGS[Global.II] = 3;
  • Else If(Global.II < 25);
  • Global.HEALTH_BUILDINGS[Global.II] = 2;
  • Else;
  • Global.HEALTH_BUILDINGS[Global.II] = 1;
  • End;
  • Global.II += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.II = 0;
  • "SHUFFLE THE BUILDINGS"
  • Global.HEALTH_BUILDINGS = Randomized Array(Global.HEALTH_BUILDINGS);
  • "CREATE BASE LEVEL BUILDING EFFECTS"
  • While(Global.II < Count Of(Global.LOCATION_BUILDINGS));
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[Global.II] + Vector(0, 0, 0),
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[Global.II] + Vector(0, 0, 0),
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Global.II] = Last Created Entity;
  • If(Global.HEALTH_BUILDINGS[Global.II] > 1);
  • Create Effect(All Players(All Teams), Light Shaft, Sky Blue, Global.LOCATION_BUILDINGS[Global.II] + Vector(0, 30, 0),
  • Create Effect(All Players(All Teams), Light Shaft, Color(Sky Blue), Global.LOCATION_BUILDINGS[Global.II] + Vector(0, 30, 0),
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_TWO[Global.II] = Last Created Entity;
  • End;
  • If(Global.HEALTH_BUILDINGS[Global.II] > 2);
  • Create Effect(All Players(All Teams), Light Shaft, Blue, Global.LOCATION_BUILDINGS[Global.II] + Vector(0, 60, 0),
  • Create Effect(All Players(All Teams), Light Shaft, Color(Blue), Global.LOCATION_BUILDINGS[Global.II] + Vector(0, 60, 0),
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_THREE[Global.II] = Last Created Entity;
  • End;
  • Global.II += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.II = 0;
  • Global.HEALTH_BUILDINGS = Mapped Array(Global.HEALTH_BUILDINGS, Current Array Element * Global.BUILDING_HITS_PER_SECTION);
  • }
  • }
  • rule("SUB: BUILD MONORAIL")
  • {
  • event
  • {
  • Subroutine;
  • BUILD_MONORAIL;
  • }
  • actions
  • {
  • Global.LOCATION_MONORAIL[0] = Vector(0 - Global.WIDTH_MAP / 2 + 2 * Global.WIDTH_BUILDINGS + 1.500 * Global.WIDTH_ROADS, 5,
  • 0 - Global.WIDTH_MAP / 2 + 2 * Global.WIDTH_BUILDINGS + 1.500 * Global.WIDTH_ROADS);
  • Global.LOCATION_MONORAIL[1] = Vector(0 - Global.WIDTH_MAP / 2 + 5 * Global.WIDTH_BUILDINGS + 4.500 * Global.WIDTH_ROADS, 5,
  • 0 - Global.WIDTH_MAP / 2 + 2 * Global.WIDTH_BUILDINGS + 1.500 * Global.WIDTH_ROADS);
  • Global.LOCATION_MONORAIL[2] = Vector(0 - Global.WIDTH_MAP / 2 + 5 * Global.WIDTH_BUILDINGS + 4.500 * Global.WIDTH_ROADS, 5,
  • 0 - Global.WIDTH_MAP / 2 + 5 * Global.WIDTH_BUILDINGS + 4.500 * Global.WIDTH_ROADS);
  • Global.LOCATION_MONORAIL[3] = Vector(0 - Global.WIDTH_MAP / 2 + 2 * Global.WIDTH_BUILDINGS + 1.500 * Global.WIDTH_ROADS, 5,
  • 0 - Global.WIDTH_MAP / 2 + 5 * Global.WIDTH_BUILDINGS + 4.500 * Global.WIDTH_ROADS);
  • Global.EFFECT_MONORAIL[3] = Last Created Entity;
  • While(Global.II < Count Of(Global.LOCATION_MONORAIL));
  • Create Effect(All Players(All Teams), Sphere, Purple, Global.LOCATION_MONORAIL[Global.II], 10, Visible To);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Global.LOCATION_MONORAIL[Global.II], 10, Visible To);
  • Global.EFFECT_MONORAIL[2 * Global.II + 0] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Good Beam, Global.LOCATION_MONORAIL[Global.II % Count Of(Global.LOCATION_MONORAIL)],
  • Global.LOCATION_MONORAIL[(Global.II + 1) % Count Of(Global.LOCATION_MONORAIL)], Purple, Visible To);
  • Global.LOCATION_MONORAIL[(Global.II + 1) % Count Of(Global.LOCATION_MONORAIL)], Color(Purple), Visible To);
  • Global.EFFECT_MONORAIL[2 * Global.II + 0] = Last Created Entity;
  • Global.II += 1;
  • Wait(0.016, Ignore Condition);
  • End;
  • Global.II = 0;
  • }
  • }
  • rule("SUB: SPAWN POINTS")
  • {
  • event
  • {
  • Subroutine;
  • SPAWN_POINTS;
  • }
  • actions
  • {
  • If(Global.GAME_STATE == 0);
  • If(Slot Of(Event Player) == 0);
  • Teleport(Event Player, Vector(-200, 50, 0));
  • End;
  • If(Slot Of(Event Player) == 1);
  • Teleport(Event Player, Vector(200, 50, 0));
  • End;
  • If(Slot Of(Event Player) == 2);
  • Teleport(Event Player, Vector(0, 50, -200));
  • End;
  • If(Slot Of(Event Player) == 3);
  • Teleport(Event Player, Vector(0, 50, 200));
  • End;
  • If(Slot Of(Event Player) == 4);
  • Teleport(Event Player, Vector(-175, 50, 100));
  • End;
  • If(Slot Of(Event Player) == 5);
  • Teleport(Event Player, Vector(175, 50, -100));
  • End;
  • If(Slot Of(Event Player) == 6);
  • Teleport(Event Player, Vector(-100, 50, -175));
  • End;
  • If(Slot Of(Event Player) == 7);
  • Teleport(Event Player, Vector(100, 50, 175));
  • End;
  • If(Slot Of(Event Player) == 8);
  • Teleport(Event Player, Vector(-175, 50, -100));
  • End;
  • If(Slot Of(Event Player) == 9);
  • Teleport(Event Player, Vector(175, 50, 100));
  • End;
  • If(Slot Of(Event Player) == 10);
  • Teleport(Event Player, Vector(100, 50, -175));
  • End;
  • If(Slot Of(Event Player) == 11);
  • Teleport(Event Player, Vector(-100, 50, 175));
  • End;
  • Set Facing(Event Player, Direction Towards(Position Of(Event Player), Vector(0, 50, 0)), To World);
  • Else;
  • If(Array Contains(Global.LIST_KAIJU, Event Player));
  • Teleport(Event Player, Global.LOCATION_KAIJU_SPAWN[Index Of Array Value(Global.LIST_KAIJU, Event Player)]);
  • Set Facing(Event Player, Direction Towards(Position Of(Event Player), Vector(0, 50, 0)), To World);
  • Else;
  • Teleport(Event Player, Random Value In Array(Global.LOCATION_BUILDINGS) + Vector(0, 10, 0));
  • Teleport(Event Player, Random Value In Array(Global.LOCATION_BUILDINGS));
  • End;
  • End;
  • }
  • }
  • rule("SUB: OPENING CINEMATIC")
  • {
  • event
  • {
  • Subroutine;
  • OPENING_CINEMATIC;
  • }
  • actions
  • {
  • Clear Status(Global.LIST_CIVILIAN, Phased Out);
  • Set Aim Speed(Global.LIST_CIVILIAN[0], 0);
  • Start Camera(All Players(All Teams), World Vector Of(Vector(0, 1, 0.750) * 2, Global.LIST_CIVILIAN[0], Rotation And Translation),
  • Eye Position(Global.LIST_CIVILIAN[0]) + Vector(0, 1, 0) * 0.300, 0);
  • Wait(5, Ignore Condition);
  • disabled Start Camera(All Players(All Teams), World Vector Of(Vector(0, 1, 0.750) * 3, Global.LIST_CIVILIAN[0], Rotation And Translation),
  • Eye Position(Global.LIST_CIVILIAN[0]) + Vector(0, 1, 0) * 0.500, 0.001);
  • Start Camera(All Players(All Teams), World Vector Of(Vector(0, 1, 1) * 2, Global.LIST_CIVILIAN[0], Rotation And Translation)
  • + Vector(0, 1 / Global.JJ * Sine From Degrees(100 * Global.JJ * 360), 0), Eye Position(Global.LIST_CIVILIAN[0]) + Vector(0, 1,
  • 0) * 0.100, 0);
  • Wait(2.500, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("OVERWATCH CITY: JUNE 18TH, 9:23 PM"));
  • Wait(2.500, Ignore Condition);
  • Communicate(Global.LIST_CIVILIAN[0], Emote Up);
  • Wait(6, Ignore Condition);
  • Play Effect(All Players(All Teams), Ring Explosion, White, World Vector Of(Vector(0, 0, -1) * 90, Global.LIST_CIVILIAN[0],
  • Stop Camera(Global.LIST_CIVILIAN[0]);
  • Wait(0.100, Ignore Condition);
  • Start Camera(Global.LIST_CIVILIAN[0], World Vector Of(Vector(0, 1, 1) * 2, Global.LIST_CIVILIAN[0], Rotation And Translation)
  • + Vector(0, 1 / Global.JJ * Sine From Degrees(100 * Global.JJ * 360), 0), Eye Position(Global.LIST_CIVILIAN[0]) + Vector(0, 1,
  • 0) * 0.100, 0);
  • Wait(2.500, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("DISASTER STRUCK..."));
  • Wait(2.500, Ignore Condition);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(White), World Vector Of(Vector(0, 0, -1) * 90, Global.LIST_CIVILIAN[0],
  • Rotation And Translation), 200);
  • Set Status(Global.LIST_CIVILIAN, Null, Stunned, 4);
  • Wait(5, Ignore Condition);
  • Play Effect(All Players(All Teams), Ring Explosion, White, World Vector Of(Vector(0, 0, -1) * 85, Global.LIST_CIVILIAN[0],
  • Global.JJ = 3;
  • Chase Global Variable At Rate(JJ, 8, 5 / 2, Destination and Rate);
  • Wait(2, Ignore Condition);
  • Create In-World Text(All Players(All Teams), Custom String("{0}: \"WHAT THE HELL WAS THAT?\"", Hero Of(Global.LIST_CIVILIAN[0])),
  • Position Of(Global.LIST_CIVILIAN[0]) + Vector(0, 0.500, 0), 1, Do Not Clip, Visible To Position and String, Color(White),
  • Default Visibility);
  • Global.LIST_CIVILIAN[0].EFFECT_ATOMIC_BEAM[0] = Last Text ID;
  • Wait(2, Ignore Condition);
  • Destroy In-World Text(Global.LIST_CIVILIAN[0].EFFECT_ATOMIC_BEAM[0]);
  • Wait(1, Ignore Condition);
  • Play Effect(All Players(All Teams), Ring Explosion, Color(White), World Vector Of(Vector(0, 0, -1) * 85, Global.LIST_CIVILIAN[0],
  • Rotation And Translation), 200);
  • Set Status(Global.LIST_CIVILIAN, Null, Stunned, 4);
  • Global.JJ = 2;
  • Chase Global Variable At Rate(JJ, 8, 6 / 2, Destination and Rate);
  • Wait(5, Ignore Condition);
  • Play Effect(All Players(All Teams), Ring Explosion, White, World Vector Of(Vector(0, 0, -1) * 80, Global.LIST_CIVILIAN[0],
  • Play Effect(All Players(All Teams), Ring Explosion, Color(White), World Vector Of(Vector(0, 0, -1) * 80, Global.LIST_CIVILIAN[0],
  • Rotation And Translation), 200);
  • Set Status(Global.LIST_CIVILIAN, Null, Knocked Down, 4);
  • Global.JJ = 1;
  • Chase Global Variable At Rate(JJ, 8, 7 / 2, Destination and Rate);
  • Wait(5, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("RUN FOR YOUR LIVES EVERYONE! IT'S..."));
  • Create In-World Text(All Players(All Teams), Custom String("{0}: \"RUN FOR YOUR LIVES EVERYONE! IT'S...\"", Hero Of(
  • Global.LIST_CIVILIAN[0])), Position Of(Global.LIST_CIVILIAN[0]) + Vector(0, 0.500, 0), 1, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Global.LIST_CIVILIAN[0].EFFECT_ATOMIC_BEAM[0] = Last Text ID;
  • Wait(5, Ignore Condition);
  • Destroy In-World Text(Global.LIST_CIVILIAN[0].EFFECT_ATOMIC_BEAM[0]);
  • While(Global.II < Count Of(Global.LIST_KAIJU));
  • Start Camera(All Players(All Teams), (Global.LOCATION_KAIJU_SPAWN[Global.II] + Vector(0, 1.100, 0)) / 1.100,
  • Global.LOCATION_KAIJU_SPAWN[Global.II] + Vector(0, 25, 0), 10);
  • Wait(1, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("{0}ZILLA", Hero Of(Global.LIST_KAIJU[Global.II])));
  • Communicate(Global.LIST_KAIJU[Global.II], Emote Up);
  • Stop Camera(Global.LIST_KAIJU[Global.II]);
  • Wait(0.100, Ignore Condition);
  • Global.JJ = 1;
  • Chase Global Variable At Rate(JJ, 8, 7 / 2, Destination and Rate);
  • Start Camera(All Players(All Teams), (Global.LOCATION_KAIJU_SPAWN[Global.II] + Vector(0, 1.100, 0)) / 1.100 + Vector(0,
  • 1 / Global.JJ * Sine From Degrees(100 * Global.JJ * 360), 0), Global.LOCATION_KAIJU_SPAWN[Global.II] + Vector(0, 25, 0), 0);
  • Wait(8, Ignore Condition);
  • Global.II += 1;
  • End;
  • Global.II = 0;
  • Stop Camera(All Players(All Teams));
  • Set Aim Speed(Global.LIST_CIVILIAN[0], 100);
  • Set Status(Global.LIST_CIVILIAN, Null, Phased Out, 9999);
  • Global.JJ = 0;
  • }
  • }
  • rule("SUB: RESET HEALTH POOLS")
  • {
  • event
  • {
  • Subroutine;
  • RESET_HEALTH_POOLS;
  • }
  • actions
  • {
  • Remove All Health Pools From Player(Event Player);
  • If(Array Contains(Global.LIST_KAIJU, Event Player) == True);
  • Add Health Pool To Player(Event Player, Health, 10 - Round To Integer(Max Health(Event Player), Up), True, False);
  • Add Health Pool To Player(Event Player, Health, 100 - Round To Integer(Max Health(Event Player), Up), True, False);
  • Event Player.HEALTH_POOLS[0] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[1] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[2] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[3] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[4] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[5] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[6] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[7] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[8] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[9] = Last Created Health Pool;
  • Add Health Pool To Player(Event Player, Health, 10000, True, False);
  • Add Health Pool To Player(Event Player, Health, 9990, True, False);
  • Event Player.HEALTH_POOLS[10] = Last Created Health Pool;
  • Else If(Array Contains(Global.LIST_CIVILIAN, Event Player) == True);
  • Add Health Pool To Player(Event Player, Health, 100 - Round To Integer(Max Health(Event Player), Up), True, False);
  • Event Player.HEALTH_POOLS[0] = Last Created Health Pool;
  • Else If(Array Contains(Global.LIST_VEHICLE, Event Player) == True);
  • Else If(Array Contains(Global.LIST_MECH, Event Player) == True);
  • Add Health Pool To Player(Event Player, Health, 1000 - Round To Integer(Max Health(Event Player), Up), True, False);
  • Event Player.HEALTH_POOLS[0] = Last Created Health Pool;
  • End;
  • }
  • }
  • rule("SUB: DAMAGE BUILDING")
  • {
  • event
  • {
  • Subroutine;
  • DAMAGE_BUILDING;
  • }
  • actions
  • {
  • If(Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] == Global.BUILDING_HITS_PER_SECTION * 0);
  • Kill(Filtered Array(Remove From Array(All Players(All Teams), Global.LIST_KAIJU), Distance Between(
  • Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING], Current Array Element) <= Global.WIDTH_BUILDINGS / 2), Event Player);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Cloud, White, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Cloud, Color(White), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Modify Global Variable(EFFECT_RUBBLE, Append To Array, Last Created Entity);
  • Modify Global Variable(EFFECT_BUILDING_ONE, Remove From Array By Index, Event Player.CLOSEST_BUILDING);
  • Modify Global Variable(EFFECT_BUILDING_TWO, Remove From Array By Index, Event Player.CLOSEST_BUILDING);
  • Modify Global Variable(EFFECT_BUILDING_THREE, Remove From Array By Index, Event Player.CLOSEST_BUILDING);
  • Modify Global Variable(LOCATION_BUILDINGS, Remove From Array By Index, Event Player.CLOSEST_BUILDING);
  • Modify Global Variable(HEALTH_BUILDINGS, Remove From Array By Index, Event Player.CLOSEST_BUILDING);
  • If((Filtered Array(Global.LOCATION_BUILDINGS, Global.LOCATION_POWERUP == Current Array Element) == Global.LOCATION_POWERUP)
  • == False);
  • Destroy Effect(Global.EFFECT_POWERUP[0]);
  • Destroy In-World Text(Global.EFFECT_POWERUP[1]);
  • Destroy Icon(Global.EFFECT_POWERUP[2]);
  • Global.EFFECT_POWERUP = Empty Array;
  • Global.LOCATION_POWERUP = Empty Array;
  • End;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.125);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Purple, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Purple), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.125 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.250);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Red, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Red), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.250 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.375);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Orange, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Orange), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.375 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.500);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Yellow, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Yellow), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.500 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.625);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Lime Green, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Lime Green), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.625 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.750);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Green, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Green), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.750 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 0.875);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 0.875 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • If(Global.EFFECT_BUILDING_TWO[Event Player.CLOSEST_BUILDING] != Empty Array);
  • Destroy Effect(Global.EFFECT_BUILDING_TWO[Event Player.CLOSEST_BUILDING]);
  • End;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.125);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Purple, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Purple), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.125 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.250);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Red, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Red), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.250 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.375);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Orange, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Orange), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.375 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.500);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Yellow, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Yellow), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.500 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.625);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Lime Green, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Lime Green), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.625 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.750);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Green, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Green), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.750 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 1.875);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 1.875 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • If(Global.EFFECT_BUILDING_THREE[Event Player.CLOSEST_BUILDING] != Empty Array);
  • Destroy Effect(Global.EFFECT_BUILDING_THREE[Event Player.CLOSEST_BUILDING]);
  • End;
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.125);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Purple, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Purple), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.125 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.250);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Red, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Red), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.250 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.375);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Orange, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Orange), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.375 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.500);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Yellow, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Yellow), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.500 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.625);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Lime Green, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Lime Green), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.625 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.750);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Green, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Green), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.750 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 2.875);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, Turquoise, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(Turquoise), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • If(
  • Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] > Global.BUILDING_HITS_PER_SECTION * 2.875 && Global.HEALTH_BUILDINGS[Event Player.CLOSEST_BUILDING] <= Global.BUILDING_HITS_PER_SECTION * 3);
  • Destroy Effect(Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING]);
  • Create Effect(All Players(All Teams), Light Shaft, White, Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Create Effect(All Players(All Teams), Light Shaft, Color(White), Global.LOCATION_BUILDINGS[Event Player.CLOSEST_BUILDING],
  • Global.WIDTH_BUILDINGS / 2, Visible To);
  • Global.EFFECT_BUILDING_ONE[Event Player.CLOSEST_BUILDING] = Last Created Entity;
  • End;
  • }
  • }
  • rule("SUB: VEHICLE POWERUP")
  • rule("SUB: MECH POWERUP")
  • {
  • event
  • {
  • Subroutine;
  • VEHICLE_POWERUP;
  • MECH_POWERUP;
  • }
  • actions
  • {
  • Modify Global Variable(LIST_CIVILIAN, Remove From Array By Value, Event Player);
  • Modify Global Variable(LIST_VEHICLE, Append To Array, Event Player);
  • If(Event Player.TYPE_VEHICLE == Custom String("AMPLIFIER"));
  • Start Forcing Player To Be Hero(Event Player, Hero(Baptiste));
  • Stop Forcing Player To Be Hero(Event Player);
  • Modify Global Variable(LIST_MECH, Append To Array, Event Player);
  • If(Event Player.TYPE_MECH == Custom String("MECH: OX"));
  • Start Forcing Player To Be Hero(Event Player, Hero(Orisa));
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("BOMB"));
  • If(Event Player.TYPE_MECH == Custom String("MECH: RAT"));
  • Start Forcing Player To Be Hero(Event Player, Hero(Junkrat));
  • Stop Forcing Player To Be Hero(Event Player);
  • While(Is Using Ultimate(Event Player) == False);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Press Button(Event Player, Ultimate);
  • End;
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("TREMOR SUIT"));
  • If(Event Player.TYPE_MECH == Custom String("MECH: LION"));
  • Start Forcing Player To Be Hero(Event Player, Hero(Reinhardt));
  • Stop Forcing Player To Be Hero(Event Player);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Create Effect(Event Player, Light Shaft, Yellow, Position Of(Event Player) + Vector(0, -15, 0), 100,
  • Visible To Position and Radius);
  • Event Player.EFFECT_ATOMIC_BEAM[0] = Last Created Entity;
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("JETPACK"));
  • If(Event Player.TYPE_MECH == Custom String("MECH: RAPTOR"));
  • Start Forcing Player To Be Hero(Event Player, Hero(Pharah));
  • Stop Forcing Player To Be Hero(Event Player);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("MECH"));
  • If(Event Player.TYPE_MECH == Custom String("MECH: RABBIT"));
  • Start Forcing Player To Be Hero(Event Player, Hero(D.Va));
  • Stop Forcing Player To Be Hero(Event Player);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • End;
  • If(Event Player.TYPE_VEHICLE == Custom String("TANK"));
  • If(Event Player.TYPE_MECH == Custom String("MECH: TANK"));
  • Start Forcing Player To Be Hero(Event Player, Hero(Bastion));
  • Stop Forcing Player To Be Hero(Event Player);
  • While(Is Using Ultimate(Event Player) == False);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Press Button(Event Player, Ultimate);
  • End;
  • End;
  • Stop Forcing Player To Be Hero(Event Player);
  • Set Ultimate Charge(Event Player, 100);
  • If(Event Player.TYPE_MECH == Custom String("MECH: RAT") || Event Player.TYPE_MECH == Custom String("MECH: TANK"));
  • Press Button(Event Player, Button(Ultimate));
  • End;
  • }
  • }
  • rule("SUB: START KAIJU ATOMIC BEAM")
  • {
  • event
  • {
  • Subroutine;
  • START_KAIJU_ATOMIC_BEAM;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Burning, 9999);
  • Wait(0.300, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Yellow, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 10 ^ 0.200 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null, False),
  • 10 ^ 0.200 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Good Aura, Color(Yellow), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 10 ^ 0.200 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null,
  • False), 10 ^ 0.200 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Event Player.EFFECT_ATOMIC_BEAM[0] = Last Created Entity;
  • Wait(0.300, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Lime Green, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Create Effect(All Players(All Teams), Good Aura, Color(Lime Green), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 10 ^ 0.400 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null,
  • False), 10 ^ 0.400 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Event Player.EFFECT_ATOMIC_BEAM[1] = Last Created Entity;
  • Wait(0.300, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Green, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 10 ^ 0.600 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null, False),
  • 10 ^ 0.600 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Good Aura, Color(Green), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 10 ^ 0.600 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null,
  • False), 10 ^ 0.600 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Event Player.EFFECT_ATOMIC_BEAM[2] = Last Created Entity;
  • Wait(0.300, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Turquoise, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Create Effect(All Players(All Teams), Good Aura, Color(Turquoise), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 10 ^ 0.800 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null,
  • False), 10 ^ 0.800 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Event Player.EFFECT_ATOMIC_BEAM[3] = Last Created Entity;
  • Wait(0.300, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Aqua, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 10 ^ 1 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null, False),
  • 10 ^ 1 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Good Aura, Color(Aqua), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 10 ^ 1 * Event Player.SCALE_PLAYER * Global.DISTANCE_KAB, Null, Null,
  • False), 10 ^ 1 * Event Player.SCALE_PLAYER * Global.SPREAD_KAB + Global.BASE_KAB, Visible To Position and Radius);
  • Event Player.EFFECT_ATOMIC_BEAM[4] = Last Created Entity;
  • }
  • }
  • rule("SUB: END KAIJU ATOMIC BEAM")
  • {
  • event
  • {
  • Subroutine;
  • END_KAIJU_ATOMIC_BEAM;
  • }
  • actions
  • {
  • Clear Status(Event Player, Burning);
  • Wait(0.300, Ignore Condition);
  • Destroy Effect(Event Player.EFFECT_ATOMIC_BEAM[0]);
  • Event Player.EFFECT_ATOMIC_BEAM[0] = Empty Array;
  • Wait(0.300, Ignore Condition);
  • Destroy Effect(Event Player.EFFECT_ATOMIC_BEAM[1]);
  • Event Player.EFFECT_ATOMIC_BEAM[1] = Empty Array;
  • Wait(0.300, Ignore Condition);
  • Destroy Effect(Event Player.EFFECT_ATOMIC_BEAM[2]);
  • Event Player.EFFECT_ATOMIC_BEAM[2] = Empty Array;
  • Wait(0.300, Ignore Condition);
  • Destroy Effect(Event Player.EFFECT_ATOMIC_BEAM[3]);
  • Event Player.EFFECT_ATOMIC_BEAM[3] = Empty Array;
  • Wait(0.300, Ignore Condition);
  • Destroy Effect(Event Player.EFFECT_ATOMIC_BEAM[4]);
  • Event Player.EFFECT_ATOMIC_BEAM[4] = Empty Array;
  • }
  • }
Join the Workshop.codes Discord