Return to post
- variables
- {
- global:
- 0: PLAYER_SPAWN
- 1: SCREEN_POS
- 2: PLAYER_ONE
- 3: PLAYER_TWO
- 4: VOTE_TIMER
- 5: ROUND
- 6: SCORE_SCALES
- 7: LOOP_STAGE
- 8: TIMER
- 9: PROMPTS_ROUND
- 10: PROMPTS_ALL
- 11: FILLER_ANSWERS
- 12: VOTES_1
- 13: VOTES_2
- 14: SCORES_1
- 15: SCORES_2
- 16: VOTE_ICON_POS
- 17: LAST_LASH_TEXTS
- 18: ALPHABET
- 19: ACRO_PROMPT
- 20: LAST_LASH_OFFSETS
- 21: PD_QF_SLOTS
- 24: I
- 25: J
- 27: keyboardPosition
- 29: keyboardKeys
- player:
- 0: setup
- 1: answer_array
- 2: prompt_index
- 3: voted
- 4: score
- 5: scoreboard_text
- 6: scoreboard_index
- 7: vote_index
- 8: medal_index
- 9: temp_score
- 10: voted_for_me
- 11: last_lash_trigger
12: voting
- 12: wrap_index
- 13: step_1
- 14: step_2
- 15: char_array
- 26: keyboard_allowed
- 27: keyboardPosition
- 28: keyboardEnabled
- 29: keyboardInput
- 30: keyboardKey
- 31: keyboardEntities
- 32: keyboardIndex
- }
- subroutines
- {
- 0: createKeyboard
- 1: destroyKeyboard
- 2: acroLash
- }
- rule("Debug - Dumbots")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- disabled Has Spawned(Host Player) == True;
- Is Game In Progress == True;
- }
- actions
- {
- Create Dummy Bot(Hero(Mercy), All Teams, 0, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Genji), All Teams, 1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Hanzo), All Teams, 2, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(McCree), All Teams, 3, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Moira), All Teams, 4, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(D.Va), All Teams, 5, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Lúcio), All Teams, 6, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Echo), All Teams, 7, Vector(0, 0, 0), Vector(0, 0, 0));
- }
- }
- rule("Debug - All bots done with prompt")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Event Player.keyboard_allowed == True;
- }
- actions
- {
- Wait(Random Real(1.500, 5), Ignore Condition);
- Event Player.prompt_index = 2;
- }
- }
- rule("Debug - Dumbot voting")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- (Event Player.voted == Null || (Global.LOOP_STAGE == 6 && Event Player.medal_index < 4)) == True;
- Global.VOTE_TIMER > 0;
- Global.PLAYER_ONE != Event Player;
- Global.PLAYER_TWO != Event Player;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Wait(Random Real(2, 5), Ignore Condition);
- If(Random Integer(0, 1) == 1);
- Start Holding Button(Event Player, Button(Ultimate));
- Wait(0.250, Ignore Condition);
- Stop Holding Button(Event Player, Button(Ultimate));
- Else;
- Start Holding Button(Event Player, Button(Ability 2));
- Wait(0.250, Ignore Condition);
- Stop Holding Button(Event Player, Button(Ability 2));
- End;
- Wait(2, Ignore Condition);
- If(Global.LOOP_STAGE >= 6);
- Start Holding Button(Event Player, Button(Reload));
- Wait(0.250, Ignore Condition);
- Stop Holding Button(Event Player, Button(Reload));
- Loop If Condition Is True;
- End;
- }
- }
- disabled rule("Debug - HUD")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- Create HUD Text(All Players(All Teams), Custom String("{0} : {1} / Index: {2}", Event Player, Custom String("Voting >{0} / {1}",
- Players In Slot(Event Player.vote_index, All Teams), Custom String("{0} {1} {2}", Event Player.voted[0], Event Player.voted[1],
- Event Player.voted[2])), Event Player.vote_index), Null, Null, Left, 0, Color(White), Color(White), Color(White),
- Visible To and String, Default Visibility);
- }
- }
- rule("Global Setup")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Disable Inspector Recording;
- disabled Disable Inspector Recording;
- Disable Built-In Game Mode Scoring;
- Global.PLAYER_SPAWN = Vector(-52.228, 352, 124.109);
- Global.SCREEN_POS = Vector(-70, 346, 124.109);
- Global.VOTE_TIMER = -3;
- Global.VOTE_ICON_POS = Array(Vector(0, 11, 4), Vector(0, 11, -4));
- Global.SCORE_SCALES = Array(2, 1.500, 1, 0.850, 0.850, 0.850, 0.850, 0.850);
- Global.PD_QF_SLOTS = Array(1, 3, 5, 7);
- Global.LAST_LASH_OFFSETS = Array(Vector(0, 11.500, 9), Vector(0, 11.500, 0), Vector(0, 11.500, -9), Vector(0, 7.500, 9), Vector(0,
- 7.500, -9), Vector(0, 3.500, 9), Vector(0, 3.500, 0), Vector(0, 3.500, -9));
- Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 0, 16), Global.SCREEN_POS + Vector(0, 0, -16),
- Color(White), Visible To Position and Radius);
- Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 0, -16), Global.SCREEN_POS + Vector(0, 18,
- -16), Color(White), Visible To Position and Radius);
- Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 18, -16), Global.SCREEN_POS + Vector(0, 18,
- 16), Color(White), Visible To Position and Radius);
- Create Beam Effect(All Players(All Teams), Good Beam, Global.SCREEN_POS + Vector(0, 18, 16), Global.SCREEN_POS + Vector(0, 0, 16),
- Color(White), Visible To Position and Radius);
- Wait(2, Ignore Condition);
- Pause Match Time;
- "Spectator Tips"
- Create HUD Text(Empty Array, Null, Null, Custom String(
- "Spectators: Press (F1) to quickly find the game area. Spectate in free cam for best viewing experience"), Right, 0, Color(
- White), Color(White), Color(White), Visible To and String, Visible Always);
- "Some vanity"
- Create HUD Text(All Players(All Teams), Null, Custom String("{0} Quipwatch!\r\nBy WildByte", Ability Icon String(Hero(Ashe),
- Button(Ultimate))), Custom String("17K70"), Left, 0, Color(White), Color(Yellow), Color(White), Visible To and String,
- Default Visibility);
- }
- }
- rule("Skip Assemble Heroes")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Assembling Heroes == True;
- }
- actions
- {
- Set Match Time(0);
- }
- }
- rule("Prompts")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.PROMPTS_ALL = Array(Custom String("What two words would passengers never want to\r\nhear a pilot say?"), Custom String(
- "You would never go on a roller coaster called ______."), Custom String("The secret to a happy life"), Custom String(
- "The biggest downside to living in hell"), Custom String("The worst thing for an evil witch to turn you into"), Custom String(
- "A name for a really bad Broadway musical"), Custom String("The first thing you would do after winning the lottery"),
- Custom String("What's actually causing global warming?"), Custom String("A terrible name for a cruise ship"), Custom String(
- "What FDR meant to say was We have nothing to fear, but ______."), Custom String("The name of a font nobody would ever use"),
- Custom String("The real reason the dinosaurs died"), Custom String("Come up with the name of a country that doesn't exist"),
- Custom String("The best way to keep warm on a cold winter night"), Custom String(
- "A college major you don't see at many universities"), Custom String("The best thing about going to prison"), Custom String(
- "The name of the reindeer Santa didn't pick to pull his sleigh"), Custom String(
- "What's the first thing you would do if you could time travel?"), Custom String(
- "The name of a pizza place you should never order from"), Custom String("A not-very-scary name for a pirate"), Custom String(
- "The best thing about living in an igloo"), Custom String("The worst way to be murdered"), Custom String(
- "Something you shouldn't get your\r\nsignificant other for Valentine's Day"), Custom String(
- "A dangerous thing to do while driving"), Custom String("Something you shouldn't wear to a job interview"), Custom String(
- "The #1 reason penguins can't fly"), Custom String("Using only two words, a new state motto for Texas"), Custom String(
- "The hardest thing about being Batman"), Custom String("A great way to kill time at work"), Custom String(
- "Come up with a really bad TV show that starts with Baby"), Custom String("Why does the Tower of Pisa lean?"), Custom String(
- "What's wrong with these kids today?"), Custom String("A great new invention that starts with Automatic"), Custom String(
- "There's Gryffindor, Ravenclaw, Slytherin, and Hufflepuff, \r\nbut what's the Hogwarts house that few have ever heard of?"),
- Custom String("The worst word to say at the opening of a eulogy at a funeral"), Custom String(
- "Something you should never use as a scarf"), Custom String("Invent a holiday you think everyone would enjoy"), Custom String(
- "The best news you could get today"), Custom String(
- "Usually it's bacon, lettuce and tomato, but come up with\r\na BLT you wouldn't want to eat"), Custom String(
- "If you were allowed to name someone else's baby any\r\nweird thing you wanted, what would you name it?"), Custom String(
- "You know you're in for a bad taxi ride when ______."), Custom String("Where do babies come from?"), Custom String(
- "Sometimes, after a long day, you just need to ______."), Custom String("The worst way to spell Mississippi"), Custom String(
- "Give me one good reason why I shouldn't spank you right now"), Custom String("The best place to bury all those bodies"),
- Custom String("What's lurking under your bed when you sleep?"), Custom String(
- "A good fake name to use when checking into a hotel"), Custom String("Okay... fine! What do YOU want to talk about then?!!!"),
- Custom String("How many monkeys is too many monkeys?"), Custom String("Something you should never say to your mother"),
- Custom String("Where's the best place to hide from the shadow monsters?"), Custom String("A good way to get fired"),
- Custom String("Name the eighth dwarf who got cut out at the last minute"), Custom String(
- "The last person you'd consider inviting to your birthday party"), Custom String("The worst name for a robot"), Custom String(
- "One thing never to do on a first date"), Custom String("Who let the dogs out?"), Custom String("Big Bird's last words"),
- Custom String("Name a children's book by someone who hates children"), Custom String(
- "Pants would be a whole lot better if they ______."), Custom String(
- "It's bad to be buried alive. It's worse to be buried alive with ______."), Custom String(
- "What to say to get out of jury duty"), Custom String("The Tooth Fairy's other job"), Custom String("What time is it?"),
- Custom String("Three things are certain in life: Death, Taxes, and ______."), Custom String(
- "The first commandment in the new religion you started"), Custom String(
- "Something that is currently legal that should be banned"), Custom String("A word that should never follow Beef"),
- Custom String("A bad thing to say to a cop as he writes you a speeding ticket"), Custom String(
- "Something you shouldn't buy off Craigslist"), Custom String("We can all agree that ______."), Custom String(
- "A great name to have on a fake I.D."), Custom String("What robots dream about"), Custom String("How far is too far?"),
- Custom String("If at first you don't succeed..."), Custom String("Today's music needs more ______."), Custom String(
- "The coolest way to die"), Custom String("A unique way to escape from prison"), Custom String(
- "A terrifying fortune cookie fortune"), Custom String("Where missing socks go"), Custom String("The first sign you're old"),
- Custom String("The first thing a pig would say if it could talk"), Custom String("The real secret to living to age 100"),
- Custom String("Why so serious?"), Custom String("The worst name for a mountain"), Custom String(
- "Knock knock! Who's there? ______."), Custom String("What you want your gravestone to read"), Custom String(
- "It never ends well when you mix ______ and ______. (type both)"), Custom String("The worst thing about Canada"),
- Custom String("A better name for the game Duck Duck Goose"), Custom String(
- "Should you catch on fire, remember,\r\n'Stop, Drop, Roll, and then ______."), Custom String("When is the next ptr update?"),
Custom String("It's fun to stay at the ______."), Custom String("Your least favorite overwatch hero"));
- Custom String("It's fun to stay at the ______."), Custom String("Your least favorite overwatch hero"), Custom String(
- "The best way to impress an Alien from Mars"), Custom String("Gosh darn it more! Get out of my room, I'm ______!"),
- Custom String("The worst movie to put on during Netflix and Chill"), Custom String(
- "I didn't mean to kill him! I just ______."), Custom String("The easiest way to make a Gamer mad."), Custom String(
- "As shakespear once said, '______.'"), Custom String("The last thing you see before being blown up."), Custom String(
- "Change a single word in a movie title to make it\r\ninstantly more interesting"), Custom String(
- "Your sinal words before you're burned in Salem as a witch"), Custom String(
- "A remarkable achievement you probably won't list on your resume"), Custom String(
- "Forget the Cat in the Hat. Prepare yourselves for\r\n______ in the ______!"), Custom String(
- "You have 5 words or less to make an entire group of people mad"), Custom String(
- "This just in - ______ got game of the year for 2020!"), Custom String(
- "An actually beneficial thing to hoard would be ______."), Custom String(
- "Disney has decided to replace Iron Man with ______."), Custom String("The name of a teacher you know you'd instantle hate."),
- Custom String("Who is best girl?"), Custom String("A song/band that sounds like a Jojo stand."), Custom String(
- "What your license plate would say if there were no character limit."), Custom String(
- "You're an actor in a TV series! What's your most famous line?"), Custom String(
- "The new most popular game show: Wheel Of ______!"), Custom String("The dumbest reason ever to host a party"), Custom String(
- "A really good reason to break into your neighbor's hourse right now."), Custom String("A badass name for a chainsaw."),
- Custom String("An amazing new product that starts with 'Anti-'"), Custom String("The worst flavor of juice."), Custom String(
- "Wikipedia recently created a new online wiki called ______pedia."), Custom String(
- "The host was just murdered. Who is the primary suspect?"), Custom String("Google's next innovative product"), Custom String(
- "Apple's next popular device: The i-______."), Custom String("A new genre of music you just made up right now."),
- Custom String("A rejected title in the Magic School Bus series:\r\nThe Magic School Bus Goes to ______."), Custom String(
- "The scariest thing you can think of is ______ riding ______.\r\n(type both)"), Custom String(
- "A good name for a detective agency run by kids"), Custom String("Your least favorite overwatch map."), Custom String(
- "The best overwatch voiceline."), Custom String("Reaper's new ultimate line: ______! ______! ______!"), Custom String(
- "What the overwatch devs almost named B.O.B."), Custom String("An offbrand name for a fast food location"), Custom String(
- "The reason aliens haven't contacted us"), Custom String("Back in my say, we didn't have internet,\r\nwe had ______!"),
- Custom String("Why is orange?"), Custom String("The most useless command to teach a dog"), Custom String("You've got ______."),
- Custom String("Define ostronautics"), Custom String("Cheers, love! The ______ is here!"), Custom String("Experience ______."),
- Custom String("Wanted: ______ or ______ (type both)"), Custom String("______? That sounds dangerous."), Custom String(
- "______ sky, the skies are ______. (type both)"), Custom String("Keep calm and ______!"), Custom String(
- "The world could always use more ______."), Custom String("Bastion's favorite voiceline"), Custom String(
- "I choose you, ______."), Custom String("You're making a ______ out of a ______! (type both)"), Custom String(
- "Honor! Justice! ______!"), Custom String("______ is usually the answer"), Custom String("For the ______!"), Custom String(
- "Pass into the ______."), Custom String("Trick or ______?"), Custom String("I think. Therefore I ______."), Custom String(
- "A scrapped name for Reinhardt's ultimate"), Custom String("I'm not good. Not bad. But I sure as hell ain't ______."));
- }
- }
- rule("Filler Answers")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.FILLER_ANSWERS = Array(Custom String("Winnie the Pooh"), Custom String("I'm a bear"), Custom String("Yellow Fever!"),
- Custom String("Spiders"), Custom String("If only I had more time..."), Custom String("WINS!"), Custom String("Three thousand"),
- Custom String("Nelson Mandela"), Custom String("You're not special"), Custom String("Miracle Whip"), Custom String("Wow!"),
- Custom String("The Graveyard"), Custom String("Behind you! AHHHH!"), Custom String("about 7"), Custom String("12"),
- Custom String("Lightning McQueen"), Custom String("Kachow"), Custom String("Winston Overwatch"), Custom String(
"Tom and Jerry"), Custom String("Junkertown"), Custom String("wet the bed"));
- "Tom and Jerry"), Custom String("Junkertown"), Custom String("wet the bed"), Custom String("McDonalds"), Custom String("No"),
- Custom String("Yes"), Custom String("Watchpoint: Gibraltar"), Custom String("Genji Overwatch"), Custom String("Eichenwalde"),
- Custom String("Canada"), Custom String("C9"), Custom String("Bruh"), Custom String("250HP Thiccree"), Custom String(
- "o lawd he comin"), Custom String("aw gee, scoob"), Custom String("and2y"), Custom String("Sake!"), Custom String(
- "CaptCaptain's Keyboard"), Custom String("Waitedboat5"), Custom String("Star Platinum"));
- }
- }
- rule("Player Setup")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Disable Game Mode HUD(Event Player);
- Disable Hero HUD(Event Player);
- Set Status(Event Player, Null, Phased Out, 9999);
- Disallow Button(Event Player, Button(Jump));
- 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 Ultimate Ability Enabled(Event Player, False);
- Set Ammo(Event Player, 0, 0);
- Set Max Ammo(Event Player, 0, 0);
- Start Scaling Player(Event Player, 0.700, True);
- Start Forcing Player Position(Event Player, Global.PLAYER_SPAWN + Direction From Angles(5 + 17.500 * (Slot Of(Event Player) + 1),
- Empty Array) * 6, True);
- Set Gravity(Event Player, 0);
- Set Status(Event Player, Null, Rooted, 9999);
- Wait(0.250, Ignore Condition);
- Stop Forcing Player Position(Event Player);
- }
- }
- rule("Player One-Time Setup")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Has Spawned(Event Player) == True;
- Event Player.setup == False;
- }
- actions
- {
- Event Player.setup = True;
- "Player ring (title screen)"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String("{0}\r\n{1}", Hero Icon String(
- Hero Of(Event Player)), Event Player), Global.SCREEN_POS + Vector(0, 7.500, 0) + Direction From Angles(Empty Array, 45 * (
- Slot Of(Event Player) + 1)) * 6.500, 1.650, Clip Against Surfaces, Visible To Position and String, Color(White),
- Default Visibility);
- "'phone' and voting text"
- Create Beam Effect(Event Player, Grapple Beam, World Vector Of(Vector(-0.500, 0.250, 1), Event Player, Rotation And Translation),
- World Vector Of(Vector(0.500, 0.250, 1), Event Player, Rotation And Translation), Color(White),
- Visible To Position and Radius);
- Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE < 4), Custom String(
- "{0}\r\nPress ({1}) to +1", Global.PLAYER_ONE.answer_array[Global.PLAYER_ONE.prompt_index], Input Binding String(Button(
- Ultimate))), World Vector Of(Vector(0.450, 0.250, 1), Event Player, Rotation And Translation), 2, Do Not Clip,
- Visible To Position and String, Color(Yellow), Default Visibility);
- Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE < 4), Custom String(
- "{0}\r\nPress ({1}) to +1", Global.PLAYER_TWO.answer_array[Global.PLAYER_TWO.prompt_index], Input Binding String(Button(
- Ability 2))), World Vector Of(Vector(-0.450, 0.250, 1), Event Player, Rotation And Translation), 2, Do Not Clip,
- Visible To Position and String, Color(Yellow), Default Visibility);
- "Prompts"
- Event Player.prompt_index = 0;
- Create In-World Text(Filtered Array(Event Player, Event Player.keyboard_allowed && Global.LOOP_STAGE < 4),
- Global.PROMPTS_ROUND[Round To Integer((Array Contains(Global.PD_QF_SLOTS, Slot Of(Event Player)) ? Slot Of(Event Player)
- - 1 : Slot Of(Event Player)) / 1, Up) + Event Player.prompt_index], World Vector Of(Vector(0, 0.350, 1), Event Player,
- Rotation And Translation), 1.700, Do Not Clip, Visible To Position and String, Color(Turquoise), Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Custom String("{0}\r\n{1}", Hero Icon String(
- Hero Of(Event Player)), Event Player), Global.SCREEN_POS + Vector(0, 1, -13) + Vector(0, Event Player.prompt_index > 1 || (
- Event Player.prompt_index > 0 && Global.LOOP_STAGE == 5) ? 2 : 0, 3.250 * (Slot Of(Event Player) + 1)), 1.500,
- Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- "Vote Indicator"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE < 4), Custom String(
- "{0}\r\n{1}", Hero Icon String(Hero Of(Event Player)), Event Player), Global.SCREEN_POS + Vector(0, 0, Index Of Array Value(
- Filtered Array(All Players(All Teams), Event Player.voted == Current Array Element.voted), Event Player) * (
- Event Player.voted == Global.PLAYER_TWO ? -2 : 2)) + (Event Player.voted == Global.PLAYER_ONE ? First Of(Global.VOTE_ICON_POS)
- : (Event Player.voted == Global.PLAYER_TWO ? Last Of(Global.VOTE_ICON_POS) : Vector(0, 1, 0))), 1, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Last Lash"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 6), Custom String("{0}) {1}", Slot Of(
- Event Player) + 1, Event Player.answer_array), Global.SCREEN_POS + Global.LAST_LASH_OFFSETS[Slot Of(Event Player)], 1.500,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE == 6 && Event Player.medal_index < 3),
- Custom String(" <({0}) {1} ({2})>", Input Binding String(Button(Ultimate)), Players In Slot(Event Player.vote_index, All Teams)
- .answer_array, Input Binding String(Button(Ability 2))), World Vector Of(Vector(0, 0.350, 1), Event Player,
- Rotation And Translation), 1.700, Do Not Clip, Visible To Position and String, Color(Yellow), Default Visibility);
- Create In-World Text(Filtered Array(Event Player, Global.VOTE_TIMER > 0 && Global.LOOP_STAGE == 6 && Event Player.medal_index < 3),
- Custom String("Press ({0}) to select", Input Binding String(Button(Reload))), World Vector Of(Vector(0, 0.250, 1),
- Event Player, Rotation And Translation), 1.700, Do Not Clip, Visible To Position and String, Color(Yellow),
- Default Visibility);
- "Last Lash Results"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE == 6), Custom String(
- "+{0}", Event Player.temp_score), Global.SCREEN_POS + Vector(0, -1, 0) + Global.LAST_LASH_OFFSETS[Slot Of(Event Player)],
- 1.500, Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- }
- }
- rule("Screen Text Setup")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- "Title Screen"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String("Quipwatch!"),
- Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
- Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String("by WildByte"),
- Global.SCREEN_POS + Vector(0, 7.400, 0), 1.200, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
- Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 0), Custom String(
- "VIP {0}\r\n{1}\r\nPress {2} to start!", Hero Icon String(Hero Of(Host Player)), Host Player, Input Binding String(Button(
- Ultimate))), Global.SCREEN_POS + Vector(0, 0.500, 12), 1.500, Clip Against Surfaces, Visible To Position and String, Color(
- Turquoise), Default Visibility);
- "Rounds"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 1), Custom String("Round {0}!", Global.ROUND),
- Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
- Default Visibility);
- "Timer and Filler Text"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Round To Integer(Global.TIMER, Up),
- Global.SCREEN_POS + Vector(0, 15, 14), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
- Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Custom String(
- "↓↓↓ Write answers using your keyboard now! ↓↓↓"), Global.SCREEN_POS + Vector(0, 5.500, 0), 2, Clip Against Surfaces,
- Visible To Position and String, Color(Turquoise), Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.TIMER > 0), Custom String("Spectators Play-Along:\r\n{0}",
- Random Value In Array(Global.PROMPTS_ALL)), Global.SCREEN_POS + Vector(0, 13.500, 0), 1.500, Clip Against Surfaces,
- Visible To Position and String, Color(White), Default Visibility);
- "Voting Timer, Prompts and Effects"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > 0), Round To Integer(Global.VOTE_TIMER, Up),
- Global.SCREEN_POS + Vector(0, 15, 14), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
- Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4),
- Global.PROMPTS_ROUND[Global.J], Global.SCREEN_POS + Vector(0, 13.500, 0), 2, Clip Against Surfaces,
- Visible To Position and String, Color(Yellow), Default Visibility);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 7.500, 14), Global.SCREEN_POS + Vector(0, 7.500, 4), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 7.500, 4), Global.SCREEN_POS + Vector(0, 11.500, 4), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 11.500, 4), Global.SCREEN_POS + Vector(0, 11.500, 14), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 11.500, 14), Global.SCREEN_POS + Vector(0, 7.500, 14), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 7.500, -14), Global.SCREEN_POS + Vector(0, 7.500, -4), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 7.500, -4), Global.SCREEN_POS + Vector(0, 11.500, -4), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 11.500, -4), Global.SCREEN_POS + Vector(0, 11.500, -14), Color(Yellow),
- Visible To Position and Radius);
- Create Beam Effect(Filtered Array(All Players(All Teams), Global.VOTE_TIMER > -3 && Global.LOOP_STAGE < 4), Good Beam,
- Global.SCREEN_POS + Vector(0, 11.500, -14), Global.SCREEN_POS + Vector(0, 7.500, -14), Color(Yellow),
- Visible To Position and Radius);
- "Vote Count => Scores"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE < 4), Custom String(
- "{0} {1}: +{2}", Hero Icon String(Hero Of(Global.PLAYER_ONE)), Global.PLAYER_ONE, Global.SCORES_1), Global.SCREEN_POS + Vector(
- 0, 4.500, 9), 2.500, Clip Against Surfaces, Visible To Position and String, Color(Turquoise), Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER == -1 && Global.LOOP_STAGE < 4), Custom String(
- "{0} {1}: +{2}", Hero Icon String(Hero Of(Global.PLAYER_TWO)), Global.PLAYER_TWO, Global.SCORES_2), Global.SCREEN_POS + Vector(
- 0, 4.500, -9), 2.500, Clip Against Surfaces, Visible To Position and String, Color(Turquoise), Default Visibility);
- "Answers"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER >= -1 && Global.LOOP_STAGE < 4),
- Global.PLAYER_ONE.answer_array[Global.PLAYER_ONE.prompt_index], Global.SCREEN_POS + Vector(0, 8, 9), 1.700,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.VOTE_TIMER >= -1 && Global.LOOP_STAGE < 4),
- Global.PLAYER_TWO.answer_array[Global.PLAYER_TWO.prompt_index], Global.SCREEN_POS + Vector(0, 8, -9), 1.700,
- Clip Against Surfaces, Visible To Position and String, Color(Yellow), Default Visibility);
- "Scoreboard (global)"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 3), Custom String("Scores! Round {0}",
- Global.ROUND), Global.SCREEN_POS + Vector(0, 14, 0), 2, Clip Against Surfaces, Visible To Position and String, Color(
- Turquoise), Default Visibility);
- }
- }
- rule("Main Loop (Host press ult to start)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- (Is Button Held(Host Player, Button(Ultimate)) || Is Button Held(Host Player, Button(Ability 1))) == True;
- Global.LOOP_STAGE == 0;
- Count Of(All Players(All Teams)) >= 3;
- }
- actions
- {
- Start Forcing Player To Be Hero(Filtered Array(All Players(All Teams), !Has Spawned(Current Array Element)), Random Value In Array(
- Allowed Heroes(Host Player)));
- Wait(0.250, Ignore Condition);
- "Main loop"
- For Global Variable(I, 1, 3, 1);
- Global.ROUND = Global.I;
- Global.LOOP_STAGE = 1;
- Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 65);
- All Players(All Teams).prompt_index = 0;
- All Players(All Teams).answer_array = Empty Array;
- For Global Variable(J, 0, 8, 1);
- Global.PROMPTS_ROUND[Global.J] = Random Value In Array(Filtered Array(Global.PROMPTS_ALL, !Array Contains(Global.PROMPTS_ROUND,
- Current Array Element)));
- End;
- Wait(3, Ignore Condition);
- Global.LOOP_STAGE = 2;
- Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 55);
- All Players(All Teams).keyboard_allowed = True;
- Global.TIMER = 90;
- Chase Global Variable At Rate(TIMER, 0, 1, Destination and Rate);
- Wait Until(Global.TIMER == 0 || Is True For All(All Players(All Teams), Current Array Element.prompt_index > 1), 91);
- Global.TIMER = 0;
- All Players(All Teams).keyboard_allowed = False;
- Wait(3, Ignore Condition);
- All Players(All Teams).prompt_index = 0;
- "Voting loop 1"
- For Global Variable(J, 0, Count Of(All Players(All Teams)) + 0, 2);
- Global.VOTES_1 = 0;
- Global.VOTES_2 = 0;
- Global.SCORES_1 = 0;
- Global.SCORES_2 = 0;
- Global.PLAYER_ONE = Players In Slot(Global.J + 0, All Teams);
- Global.PLAYER_TWO = Players In Slot(Global.J + 1, All Teams);
- All Players(All Teams).voted = Null;
- Global.VOTE_TIMER = 25;
- Chase Global Variable At Rate(VOTE_TIMER, 0, 1, Destination and Rate);
- Wait Until(Global.VOTE_TIMER == 0 || Is True For All(Filtered Array(All Players(All Teams),
- Current Array Element != Global.PLAYER_ONE && Current Array Element != Global.PLAYER_TWO), Current Array Element.voted), 26);
- Global.VOTE_TIMER = 0;
- Stop Chasing Global Variable(VOTE_TIMER);
- Wait(3, Ignore Condition);
- Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 55);
- Global.VOTE_TIMER = -1;
- Wait(2, Ignore Condition);
- Chase Global Variable Over Time(SCORES_1, Global.VOTES_1 * 35, 0.250, Destination and Duration);
- Chase Global Variable Over Time(SCORES_2, Global.VOTES_2 * 35, 0.250, Destination and Duration);
- Wait(2, Ignore Condition);
- Global.PLAYER_ONE.score += Global.SCORES_1;
- Global.PLAYER_TWO.score += Global.SCORES_2;
- Wait(2, Ignore Condition);
- Global.VOTE_TIMER = -3;
- End;
- All Players(All Teams).prompt_index = 1;
- "Voting loop 2"
- For Global Variable(J, 1, Count Of(All Players(All Teams)) + 0, 2);
- Global.VOTES_1 = 0;
- Global.VOTES_2 = 0;
- Global.SCORES_1 = 0;
- Global.SCORES_2 = 0;
- Global.PLAYER_ONE = Players In Slot(Global.J + -1, All Teams);
- Global.PLAYER_TWO = Players In Slot(Global.J + 0, All Teams);
- All Players(All Teams).voted = Null;
- Global.VOTE_TIMER = 25;
- Chase Global Variable At Rate(VOTE_TIMER, 0, 1, Destination and Rate);
- Wait Until(Global.VOTE_TIMER == 0 || Is True For All(Filtered Array(All Players(All Teams),
- Current Array Element != Global.PLAYER_ONE && Current Array Element != Global.PLAYER_TWO), Current Array Element.voted), 26);
- Global.VOTE_TIMER = 0;
- Stop Chasing Global Variable(VOTE_TIMER);
- Wait(3, Ignore Condition);
- Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 55);
- Global.VOTE_TIMER = -1;
- Wait(2, Ignore Condition);
- Chase Global Variable Over Time(SCORES_1, Global.VOTES_1 * 70, 0.250, Destination and Duration);
- Chase Global Variable Over Time(SCORES_2, Global.VOTES_2 * 70, 0.250, Destination and Duration);
- Wait(2, Ignore Condition);
- Global.PLAYER_ONE.score += Global.SCORES_1;
- Global.PLAYER_TWO.score += Global.SCORES_2;
- Wait(2, Ignore Condition);
- Global.VOTE_TIMER = -3;
- End;
- Global.LOOP_STAGE = 3;
- Wait(8, Ignore Condition);
- End;
- "Final Round"
- Global.LOOP_STAGE = 4;
- Global.PLAYER_ONE = Null;
- Global.PLAYER_TWO = Null;
- Call Subroutine(acroLash);
- "Final scoreboard (show scores and winner)"
- All Players(All Teams).scoreboard_index = -1;
- Global.LOOP_STAGE = 7;
- Wait(10, Ignore Condition);
- Global.VOTE_TIMER = -3;
- Global.LOOP_STAGE = 0;
- All Players(All Teams).temp_score = 0;
- All Players(All Teams).voted_for_me = 0;
- All Players(All Teams).medal_index = 0;
- All Players(All Teams).score = 0;
- }
- }
- rule("Filler answers in case time runs out")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.VOTE_TIMER <= 0;
- (Global.LOOP_STAGE == 2 || Global.LOOP_STAGE == 5) == True;
- Count Of(Event Player.answer_array) <= 1;
- }
- actions
- {
- If(Event Player.answer_array != Empty Array);
- Event Player.answer_array[1] = Random Value In Array(Filtered Array(Global.FILLER_ANSWERS, !Array Contains(
- Event Player.answer_array, Current Array Element)));
- Else;
- Event Player.answer_array[0] = Random Value In Array(Filtered Array(Global.FILLER_ANSWERS, !Array Contains(
- Event Player.answer_array, Current Array Element)));
- Event Player.answer_array[1] = Random Value In Array(Filtered Array(Global.FILLER_ANSWERS, !Array Contains(
- Event Player.answer_array, Current Array Element)));
- }
- }
- rule("Voting - Rounds 1 & 2")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- (Is Button Held(Event Player, Button(Ultimate)) || Is Button Held(Event Player, Button(Ability 2))) == True;
- Event Player.voted == Null;
- Global.VOTE_TIMER > 0;
- Global.PLAYER_ONE != Event Player;
- Global.PLAYER_TWO != Event Player;
- Global.LOOP_STAGE < 4;
- }
- actions
- {
- Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 45);
- If(Is Button Held(Event Player, Button(Ultimate)));
- Global.VOTES_1 += 1;
- Event Player.voted = Global.PLAYER_ONE;
- Small Message(Event Player, Custom String("You voted for:\r\n{0}",
- Global.PLAYER_ONE.answer_array[Global.PLAYER_ONE.prompt_index]));
- Else If(Is Button Held(Event Player, Button(Ability 2)));
- Event Player.voted = Global.PLAYER_TWO;
- Global.VOTES_2 += 1;
- Small Message(Event Player, Custom String("You voted for:\r\n{0}",
- Global.PLAYER_TWO.answer_array[Global.PLAYER_TWO.prompt_index]));
- End;
- Wait(0.250, Ignore Condition);
- }
- }
- rule("Scoreboard (Create and destroy in-world text)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.LOOP_STAGE == 3;
- }
- actions
- {
- Event Player.scoreboard_index = Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
- Event Player);
- Wait(0.250 + (Count Of(All Players(All Teams)) + Event Player.scoreboard_index * -1) * 0.250, Ignore Condition);
- Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), All Players(All Teams), 60);
- "Final Scoreboard"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 3), Custom String("{0}\r\n{1}\r\nScore: {2}",
- Hero Icon String(Hero Of(Event Player)), Event Player, Event Player.score), Global.SCREEN_POS + Vector(0, 6.800, 0) + (
- Event Player.scoreboard_index == 0 ? Vector(0, 0, 0) : Direction From Angles(Empty Array, 45 * Event Player.scoreboard_index))
- * 5, Global.SCORE_SCALES[Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
- Event Player)], Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- Event Player.scoreboard_text = Last Text ID;
- Wait(8 + Slot Of(Event Player) * 0.250, Ignore Condition);
- Destroy In-World Text(Event Player.scoreboard_text);
- Wait(1, Ignore Condition);
- Event Player.scoreboard_text = Null;
- }
- }
- rule("Final scores (Create and destroy in-world text)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.scoreboard_index == -1;
- }
- actions
- {
- Event Player.scoreboard_index = Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
- Event Player);
- Wait(0.250 + (Count Of(All Players(All Teams)) + Event Player.scoreboard_index * -1) * 0.500, Ignore Condition);
- Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), All Players(All Teams), 60);
- "Final Scoreboard"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 7), Custom String("{0}\r\n{1}\r\nScore: {2}",
- Hero Icon String(Hero Of(Event Player)), Event Player, Event Player.score), Global.SCREEN_POS + Vector(0, 7.500, 0) + (
- Event Player.scoreboard_index == 0 ? Vector(0, 0, 0) : Direction From Angles(Empty Array, 45 * Event Player.scoreboard_index))
- * 5, Global.SCORE_SCALES[Index Of Array Value(Sorted Array(All Players(All Teams), 100 / Current Array Element.score),
- Event Player)], Clip Against Surfaces, Visible To Position and String, Color(White), Default Visibility);
- Event Player.scoreboard_text = Last Text ID;
- Wait(8 + Slot Of(Event Player) * 0.250, Ignore Condition);
- Destroy In-World Text(Event Player.scoreboard_text);
- Wait(1, Ignore Condition);
- Event Player.scoreboard_text = Null;
- }
- }
- rule("Acro-Lash")
- {
- event
- {
- Subroutine;
- acroLash;
- }
- actions
- {
- "Acro-Lash Announce"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 4), Custom String("Final Round:\r\n Acro-Lash! ",
- Global.ROUND), Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Turquoise),
- Default Visibility);
- Modify Global Variable(LAST_LASH_TEXTS, Append To Array, Last Text ID);
- Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 65);
- All Players(All Teams).prompt_index = 0;
- All Players(All Teams).answer_array = Empty Array;
- Global.ACRO_PROMPT = Empty Array;
- For Global Variable(J, 0, 3, 1);
- Global.ACRO_PROMPT = Custom String("{0}{1}.", Global.ACRO_PROMPT, Random Value In Array(Global.ALPHABET));
- End;
- Wait(3, Ignore Condition);
- Global.LOOP_STAGE = 5;
- "Acro-Lash Prompt"
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE >= 5 && Global.LOOP_STAGE < 7), Global.ACRO_PROMPT,
- Global.SCREEN_POS + Vector(0, 8, 0), 3, Clip Against Surfaces, Visible To Position and String, Color(Yellow),
- Default Visibility);
- Modify Global Variable(LAST_LASH_TEXTS, Append To Array, Last Text ID);
- Create In-World Text(Filtered Array(All Players(All Teams), Global.LOOP_STAGE == 5), Custom String(
- "Come up with a full name for this acronym!"), Global.SCREEN_POS + Vector(0, 10, 0), 1.500, Clip Against Surfaces,
- Visible To Position and String, Color(Yellow), Default Visibility);
- Modify Global Variable(LAST_LASH_TEXTS, Append To Array, Last Text ID);
- "Answer Prompt"
- Play Effect(All Players(All Teams), Ring Explosion Sound, Color(White), All Players(All Teams), 55);
- All Players(All Teams).keyboard_allowed = True;
- Global.TIMER = 90;
- Chase Global Variable At Rate(TIMER, 0, 1, Destination and Rate);
- Wait Until(Global.TIMER == 0 || Is True For All(All Players(All Teams), Current Array Element.prompt_index > 0), 91);
- Global.TIMER = 0;
- All Players(All Teams).keyboard_allowed = False;
- Wait(3, Ignore Condition);
- "Voting"
- All Players(All Teams).voted = Empty Array;
- All Players(All Teams).medal_index = 0;
- Global.LOOP_STAGE = 6;
- Global.VOTE_TIMER = 75;
- Chase Global Variable At Rate(VOTE_TIMER, 0, 1, Destination and Rate);
- Wait Until(Global.VOTE_TIMER == 0 || Is True For All(All Players(All Teams), Count Of(Current Array Element.voted) >= 3), 76);
- Global.VOTE_TIMER = 0;
- Stop Chasing Global Variable(VOTE_TIMER);
- Wait(3, Ignore Condition);
- Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 55);
- Global.VOTE_TIMER = -1;
- All Players(All Teams).voted[3] = Null;
- All Players(All Teams).voted_for_me = Empty Array;
- All Players(All Teams).last_lash_trigger = True;
- Wait(10, Ignore Condition);
- For Global Variable(I, 0, Count Of(Global.LAST_LASH_TEXTS), 1);
- Destroy In-World Text(Global.LAST_LASH_TEXTS[Global.I]);
- End;
- Abort;
- }
- }
- rule("Acro-Lash Alphabet and Thing Prompts")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.ALPHABET = Array(Custom String("A"), Custom String("B"), Custom String("C"), Custom String("D"), Custom String("E"),
- Custom String("F"), Custom String("G"), Custom String("H"), Custom String("I"), Custom String("J"), Custom String("K"),
- Custom String("L"), Custom String("M"), Custom String("N"), Custom String("O"), Custom String("P"), Custom String("Q"),
- Custom String("R"), Custom String("S"), Custom String("T"), Custom String("U"), Custom String("V"), Custom String("W"),
- Custom String("X"), Custom String("Y"), Custom String("Z"));
- }
- }
- rule("Voting - Acro-Lash")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- (Is Button Held(Event Player, Button(Reload)) || Is Button Held(Event Player, Button(Ultimate)) || Is Button Held(Event Player,
- Button(Ability 2))) == True;
- Count Of(Event Player.voted) < 4;
- Global.VOTE_TIMER > 0;
- Global.LOOP_STAGE >= 6;
- }
- actions
- {
Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
- If(Is Button Held(Event Player, Button(Ultimate)));
- Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
- Event Player.vote_index -= Event Player.vote_index == 0 ? 0 : 1;
- Else If(Is Button Held(Event Player, Button(Ability 2)));
- Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
- Event Player.vote_index += Event Player.vote_index == Count Of(All Players(All Teams)) + -1 ? 0 : 1;
- Else If(Is Button Held(Event Player, Button(Reload)));
If(Event Player.voting[Event Player.vote_index] == Event Player);
- If(Players In Slot(Event Player.vote_index, All Teams) == Event Player);
- Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 45);
- Small Message(Event Player, Custom String("You can't vote for yourself :("));
Else If(Array Contains(Event Player.voted, Event Player.voting[Event Player.vote_index]));
- Else If(Array Contains(Event Player.voted, Players In Slot(Event Player.vote_index, All Teams)));
- Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 45);
- Small Message(Event Player, Custom String("You already voted for that!"));
- Else;
- Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 45);
- Event Player.voted[Event Player.medal_index] = Players In Slot(Event Player.vote_index, All Teams);
- Small Message(Event Player, Custom String("Voted! / {1} vote(s) remaining", Null, 3 - Event Player.medal_index));
- Event Player.medal_index += 1;
- End;
- End;
Event Player.voting[Event Player.medal_index] = Players In Slot(Event Player.vote_index, All Teams);
- Wait(0.150, Ignore Condition);
- }
- }
- rule("Acro-Lash - Player trigger (count scores)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.last_lash_trigger == True;
- }
- actions
- {
- Event Player.last_lash_trigger = False;
- Event Player.voted_for_me = Count Of(Filtered Array(All Players(All Teams), Array Contains(Current Array Element.voted,
- Event Player))) * 140;
- Wait(0.250, Ignore Condition);
- Chase Player Variable Over Time(Event Player, temp_score, Event Player.voted_for_me, 2, Destination and Duration);
- Wait(1, Ignore Condition);
- Event Player.score += Event Player.voted_for_me;
- }
- }
- rule("Text wrapping")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is True For Any(Event Player.answer_array, String Length(Current Array Element) > 18) == True;
- Count Of(Event Player.answer_array) >= 2;
- Event Player.keyboard_allowed == False;
- }
- actions
- {
- For Player Variable(Event Player, step_1, 0, 2, 1);
- If(String Length(Event Player.answer_array[Event Player.step_1]) > 18);
- Event Player.char_array = Empty Array;
- Event Player.wrap_index = 0;
- For Player Variable(Event Player, step_2, 0, String Length(Event Player.answer_array[Event Player.step_1]), 1);
- Event Player.char_array[Event Player.step_2] = String Slice(Event Player.answer_array[Event Player.step_1], Event Player.step_2,
- 1);
- End;
- Event Player.step_2 = 15;
- While(Event Player.wrap_index == 0 && Event Player.step_2 < 30);
- If(Event Player.char_array[Event Player.step_2] == Custom String(" "));
- Event Player.wrap_index = Event Player.step_2;
- Event Player.answer_array[Event Player.step_1] = Custom String("{0}\r\n{1}", String Slice(
- Event Player.answer_array[Event Player.step_1], 0, Event Player.wrap_index), String Slice(
- Event Player.answer_array[Event Player.step_1], Event Player.wrap_index, 15));
- End;
- Event Player.step_2 += 1;
- End;
- End;
- Wait(0.250, Ignore Condition);
- End;
- }
- }
- rule("Crosshair ----------------------------Crosshair by Zezombye---------------------------------------")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- "hudSubtext(getAllPlayers(), \" \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\", HudPosition.TOP, -999, Color.GREEN, HudReeval.VISIBILITY, SpecVisibility.NEVER)"
- Create HUD Text(All Players(All Teams), Null, Custom String("
\n"), Null, Top, -998, Null, Color(Green), Null, Visible To,
- Visible Never);
- Create HUD Text(All Players(All Teams), Null, Custom String(" \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"), Null, Top, -997,
- Null, Color(Green), Null, Visible To, Visible Never);
- Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ⊙ "), Top, -996, Null, Null, Color(
- Green), Visible To, Visible Never);
- }
- }
- rule("Initialize global variables ----------------------------Keyboard by CaptCaptain ---------------------------------------")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.keyboardPosition = Array(Vector(0.439, 0.396, 0.807), Vector(0.382, 0.396, 0.835), Vector(0.320, 0.396, 0.861), Vector(
- 0.250, 0.396, 0.884), Vector(0.178, 0.399, 0.899), Vector(0.100, 0.398, 0.912), Vector(0.022, 0.397, 0.918), Vector(-0.056,
- 0.395, 0.917), Vector(-0.135, 0.396, 0.908), Vector(-0.210, 0.392, 0.896), Vector(-0.282, 0.393, 0.875), Vector(-0.349, 0.389,
- 0.852), Vector(-0.412, 0.391, 0.823), Vector(0.472, 0.290, 0.833), Vector(0.411, 0.294, 0.863), Vector(0.345, 0.289, 0.893),
- Vector(0.272, 0.293, 0.916), Vector(0.191, 0.295, 0.936), Vector(0.108, 0.294, 0.950), Vector(0.023, 0.292, 0.956), Vector(
- -0.061, 0.294, 0.954), Vector(-0.146, 0.294, 0.944), Vector(-0.227, 0.291, 0.929), Vector(-0.325, 0.295, 0.898), Vector(-0.390,
- 0.296, 0.872), Vector(-0.468, 0.295, 0.833), Vector(0.478, 0.191, 0.858), Vector(0.410, 0.195, 0.891), Vector(0.338, 0.194,
- 0.921), Vector(0.262, 0.195, 0.945), Vector(0.176, 0.193, 0.965), Vector(0.089, 0.195, 0.977), Vector(-0.004, 0.194, 0.981),
- Vector(-0.089, 0.191, 0.978), Vector(-0.176, 0.196, 0.965), Vector(-0.286, 0.192, 0.939), Vector(-0.360, 0.192, 0.913), Vector(
- -0.483, 0.190, 0.855), Vector(0.489, 0.084, 0.868), Vector(0.423, 0.083, 0.903), Vector(0.348, 0.084, 0.934), Vector(0.271,
- 0.085, 0.959), Vector(0.185, 0.085, 0.979), Vector(0.094, 0.086, 0.992), Vector(0.001, 0.085, 0.996), Vector(-0.085, 0.060,
- 0.995), Vector(-0.178, 0.061, 0.982), Vector(-0.292, 0.086, 0.953), Vector(0.270, -0.020, 0.963), Vector(0.209, -0.017, 0.978),
- Vector(0.120, -0.016, 0.993), Vector(0.052, -0.018, 0.998));
- Global.keyboardKeys = Array(Custom String("1234567890-=←qwertyuiop[]!asdfghjkl;'┘zxcvbnm,.? "));
- }
- }
- rule("Initialize player variables")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- Event Player.keyboardPosition = Empty Array;
- Event Player.keyboardEnabled = False;
- Event Player.keyboardInput = Custom String("");
- Event Player.keyboardKey = Custom String("");
- Event Player.keyboardEntities = Empty Array;
- }
- }
- rule("Subroutine createKeyboard")
- {
- event
- {
- Subroutine;
- createKeyboard;
- }
- actions
- {
- "Align keybaord positions to the front of the player"
- Event Player.keyboardPosition = Mapped Array(Global.keyboardPosition, First Of(World Vector Of(Current Array Element, Event Player,
- Rotation)));
- "Create keyboard input"
Create In-World Text(All Players(All Teams), Event Player.keyboardInput, Evaluate Once(World Vector Of(Local Vector Of(
Eye Position(Event Player), Event Player, Rotation And Translation) + Vector(0, 0.450, 1), Event Player,
Rotation And Translation)), 30, Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(Event Player, Event Player.keyboardInput, Evaluate Once(World Vector Of(Local Vector Of(Eye Position(
- Event Player), Event Player, Rotation And Translation) + Vector(0, 0.450, 1), Event Player, Rotation And Translation)), 30,
- Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
- Modify Player Variable(Event Player, keyboardEntities, Append To Array, Last Text ID);
- "Create keyboard layout"
Create In-World Text(All Players(All Teams), Custom String(
"1234567890-=←\nQWERTYUIOP[ ]!\n ASDFGHJKL;' ┘\n ZXCVBNM,.? \n [__]"), Evaluate Once(World Vector Of(Local Vector Of(
Eye Position(Event Player), Event Player, Rotation And Translation) + Vector(0, 0, 1), Event Player,
Rotation And Translation)), 30, Do Not Clip, Visible To Position and String, Color(White), Default Visibility);
- Create In-World Text(Event Player, Custom String("1234567890-=←\nQWERTYUIOP[ ]!\n ASDFGHJKL;' ┘\n ZXCVBNM,.? \n [__]"),
- Evaluate Once(World Vector Of(Local Vector Of(Eye Position(Event Player), Event Player, Rotation And Translation) + Vector(0,
- 0, 1), Event Player, Rotation And Translation)), 30, Do Not Clip, Visible To Position and String, Color(White),
- Default Visibility);
- Modify Player Variable(Event Player, keyboardEntities, Append To Array, Last Text ID);
- }
- }
- rule("Subroutine destroyKeyboard")
- {
- event
- {
- Subroutine;
- destroyKeyboard;
- }
- actions
- {
- "Destroy every in world text"
- For Player Variable(Event Player, keyboardIndex, 0, Count Of(Event Player.keyboardEntities), 1);
- Destroy In-World Text(Event Player.keyboardEntities[Event Player.keyboardIndex]);
- End;
- Event Player.keyboardPosition = Empty Array;
- Event Player.keyboardInput = Custom String("");
- Event Player.keyboardEntities = Empty Array;
- }
- }
- rule("Hud")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- "Instruction hud"
- Create HUD Text(Filtered Array(Event Player, Event Player.keyboard_allowed), Custom String("Press {0} to toggle keyboard",
- Input Binding String(Button(Interact))), Custom String("Keyboard by CaptCaptain"), Custom String("B04BK"), Right, 0, Color(
- Turquoise), Color(Turquoise), Color(Turquoise), Visible To Sort Order and String, Default Visibility);
- }
- }
- rule("Toggle Keyboard")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Interact)) == True;
- Event Player.keyboard_allowed == True;
- }
- actions
- {
- "Toggle variable"
- Event Player.keyboardEnabled = !Event Player.keyboardEnabled;
- "Run behavior"
- If(True);
- Skip(Array(2, 0)[1 + Index Of Array Value(Array(True), Event Player.keyboardEnabled)]);
- Call Subroutine(createKeyboard);
- Else;
- Call Subroutine(destroyKeyboard);
- Else;
- End;
- }
- }
- rule("Detect Input")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Button(Primary Fire)) == True;
- Event Player.keyboard_allowed == True;
- }
- actions
- {
- "Check if the player is aiming toward a key"
- If(Is True For Any(Event Player.keyboardPosition, Distance Between(Eye Position(Event Player) + Facing Direction Of(Event Player),
- Eye Position(Event Player) + Current Array Element) <= 0.050));
- "Get the key the player is aiming at"
- Event Player.keyboardKey = String Slice(Global.keyboardKeys, Index Of Array Value(Event Player.keyboardPosition, Filtered Array(
- Event Player.keyboardPosition, Distance Between(Eye Position(Event Player) + Facing Direction Of(Event Player), Eye Position(
- Event Player) + Current Array Element) <= 0.050)), 1);
- If(True);
Skip(Array(12, 0, 10)[1 + Index Of Array Value(Array(Custom String("┘"), Custom String("←")), Event Player.keyboardKey)]);
- Skip(Array(16, 0, 14)[1 + Index Of Array Value(Array(Custom String("┘"), Custom String("←")), Event Player.keyboardKey)]);
- Event Player.answer_array[Event Player.prompt_index] = Event Player.keyboardInput;
- Wait(0.250, Ignore Condition);
- If(Event Player.keyboardInput == Custom String(""));
- Small Message(Event Player, Custom String("Oops! You left your answer blank!"));
- Abort;
- End;
- Event Player.prompt_index += 1;
- If(Event Player.prompt_index > 1 || (Event Player.prompt_index > 0 && Global.LOOP_STAGE == 5));
- Event Player.keyboardEnabled = False;
- Event Player.keyboard_allowed = False;
- Call Subroutine(destroyKeyboard);
- End;
- Event Player.keyboardInput = Custom String("");
- Else;
- Event Player.keyboardInput = String Slice(Event Player.keyboardInput, 0, String Length(Event Player.keyboardInput) - 1);
- Else;
- Event Player.keyboardInput = Custom String("{0}{1}", Event Player.keyboardInput, Event Player.keyboardKey);
- Else;
- End;
- Play Effect(Event Player, Buff Impact Sound, Color(White), Event Player, 25);
- }
- }
- rule("Force destroy keyboard")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.keyboard_allowed == False;
- }
- actions
- {
- Event Player.keyboardEnabled = False;
- Call Subroutine(destroyKeyboard);
- }
- }
- rule("Create Dummbot if player leaves")
- {
- event
- {
- Player Left Match;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- Create Dummy Bot(Random Value In Array(Allowed Heroes(Host Player)), All Teams, Slot Of(Event Player), Vector(0, 0, 0), Vector(0,
- 0, 0));
- }
- }