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: wrap_index
13: step_1
14: step_2
15: char_array
- 12: voting
- 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
- {
disabled Disable Inspector Recording;
- 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(
"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 ______."));
- Custom String("It's fun to stay at the ______."), Custom String("Your least favorite overwatch hero"));
- }
- }
- 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"), 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"));
- "Tom and Jerry"), Custom String("Junkertown"), Custom String("wet the bed"));
- }
- }
- 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(Players In Slot(Event Player.vote_index, All Teams) == Event Player);
- If(Event Player.voting[Event Player.vote_index] == 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, Players In Slot(Event Player.vote_index, All Teams)));
- Else If(Array Contains(Event Player.voted, Event Player.voting[Event Player.vote_index]));
- 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(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);
- 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);
- Modify Player Variable(Event Player, keyboardEntities, Append To Array, Last Text ID);
- "Create keyboard layout"
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);
- 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);
- 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(16, 0, 14)[1 + Index Of Array Value(Array(Custom String("┘"), Custom String("←")), Event Player.keyboardKey)]);
- Skip(Array(12, 0, 10)[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));
}
- }