From 5c62a50ffe4ea0d3d08718ee971fa38e3186b6dd Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Fri, 3 May 2019 20:55:55 -0700 Subject: [PATCH 01/10] change variable definitions for upcoming changes --- race-framework/design.md | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index 13ec6d8..da82bcc 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -4,27 +4,21 @@ A - checkpoint positions - B - checkpoint sizes + B - checkpoint sizes. B[0] is spawn facing vector instead of size C - spawn room settings [ - 0: Race start facing - 1: gather point - 2: gather point size - 3: gather spawn facing + 0: gather point center + 1: gather point width + 2: gather point length + 3: options spot 4: Leaderboard position - 5: Leaderboard scale - 6: poll option 1 position - 7: poll option 2 position - 8: moderator spot + 5: moderator spot ] D - misc settings [ 0: Checkpoint distance adjustment 1: Team const - which team to teleport 2: Number of capture points 3: Number of payload checkpoints - 4: Floor is lava mode? - 5: Number of ground touches allowed - 6: Ground time allowed ] E-H - intermediate values @@ -35,13 +29,13 @@ L - Leaderboard M - is top score disconnected? N - finish line checkpoint index - O - P - code table (P for puzzle) + O - + P - Q - Debug R - Enable/disable debug hud S T - U + U - Server uptime V W - Fastest time X - @@ -65,7 +59,7 @@ P - Checkpoint index Q - Attempts R - Best time array - S - Last times + S - Last times array T - Play time U - finishes V - available, should use for a statistic From 0457fd9d135691f0264c6b83de9343344193809a Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Fri, 3 May 2019 22:09:06 -0700 Subject: [PATCH 02/10] update to match current implementation --- race-framework/design.md | 213 +++++++++++++++++++++++++++------------ 1 file changed, 146 insertions(+), 67 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index da82bcc..a5891fb 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -10,9 +10,11 @@ 0: gather point center 1: gather point width 2: gather point length - 3: options spot - 4: Leaderboard position - 5: moderator spot + 3: gather point angle //degrees in world space + 4: options spot + 5: leaderboard position + 6: leaderboard scale + 7: operator spot ] D - misc settings [ 0: Checkpoint distance adjustment @@ -45,10 +47,10 @@ ## Player Variable Definitions A-D - Main loop intermediate values - E - Edit mode adjustment scale - F - Poll mode vote choice - G - Ground touch counter - H - Ground touch start time + E - + F - + G - + H - I J K @@ -242,7 +244,7 @@ Rule type: Ongoing - Each Player W <= 999 //starting best time R <= Q //default debug hud toggle to debug state Pause match time - Set match time 11:11 (671 seconds) + Set match time (671) //display "11:11" because it looks nice Set objective description ("go fast!") State <= 20 @@ -307,49 +309,90 @@ Rule type: Ongoing - Each Player Clipping: Yes Reevaluation: Visible to and string ) - E <= E + (down * G) + E <= E + (down * G) + State <= 30 **Global state 30 - Create finish checkpoint and icon** - - [create goal effect] - [create goal icon] + Create effect( + visible to: All players + type: sphere + color: yellow + position: A[N] + radius: B[N] + ) + + Create icon( + visible to: filtered array(all players, cu:P == N) + position: A[N] + icon: exclamation mark + ) State <= 40 -**Global state 40 - Create white checkpoint 2-4** +**Global state 40 - Create white checkpoint 1-4** - - [Create effects] + (repeat 1 to 4) + create effect ( + visible to: filtered array( all players, cu:P < {index} && {index} < N ) + type: sphere + color: white + position: A[{index}] + radius: B[{index}] + ) State <= 41 **Global state 41 - Create white checkpoint 5-9** - [Create effects] + (repeat 5 to 9) + create effect ( + visible to: filtered array( all players, cu:P < {index} && {index} < N ) + type: sphere + color: white + position: A[{index}] + radius: B[{index}] + ) State <= 42 **Global state 42 - Create white checkpoint 10-14** - [Create effects] + (repeat 10 to 14) + create effect ( + visible to: filtered array( all players, cu:P < {index} && {index} < N ) + type: sphere + color: white + position: A[{index}] + radius: B[{index}] + ) State <= 43 **Global state 43 - Create white checkpoint 15-19** - [Create effects] + (repeat 15 to 19) + create effect ( + visible to: filtered array( all players, cu:P < {index} && {index} < N ) + type: sphere + color: white + position: A[{index}] + radius: B[{index}] + ) State <= 90 **Global state 90 - complete global init** Cond: is game in progress == true + U <= 0 + chase global variable at rate(U, 10000, 1, none) //server uptime counter + Y <= true //init complete State <= 999 - Global state 999 - Wait state (no actual rule) +**Global state 999 - Wait state (no actual rule)** ## Player State Machine @@ -363,18 +406,15 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Disable built in mode respawning(event player) //this doesnft even work Set respawn max time(ep, 99) //long respawn - Start forcing throttle(ep, stop) //stop player during init Disallow button(ep, ultimate) //disallow ultimate - - E <= 1 //start edit adjust at max size - + P <= 999 Q <= 0 //init attempts R <= [] //empty best times array S <= [] // empty last times array T <= 0 //init total play time timer - Chase player variable at rate(T, 5999, 1/s) //chase to max of 99:59 + Chase player variable at rate(T, 10000, 1/s) //play time counter U <= 0 // init completions W <= 999 //initial best time @@ -383,29 +423,49 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` **Player state 1 - hud creation part 1 - Top text** - Create reset instructions on top - sort 9 - Visible to: Filtered array(Event player, current:state != 20 ) + create hud text( //reset instructions + Visible to: Filtered array(Event player, current:state != 20 ) + text: "use ultimate ability = try again" + location: top + sort order: 9 + } - Create start instructions on top - sort 9 - Visible to: Filtered array(Event player, current:state == 20 ) + create hud text( //game start instructions + Visible to: Filtered array(Event player, current:state == 20 ) + header: "use ultimate ability -> start" + location: top + sort order: 9 + header color: blue + } - Create second display on top - sort 10 + create hud text( //run timer + Visible to: event player + header: "{ep:X} sec" + location: top + sort order: 10 + } Create hud text ( - Text: "Moderate -> {A}" - sort: 12 visible to: filtered array(ep, cu:state == 70) + header: "Moderate -> {A}" + sort: 12 Location: top ) + wait .25 //avoid processing limits + + state <= 2 **Player state 2 - hud creation part 2 - Statistics** - Create records header on left - sort -10 - Create attempts text - sort -9 - Create completions text - sort -8 - Create play time text - sort -7 + {Create records header on left - sort -10} + {Create attempts text - sort -9} + {Create completions text - sort -8} + {Create "total game time" text - sort -7} + {Create "your game time" text - sort -6} + + wait .25 //avoid processing limits State <= 3 @@ -415,8 +475,10 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Create "-------" text - sort -2 Create fastest times text - sort -1 - (repeat x4) - Create 1st fastest time text - sort 0-3 + (repeat 0 to 4) + {Create {index}+1 fastest time text - sort {index}} + + wait .25 //avoid processing limits State <= 4 @@ -425,46 +487,46 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Create "-------" text - sort 8 Create "times" text - sort 9 - (repeat x4) - Create 1st most recent completion time - sort 10-13 + (repeat 0 to 4) + {Create {index + 1} most recent completion time - sort 10 + {index}} + wait .25 //avoid processing limits + State <= 5 **Player state 5 - hud creation part 5 - Checkpoint display** Create effect ( - Visible to: filtered array (ep, P < gN) - Type: Sphere - Color: Purple - Position: gA[P] - Radius: gB[P] - Reevaluation ( visible to, position, and scale) + Visible to: filtered array (ep, P < gN) + Type: Sphere + Color: Purple + Position: gA[P] + Radius: gB[P] + Reevaluation ( visible to, position, and scale) ) Create icon ( - Visible to: filtered array (ep, P < gN) - Type: diamond - Color: white - Position: gA[P] - Reevaluation ( visible to, position, and scale) + Visible to: filtered array (ep, P < gN) + Type: diamond + Color: white + Position: gA[P] + Reevaluation ( visible to, position, and scale) ) State <= 9 **Player state 9 - Debug hud creation** - - [Make the debug hud with the following visable do condition] + {Make the debug hud with the following visable do condition} Filtered array (event player, gR) **Player state 10 - Spawn player and prep waiting state** - - Respawn(ep) P <= 999 X <= 0 + + stop forcing throttle(ep) Set status(ep,invincible,9999) - Stop forcing throttle(ep) State <= 11 @@ -482,13 +544,19 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` **Player state 15 - Teleport to gather room** - - A <= gC[2] - B <= random real(-A,A) + //Generate a position in world space inside the rotated rectangle + //defined in the gather room settings array. + A <= gC[1] C <= random real(-A,A) - D <= gC[1] + (B,0,C) - teleport(ep,D) - Set facing(ep,gC[3]) + A <= gC[2] + D <= random real(-A,A) + A <= Direction from angles(gC[3] + 90, 0) * C + B <= Direction from angles(gC[3], 0) * D + D <= gC[0] + (A,0,B) + + teleport(ep,D) //teleport to spot + + Set facing(ep,direcion towards(D, C[4]) //look towards the leaderboard State <= 20 @@ -496,14 +564,13 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Cond: button held(event playser, interact) == true - throttle(event player, stop) set status(ep, root, 9999) wait .25 State <= 21 //start spawn in process **Player state 20 and left spawn - Return player to gather point** - Cond: Team of(event player) != D[1] //player not in teleport group and spawn doors open + Cond: Team of(event player) != D[1] //player not in teleport group and spawn door is open Cond: In spawn(event player) == false Cond: gQ == false // don't force it in debug @@ -540,12 +607,15 @@ Rule type: Ongoing - each player, team 2, slot 1 Teleport(ep,gA[0]) //race start pos Set facing(ep, gC[0]) //race start facing P <= 1 - A <= 0.7 //adjust for feel + A <= 0.8 //adjust for feel Big message(3) + Play effect(ep, buff explosion sound, white, position of(ep), 35) Wait(A) Big message(2) + Play effect(ep, buff explosion sound, white, position of(ep), 35) Wait(A) Big message(1) + Play effect(ep, buff explosion sound, white, position of(ep), 35) Wait(A) Clear status(ep, root) @@ -553,6 +623,7 @@ Rule type: Ongoing - each player, team 2, slot 1 Stop throttle(event player) Big message ("Go!") + Play effect(ep, buff explosion sound, white, position of(ep), 999) X <= 0 Chase player variable(ep, X, 999, 1) // start race timer @@ -563,6 +634,11 @@ Rule type: Ongoing - each player, team 2, slot 1 Cond: Distance between( pos of(ep), gA[P]) < gB[P] + D[0] ) + A <= gA[P] + B <= gB[P] + Play effect(ep, ring explosion, white, A, B * 2.5) + Play effect(ep, explosion sound, white, position of(ep), 80) + P += 1 Abort if (P < N) State <= 40 @@ -571,6 +647,9 @@ Rule type: Ongoing - each player, team 2, slot 1 Cond: Distance between( pos of(Event player), gA[gN]) < gB[gN] + D[0] ) + C <= gA[P] + Play effect(ep, ring explosion sound, white, C, 999) + P <= 999 State <= 50 @@ -611,7 +690,7 @@ Rule type: Ongoing - each player, team 2, slot 1 B <= sorted array(A) //Sort all 6 R <= B[0:4] //Save the best 5 - Wait 2 //extra wait on completion, adjust for feel + Wait 1.5 //extra wait on completion, adjust for feel State <= 90 @@ -645,10 +724,10 @@ Rule type: Ongoing - each player, team 2, slot 1 **Player state 90 - Start reset sequence** Stop chasing player variable(ep, X) - Throttle(Event player, stop) + Start forcing throttle(Event player, stop) Q += 1 // increase attempt counter - Wait 1 //wait during reset, adjust for feel + Wait 1.5 //wait during reset, adjust for feel State <= 10 From f78417eddc9a8e4fc27bb2aad72b9857e96a9ca6 Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Fri, 3 May 2019 22:11:14 -0700 Subject: [PATCH 03/10] update operator mode to use new array position --- race-framework/design.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index a5891fb..fead142 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -580,7 +580,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Rule type: Ongoing - each player, team 2, slot 1 - Cond: distance between( position of(ep), gC[8]) < 3 + Cond: distance between( position of(ep), gC[7]) < 3 wait 3 abort A <= 1 @@ -716,7 +716,7 @@ Rule type: Ongoing - each player, team 2, slot 1 **Player state 70 and leave operator spot - go back to wait mode** - Cond: distance between( position of(ep), gC[8]) > 3 + Cond: distance between( position of(ep), gC[7]) > 3 State <= 20 From c6c63dba862cf7ae894d426508f8013b98691c56 Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Fri, 3 May 2019 23:12:48 -0700 Subject: [PATCH 04/10] update to match debugging, spawn improvements --- race-framework/design.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index fead142..bf80cb9 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -11,14 +11,14 @@ 1: gather point width 2: gather point length 3: gather point angle //degrees in world space - 4: options spot - 5: leaderboard position - 6: leaderboard scale + 4: leaderboard position + 5: leaderboard scale + 6: options spot 7: operator spot ] D - misc settings [ 0: Checkpoint distance adjustment - 1: Team const - which team to teleport + 1: Team const - Which team does gather room belong to? 2: Number of capture points 3: Number of payload checkpoints ] @@ -64,7 +64,7 @@ S - Last times array T - Play time U - finishes - V - available, should use for a statistic + V - W - Best time X - Run time Y - @@ -85,8 +85,6 @@ Rule type: Player Died State <= 90 - - **Ultimate pressed - quick reset** Rule type: Ongoing - Each Player @@ -535,12 +533,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Cond: is alive(ep) == true Cond: is in spawn room(ep) == true - Skip if ( team of(ep) != gD[1] ) { - //ep in teleport group - State <= 15 - Abort - } - State <= 20 + State <= 15 **Player state 15 - Teleport to gather room** @@ -552,11 +545,18 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` D <= random real(-A,A) A <= Direction from angles(gC[3] + 90, 0) * C B <= Direction from angles(gC[3], 0) * D - D <= gC[0] + (A,0,B) + D <= gC[0] + A + B teleport(ep,D) //teleport to spot - Set facing(ep,direcion towards(D, C[4]) //look towards the leaderboard + Set facing ( //look towards leaderboard along level plane + player: ep + direction: + direction from angles( + horizontal angle: horizontal angle from direction ( direction towards(D, C[4]) ) + vertical angle: 0 + ) + ) State <= 20 @@ -570,7 +570,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` **Player state 20 and left spawn - Return player to gather point** - Cond: Team of(event player) != D[1] //player not in teleport group and spawn door is open + Cond: Team of(event player) == D[1] //Gather room belongs to player, so the doors are open and they count as in spawn Cond: In spawn(event player) == false Cond: gQ == false // don't force it in debug From 32855fbb025c4e7a8474f8cf4d8b5f26fe50cebc Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Fri, 3 May 2019 23:23:18 -0700 Subject: [PATCH 05/10] update terminology --- race-framework/design.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index bf80cb9..26767cb 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -6,7 +6,7 @@ A - checkpoint positions B - checkpoint sizes. B[0] is spawn facing vector instead of size - C - spawn room settings [ + C - gather room settings [ 0: gather point center 1: gather point width 2: gather point length @@ -148,18 +148,16 @@ All below rules have an implied condition of `"gZ == {state in rule name}"` B <= [{checkpoint sizes}] State <=2 -**Global state 2 - spawn room config** +**Global state 2 - gather room config** - C <= [{spawn settings}] + C <= [{gather settings}] State <= 3 **Global state 3 - misc config** Q <= {true/false} //debug state - Start forcing spawn room(team 1, {room}) - Start forcing spawn room(team 2, {room}) D <= [{config settings}] State <= 10 From 20398a25fcbe842021b62e71014b70584bfce7af Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Sat, 4 May 2019 01:29:58 -0700 Subject: [PATCH 06/10] reformat readme, add gather room editor --- README.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f0f937b..2a16d9c 100644 --- a/README.md +++ b/README.md @@ -4,23 +4,20 @@ This repository hosts a framework and associated tools for creating Overwatch mu ## Codes -### maps for 0.81: +### Maps - Hanamura: BJ8EH - Eichenwalde: 8TAHG - (other maps will be ported soon) + Hanamura (v0.81): BJ8EH + Eichenwalde (v0.81): 8TAHG + Junkertown (v0.7): YJ9E6 + Test map (v0.7): YJ9E6 -### Map Maker +### Tools - v0.3: CSEXD + Map maker v0.3: CSEXD + Gather room editor for v0.9: 3TVK1 -### Old versions: - - Test map v0.7: YJ9E6 - Eichenwalde v0.7: VRGJP - Junkertown v0.7: WFGP5 - Hanamura v0.7: JKW3A +### Early development versions: V0.1 - GEW3Z V0.4 - 5VZD2 From 8800538d7e468f68de4f0628bfad78bfcfdfe6cb Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Sat, 4 May 2019 11:56:30 -0700 Subject: [PATCH 07/10] updates, options system --- race-framework/design.md | 75 ++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 14 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index 26767cb..eca62e6 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -37,7 +37,7 @@ R - Enable/disable debug hud S T - U - Server uptime + U V W - Fastest time X - @@ -57,7 +57,7 @@ L M N - O + O - Option array P - Checkpoint index Q - Attempts R - Best time array @@ -164,6 +164,8 @@ All below rules have an implied condition of `"gZ == {state in rule name}"` **Global State 10 - Unlock map** + Disable built-in game mode completion + Disable built-in game mode anouncer Skip if (D[2] == 0 AND D[3] == 0) { //skip if no capture points for payload, so skirmish maps state <= 11 @@ -187,9 +189,7 @@ All below rules have an implied condition of `"gZ == {state in rule name}"` Wait 1 Set match time(0) Wait 1 - - Disable built-in completion - + State <= 15 // unlocking state **Global state 15 - Freeze players** @@ -241,6 +241,8 @@ Rule type: Ongoing - Each Player R <= Q //default debug hud toggle to debug state Pause match time Set match time (671) //display "11:11" because it looks nice + skip if ( D[2] != 1 && D[3] != 0 ) { + set match time(1111) //control maps display in seconds Set objective description ("go fast!") State <= 20 @@ -382,9 +384,6 @@ Rule type: Ongoing - Each Player Cond: is game in progress == true - U <= 0 - chase global variable at rate(U, 10000, 1, none) //server uptime counter - Y <= true //init complete State <= 999 @@ -406,6 +405,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` P <= 999 + O <= [false, false] Q <= 0 //init attempts R <= [] //empty best times array S <= [] // empty last times array @@ -447,6 +447,20 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` sort: 12 Location: top ) + + Create hud text ( //option select, false + visible to: filtered array(ep, state == 80) && O[A] + header: "#{A+1}: off" + sort: 12 + Location: top + ) + + Create hud text ( //option select, true + visible to: filtered array(ep, state == 80) && O[A] + header: "#{A+1}: on" + sort: 12 + Location: top + ) wait .25 //avoid processing limits @@ -458,7 +472,6 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` {Create records header on left - sort -10} {Create attempts text - sort -9} {Create completions text - sort -8} - {Create "total game time" text - sort -7} {Create "your game time" text - sort -6} wait .25 //avoid processing limits @@ -574,13 +587,21 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` State <= 15 +**player state 20 and in options spot - start options mode** + + Cond: distance between( position of(ep), gC[6]) < 1.5 + + wait 1 abort + A <= 0 + State <= 80 + **player state 20 and in operator spot - start operator mode** Rule type: Ongoing - each player, team 2, slot 1 - Cond: distance between( position of(ep), gC[7]) < 3 + Cond: distance between( position of(ep), gC[7]) < 1.5 - wait 3 abort + wait 1 abort A <= 1 State <= 70 @@ -606,13 +627,13 @@ Rule type: Ongoing - each player, team 2, slot 1 Set facing(ep, gC[0]) //race start facing P <= 1 A <= 0.8 //adjust for feel - Big message(3) + Small message(3) Play effect(ep, buff explosion sound, white, position of(ep), 35) Wait(A) - Big message(2) + Small message(2) Play effect(ep, buff explosion sound, white, position of(ep), 35) Wait(A) - Big message(1) + Small message(1) Play effect(ep, buff explosion sound, white, position of(ep), 35) Wait(A) @@ -717,7 +738,33 @@ Rule type: Ongoing - each player, team 2, slot 1 Cond: distance between( position of(ep), gC[7]) > 3 State <= 20 + +**Player state 80 and primary fire - increase option index** + + Cond: A < count of(O) - 1 + Cond: is pressed(ep,primary fire) == true + + A += 1 + +**Player state 80 and secondary fire - decrease option index** + + Cond: A > 0 + Cond: is pressed(ep,secondary fire) == true + + A -= 1 + +**Player state 80 and interact - toggle option** + + Cond: is pressed(ep,interact) == true + B <= not( O[A] ) + O[A] <= B + +**Player state 80 and leave options spot - go back to wait mode** + + Cond: distance between( position of(ep), gC[6]) > 3 + + State <= 20 **Player state 90 - Start reset sequence** From fa3aaf8d0baaa9142eae3827db5e5f41a089d1a4 Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Sat, 4 May 2019 12:47:37 -0700 Subject: [PATCH 08/10] add options option 0: skip countdown option 1: mute effects --- race-framework/design.md | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index eca62e6..1ccfba7 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -57,7 +57,10 @@ L M N - O - Option array + O - Option array [ + 0: skip countdown + 1: mute sounds + ] P - Checkpoint index Q - Attempts R - Best time array @@ -627,14 +630,13 @@ Rule type: Ongoing - each player, team 2, slot 1 Set facing(ep, gC[0]) //race start facing P <= 1 A <= 0.8 //adjust for feel - Small message(3) - Play effect(ep, buff explosion sound, white, position of(ep), 35) - Wait(A) - Small message(2) - Play effect(ep, buff explosion sound, white, position of(ep), 35) - Wait(A) - Small message(1) - Play effect(ep, buff explosion sound, white, position of(ep), 35) + skip if( O[0] ) { + Small message(3) + Wait(A) + Small message(2) + Wait(A) + Small message(1) + } Wait(A) Clear status(ep, root) @@ -642,7 +644,9 @@ Rule type: Ongoing - each player, team 2, slot 1 Stop throttle(event player) Big message ("Go!") - Play effect(ep, buff explosion sound, white, position of(ep), 999) + skip if( O[1] ) { + Play effect(ep, buff explosion sound, white, position of(ep), 999) + } X <= 0 Chase player variable(ep, X, 999, 1) // start race timer @@ -655,8 +659,10 @@ Rule type: Ongoing - each player, team 2, slot 1 A <= gA[P] B <= gB[P] - Play effect(ep, ring explosion, white, A, B * 2.5) - Play effect(ep, explosion sound, white, position of(ep), 80) + skip if ( O[1] ) { + Play effect(ep, ring explosion, white, A, B * 2.5) + Play effect(ep, explosion sound, white, position of(ep), 80) + } P += 1 Abort if (P < N) @@ -667,7 +673,9 @@ Rule type: Ongoing - each player, team 2, slot 1 Cond: Distance between( pos of(Event player), gA[gN]) < gB[gN] + D[0] ) C <= gA[P] - Play effect(ep, ring explosion sound, white, C, 999) + skip if ( O[1] ) { + Play effect(ep, ring explosion sound, white, C, 999) + } P <= 999 State <= 50 From 807d273c963f475e34477651aad93a3afec12bf7 Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Sat, 4 May 2019 21:14:11 -0700 Subject: [PATCH 09/10] Update waits, add force spawn room back --- race-framework/design.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/race-framework/design.md b/race-framework/design.md index 1ccfba7..724bf93 100644 --- a/race-framework/design.md +++ b/race-framework/design.md @@ -159,6 +159,9 @@ All below rules have an implied condition of `"gZ == {state in rule name}"` **Global state 3 - misc config** + //If the gather room is in a team's spawn room, that team must be forced to that index. Otherwise, any index will work + start forcing spawn room(Team 1, {room}) + start forcing spawn room(Team 2, {room}) Q <= {true/false} //debug state @@ -417,6 +420,8 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` U <= 0 // init completions W <= 999 //initial best time + Wait( random real(0.25, 2) ) //wait random length to avoid server load/crashes + State <= 1 **Player state 1 - hud creation part 1 - Top text** @@ -465,7 +470,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` Location: top ) - wait .25 //avoid processing limits + Wait( random real(0.25, .50) ) //wait random length to avoid server load/crashes state <= 2 @@ -477,7 +482,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` {Create completions text - sort -8} {Create "your game time" text - sort -6} - wait .25 //avoid processing limits + Wait( random real(0.25, .50) ) //wait random length to avoid server load/crashes State <= 3 @@ -490,7 +495,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` (repeat 0 to 4) {Create {index}+1 fastest time text - sort {index}} - wait .25 //avoid processing limits + Wait( random real(0.25, .50) ) //wait random length to avoid server load/crashes State <= 4 @@ -502,7 +507,7 @@ All below rules have an implied condition of `"ep:Z == {state in rule name}"` (repeat 0 to 4) {Create {index + 1} most recent completion time - sort 10 + {index}} - wait .25 //avoid processing limits + Wait( random real(0.25, .50) ) //wait random length to avoid server load/crashes State <= 5 From 899714b8b6421355e58dc39277ff04af75a05f38 Mon Sep 17 00:00:00 2001 From: lunetoiles <50132052+lunetoiles@users.noreply.github.com> Date: Sat, 4 May 2019 22:32:02 -0700 Subject: [PATCH 10/10] update readme for new version and maps --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2a16d9c..eb530b3 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ This repository hosts a framework and associated tools for creating Overwatch mu ### Maps - Hanamura (v0.81): BJ8EH - Eichenwalde (v0.81): 8TAHG - Junkertown (v0.7): YJ9E6 - Test map (v0.7): YJ9E6 + Hanamura (v0.9): 14CXW + Eichenwalde (v0.9): 0FNPK + Junkertown (v0.9): BYKJK + Ilios (v0.9): GRCWZ ### Tools @@ -23,3 +23,4 @@ This repository hosts a framework and associated tools for creating Overwatch mu V0.4 - 5VZD2 V0.41 - 5W6AG V0.5 - 04CE8 + V0.7 - Test map - YJ9E6